irqchips: Replace __this_cpu_ptr uses
authorChristoph Lameter <cl@linux.com>
Sun, 17 Aug 2014 17:30:39 +0000 (12:30 -0500)
committerTejun Heo <tj@kernel.org>
Tue, 26 Aug 2014 17:45:48 +0000 (13:45 -0400)
[ARM specific]

These are generally replaced with raw_cpu_ptr. However, in
gic_get_percpu_base() we immediately dereference the pointer. This is
equivalent to a raw_cpu_read. So use that operation there.

Cc: nicolas.pitre@linaro.org
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/irqchip/irq-gic.c
kernel/irq/chip.c

index 4b959e606fe8d64494af44f9f8f66f6f069c22d3..399a707ec51e294001c5607ce442256965bf961f 100644 (file)
@@ -102,7 +102,7 @@ static struct gic_chip_data gic_data[MAX_GIC_NR] __read_mostly;
 #ifdef CONFIG_GIC_NON_BANKED
 static void __iomem *gic_get_percpu_base(union gic_base *base)
 {
-       return *__this_cpu_ptr(base->percpu_base);
+       return raw_cpu_read(base->percpu_base);
 }
 
 static void __iomem *gic_get_common_base(union gic_base *base)
@@ -504,11 +504,11 @@ static void gic_cpu_save(unsigned int gic_nr)
        if (!dist_base || !cpu_base)
                return;
 
-       ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_enable);
+       ptr = raw_cpu_ptr(gic_data[gic_nr].saved_ppi_enable);
        for (i = 0; i < DIV_ROUND_UP(32, 32); i++)
                ptr[i] = readl_relaxed(dist_base + GIC_DIST_ENABLE_SET + i * 4);
 
-       ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_conf);
+       ptr = raw_cpu_ptr(gic_data[gic_nr].saved_ppi_conf);
        for (i = 0; i < DIV_ROUND_UP(32, 16); i++)
                ptr[i] = readl_relaxed(dist_base + GIC_DIST_CONFIG + i * 4);
 
@@ -530,11 +530,11 @@ static void gic_cpu_restore(unsigned int gic_nr)
        if (!dist_base || !cpu_base)
                return;
 
-       ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_enable);
+       ptr = raw_cpu_ptr(gic_data[gic_nr].saved_ppi_enable);
        for (i = 0; i < DIV_ROUND_UP(32, 32); i++)
                writel_relaxed(ptr[i], dist_base + GIC_DIST_ENABLE_SET + i * 4);
 
-       ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_conf);
+       ptr = raw_cpu_ptr(gic_data[gic_nr].saved_ppi_conf);
        for (i = 0; i < DIV_ROUND_UP(32, 16); i++)
                writel_relaxed(ptr[i], dist_base + GIC_DIST_CONFIG + i * 4);
 
index a2b28a2fd7b16d270c45b3c40719a35d0034c58d..cca7292fc61ec9f8a90831332896ee2a36fce68b 100644 (file)
@@ -669,7 +669,7 @@ void handle_percpu_devid_irq(unsigned int irq, struct irq_desc *desc)
 {
        struct irq_chip *chip = irq_desc_get_chip(desc);
        struct irqaction *action = desc->action;
-       void *dev_id = __this_cpu_ptr(action->percpu_dev_id);
+       void *dev_id = raw_cpu_ptr(action->percpu_dev_id);
        irqreturn_t res;
 
        kstat_incr_irqs_this_cpu(irq, desc);