iommu/mediatek: fix out-of-range warning with clang
Subsystems (3)
PATCH 1/1 iommu/mediatek: fix out-of-range warning with clang
From: Arnd Bergmann <[email protected]>
clang-14 notices that a comparison is never true when CONFIG_PHYS_ADDR_T_64BIT is disabled:
drivers/iommu/mtk_iommu.c:553:34: error: result of comparison of constant 5368709120 with expression of type 'phys_addr_t' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
if (dom->data->enable_4GB && pa >= MTK_IOMMU_4GB_MODE_REMAP_BASE)
~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Add an explicit check for the type of the variable to skip the check and the warning in that case.
--- drivers/iommu/mtk_iommu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/iommu/mtk_iommu.c +3 -1
@@ -550,7 +550,9 @@ static phys_addr_t mtk_iommu_iova_to_phys(struct iommu_domain *domain,phys_addr_t pa; pa = dom->iop->iova_to_phys (dom->iop, iova); -if (dom->data->enable_4GB && pa >=MTK_IOMMU_4GB_MODE_REMAP_BASE ) +if (IS_ENABLED (CONFIG_PHYS_ADDR_T_64BIT ) && + dom->data->enable_4GB && + pa >=MTK_IOMMU_4GB_MODE_REMAP_BASE ) pa &= ~BIT_ULL (32 );return pa;
Signature · 1 line
2.29.2
Quoted 12 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
clang-14 notices that a comparison is never true when
CONFIG_PHYS_ADDR_T_64BITis disabled:
drivers/iommu/mtk_iommu.c:553:34: error: result of comparison of constant 5368709120 with expression of type 'phys_addr_t' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out- of-range-compare]if (dom->data->enable_4GB && pa >= MTK_IOMMU_4GB_MODE_REMAP_BASE) ~~
Quoted 8 lines
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Add an explicit check for the type of the variable to skip the check and the warning in that case.
Fixes b4dad40e4f35 ("iommu/mediatek: Adjust the PA for the 4GBMode")
Signed-off-by Arnd Bergmann <[email protected]>
Thanks.
Quoted 2 lines · Arnd Bergmann
drivers/iommu/mtk_iommu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Applied, thanks.