[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen master] iommu/ipmmu-vmsa: Add missing 'U' in IMTTLBR0_TTBR_MASK for shifted constant



commit 80248d526caa933230f87008c8850e9c0592bff2
Author:     Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
AuthorDate: Tue Jul 4 23:30:32 2023 +0300
Commit:     Julien Grall <jgrall@xxxxxxxxxx>
CommitDate: Fri Jul 14 17:33:26 2023 +0100

    iommu/ipmmu-vmsa: Add missing 'U' in IMTTLBR0_TTBR_MASK for shifted constant
    
    With enabling both CONFIG_UBSAN and CONFIG_IPMMU_VMSA I have got the 
following
    splat when an IOMMU driver tried to setup page tables:
    
    (XEN) ipmmu: /soc/iommu@e67b0000: d1: Set IPMMU context 1 (pgd 0x77fe90000)
    (XEN) 
================================================================================
    (XEN) UBSAN: Undefined behaviour in 
drivers/passthrough/arm/ipmmu-vmsa.c:558:51
    (XEN) left shift of 1048575 by 12 places cannot be represented in type 'int'
    (XEN) Xen WARN at common/ubsan/ubsan.c:172
    (XEN) ---[ Xen-4.18-unstable  arm64  debug=y ubsan=y  Tainted:      S ]----
    ...
    
    This points to shifted constant in IMTTLBR0_TTBR_MASK. Fix that by adding
    missing 'U' to it.
    
    This should also address MISRA Rule 7.2:
    
    A "u" or "U" suffix shall be applied to all integer constants that
    are represented in an unsigned type.
    
    Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
    Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
---
 xen/drivers/passthrough/arm/ipmmu-vmsa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c 
b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
index 611d9eeba5..b5c84c51a2 100644
--- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
+++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
@@ -198,7 +198,7 @@ static DEFINE_SPINLOCK(ipmmu_devices_lock);
 #define IMTTBCR_TSZ0_SHIFT             0
 
 #define IMTTLBR0              0x0010
-#define IMTTLBR0_TTBR_MASK    (0xfffff << 12)
+#define IMTTLBR0_TTBR_MASK    (0xfffffU << 12)
 #define IMTTUBR0              0x0014
 #define IMTTUBR0_TTBR_MASK    (0xff << 0)
 
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.