powerpc/kernel: Avoid preemption check in iommu_range_alloc()
authorVictor Aoqui <victora@linux.vnet.ibm.com>
Thu, 20 Jul 2017 17:26:06 +0000 (14:26 -0300)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 1 Aug 2017 11:49:23 +0000 (21:49 +1000)
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 <victora@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/iommu.c

index 233ca3fe4754a40b379f9b5570cabe4cdcfeafa7..0e49a4560cff11bf728a786462e2f342c6e749f7 100644 (file)
@@ -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);