mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 16:37:50 +00:00
irqchips: Replace __this_cpu_ptr uses
[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>
This commit is contained in:
parent
eee8492db6
commit
532d0d0690
2 changed files with 6 additions and 6 deletions
|
@ -102,7 +102,7 @@ static struct gic_chip_data gic_data[MAX_GIC_NR] __read_mostly;
|
||||||
#ifdef CONFIG_GIC_NON_BANKED
|
#ifdef CONFIG_GIC_NON_BANKED
|
||||||
static void __iomem *gic_get_percpu_base(union gic_base *base)
|
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)
|
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)
|
if (!dist_base || !cpu_base)
|
||||||
return;
|
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++)
|
for (i = 0; i < DIV_ROUND_UP(32, 32); i++)
|
||||||
ptr[i] = readl_relaxed(dist_base + GIC_DIST_ENABLE_SET + i * 4);
|
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++)
|
for (i = 0; i < DIV_ROUND_UP(32, 16); i++)
|
||||||
ptr[i] = readl_relaxed(dist_base + GIC_DIST_CONFIG + i * 4);
|
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)
|
if (!dist_base || !cpu_base)
|
||||||
return;
|
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++)
|
for (i = 0; i < DIV_ROUND_UP(32, 32); i++)
|
||||||
writel_relaxed(ptr[i], dist_base + GIC_DIST_ENABLE_SET + i * 4);
|
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++)
|
for (i = 0; i < DIV_ROUND_UP(32, 16); i++)
|
||||||
writel_relaxed(ptr[i], dist_base + GIC_DIST_CONFIG + i * 4);
|
writel_relaxed(ptr[i], dist_base + GIC_DIST_CONFIG + i * 4);
|
||||||
|
|
||||||
|
|
|
@ -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 irq_chip *chip = irq_desc_get_chip(desc);
|
||||||
struct irqaction *action = desc->action;
|
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;
|
irqreturn_t res;
|
||||||
|
|
||||||
kstat_incr_irqs_this_cpu(irq, desc);
|
kstat_incr_irqs_this_cpu(irq, desc);
|
||||||
|
|
Loading…
Reference in a new issue