From: Victor Aoqui Date: Thu, 20 Jul 2017 17:26:06 +0000 (-0300) Subject: powerpc/kernel: Avoid preemption check in iommu_range_alloc() X-Git-Tag: v4.14-rc1~119^2~304 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75f327c6b75715f3a090daeb33e05003aaffb010;p=thirdparty%2Fkernel%2Flinux.git powerpc/kernel: Avoid preemption check in iommu_range_alloc() Replace the __this_cpu_read() with raw_cpu_read() in iommu_range_alloc(). Otherwise we get a warning about using __this_cpu_read() in preemptible code: BUG: using __this_cpu_read() in preemptible caller is iommu_range_alloc+0xa8/0x3d0 Preemption doesn't need to be disabled since according to the comment any CPU can safely use any IOMMU pool. Signed-off-by: Victor Aoqui Signed-off-by: Michael Ellerman --- diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index 233ca3fe4754a..0e49a4560cff1 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c @@ -208,7 +208,7 @@ static unsigned long iommu_range_alloc(struct device *dev, * We don't need to disable preemption here because any CPU can * safely use any IOMMU pool. */ - pool_nr = __this_cpu_read(iommu_pool_hash) & (tbl->nr_pools - 1); + pool_nr = raw_cpu_read(iommu_pool_hash) & (tbl->nr_pools - 1); if (largealloc) pool = &(tbl->large_pool);