Re: linux-next: Tree for Sep 1
From: Bartlomiej Zolnierkiewicz <hidden>
Date: 2014-09-03 16:10:05
Also in:
lkml
Hi, On Tuesday, September 02, 2014 10:00:07 AM Christoph Lameter wrote:
On Tue, 2 Sep 2014, Christoph Lameter wrote:quoted
Oww.. This is double indirection deal there. A percpu offset pointing to a pointer? Generally the following is true (definition from include/asm-generic/percpu.h that is used for ARM for raw_cpu_read): #define raw_cpu_read_4(pcp) (*raw_cpu_ptr(&(pcp)))I think what the issue is that we dropped the fetch of the percpu offset in the patch. Instead we are using the address of the variable that contains the offset. Does this patch fix it?
Yes, it fixes the problem. Thank you. Tested-by: Bartlomiej Zolnierkiewicz <redacted> Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
quoted hunk ↗ jump to hunk
Subject: irqchip: Properly fetch the per cpu offset The raw_cpu_read() conversion dropped the fetch of the offset from base->percpu_base in gic_get_percpu_base. Signed-off-by: Christoph Lameter <redacted> Index: linux/drivers/irqchip/irq-gic.c ===================================================================--- linux.orig/drivers/irqchip/irq-gic.c +++ linux/drivers/irqchip/irq-gic.c@@ -102,7 +102,7 @@ static struct gic_chip_data gic_data[MAX #ifdef CONFIG_GIC_NON_BANKED static void __iomem *gic_get_percpu_base(union gic_base *base) { - return raw_cpu_read(base->percpu_base); + return raw_cpu_read(*base->percpu_base); } static void __iomem *gic_get_common_base(union gic_base *base)