Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41939980 authored by Yong Wu's avatar Yong Wu Committed by Joerg Roedel
Browse files

iommu/mediatek: Fix a build warning of BIT(32) in ARM



The commit ("iommu/mediatek: Enlarge the validate PA range
for 4GB mode") introduce the following build warning while ARCH=arm:

   drivers/iommu/mtk_iommu.c: In function 'mtk_iommu_iova_to_phys':
   include/linux/bitops.h:6:24: warning: left shift count >= width
of type [-Wshift-count-overflow]
    #define BIT(nr)   (1UL << (nr))
                           ^
>> drivers/iommu/mtk_iommu.c:407:9: note: in expansion of macro 'BIT'
      pa |= BIT(32);

  drivers/iommu/mtk_iommu.c: In function 'mtk_iommu_probe':
   include/linux/bitops.h:6:24: warning: left shift count >= width
of type [-Wshift-count-overflow]
    #define BIT(nr)   (1UL << (nr))
                           ^
   drivers/iommu/mtk_iommu.c:589:35: note: in expansion of macro 'BIT'
     data->enable_4GB = !!(max_pfn > (BIT(32) >> PAGE_SHIFT));

Use BIT_ULL instead of BIT.

Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarYong Wu <yong.wu@mediatek.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 4f1c8ea1
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -404,7 +404,7 @@ static phys_addr_t mtk_iommu_iova_to_phys(struct iommu_domain *domain,
	spin_unlock_irqrestore(&dom->pgtlock, flags);
	spin_unlock_irqrestore(&dom->pgtlock, flags);


	if (data->enable_4GB)
	if (data->enable_4GB)
		pa |= BIT(32);
		pa |= BIT_ULL(32);


	return pa;
	return pa;
}
}
@@ -586,7 +586,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);


	/* Whether the current dram is over 4GB */
	/* Whether the current dram is over 4GB */
	data->enable_4GB = !!(max_pfn > (BIT(32) >> PAGE_SHIFT));
	data->enable_4GB = !!(max_pfn > (BIT_ULL(32) >> PAGE_SHIFT));


	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	data->base = devm_ioremap_resource(dev, res);
	data->base = devm_ioremap_resource(dev, res);