Message ID | 20210927121857.941160-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iommu/mediatek: fix out-of-range warning with clang | expand |
On Mon, 2021-09-27 at 14:18 +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > 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. > > Fixes: b4dad40e4f35 ("iommu/mediatek: Adjust the PA for the 4GB > Mode") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Yong Wu <yong.wu@mediatek.com> Thanks.
On Mon, Sep 27, 2021 at 02:18:44PM +0200, Arnd Bergmann wrote: > drivers/iommu/mtk_iommu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Applied, thanks.
diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index d837adfd1da5..25b834104790 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -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;