[bug report] iommu: rockchip: Add support for iommu v2

Benjamin Gaignard benjamin.gaignard at collabora.com
Fri Jun 18 03:01:20 PDT 2021


Le 18/06/2021 à 11:15, Dan Carpenter a écrit :
> Hello Benjamin Gaignard,
>
> The patch c55356c534aa: "iommu: rockchip: Add support for iommu v2"
> from Jun 4, 2021, leads to the following static checker warning:
>
> 	drivers/iommu/rockchip-iommu.c:552 rk_dte_addr_phys_v2()
> 	warn: potential shift truncation.  '0xff00000000 (0,4294967296-1095216660480) << 28'
>
> drivers/iommu/rockchip-iommu.c
>     544  }
>     545
>     546  #define DT_HI_MASK GENMASK_ULL(39, 32)
>                             ^^^^^^^^^^^^^^^^^^^
>
>     547  #define DT_SHIFT   28
>     548
>     549  static inline phys_addr_t rk_dte_addr_phys_v2(u32 addr)
>     550  {
>     551          return (phys_addr_t)(addr & RK_DTE_PT_ADDRESS_MASK) |
>     552                 ((addr & DT_HI_MASK) << DT_SHIFT);
>                           ^^^^^^^^^^^^^^^^^
> Is addr supposed to be a u64?

The error is to use DT_HI_MASK here.
It should be:
#define DTE_BASE_HI_MASK GENMASK(11, 4)

static inline phys_addr_t rk_dte_addr_phys_v2(u32 addr)
{
	return (phys_addr_t)(addr & RK_DTE_PT_ADDRESS_MASK) |
	       ((addr & DTE_BASE_HI_MASK) << DT_SHIFT);
}

I will send a patch.
Thanks for the finding.

Regards,
Benjamin

>
>     553  }
>
> regards,
> dan carpenter



More information about the Linux-rockchip mailing list