Star64_linux/arch/powerpc/kernel
Michael Ellerman 466921c5a4 powerpc: Set paca->data_offset = 0 for boot cpu
In commit 407821a we assigned a poison value to the paca->data_offset.

Unfortunately with CONFIG_LOCK_STAT=y lockdep will read & write to percpu
data very early in boot, prior to us initialising the percpu areas,
leading to a crash.

We have been getting away with this because the data_offset was previously
set to zero. This causes lockdep to read & write to the initial copy of
the percpu variables, which are discarded later in boot.

Although that is "fishy", it does work, and for lock statistics it is no
big deal to discard the counts from early boot.

So set the paca->data_offset = 0 for the boot cpu paca only.

Reported-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Tested-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-09-27 12:51:06 +10:00
..
vdso32 powerpc: Add VDSO version of getcpu 2012-07-11 14:18:40 +10:00
vdso64 powerpc: Add VDSO version of getcpu 2012-07-11 14:18:40 +10:00
.gitignore
align.c
asm-offsets.c Merge branch 'merge' into next 2012-09-07 09:48:59 +10:00
audit.c
btext.c
cacheinfo.c
cacheinfo.h
clock.c
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_a2.S powerpc: Enforce usage of RA 0-R31 where possible 2012-07-10 19:18:35 +10:00
cpu_setup_fsl_booke.S powerpc/booke: Add CPU_FTR_EMB_HV check for e5500. 2012-09-12 14:57:09 -05:00
cpu_setup_pa6t.S
cpu_setup_power7.S
cpu_setup_ppc970.S
cputable.c powerpc/booke: Merge the 32 bit e5500/e500mc cpu setup code. 2012-09-12 14:57:09 -05:00
crash.c
crash_dump.c
dbell.c powerpc: Make sure IPI handlers see data written by IPI senders 2012-09-05 16:05:22 +10:00
dma-iommu.c powerpc/dma-iommu: Fix IOMMU window check 2012-08-24 20:26:07 +10:00
dma-swiotlb.c powerpc/swiotlb: Enable at early stage and disable if not necessary 2012-09-12 14:57:09 -05:00
dma.c powerpc/kernel: Remove uses of abs_to_virt() and virt_to_abs() 2012-09-05 15:19:30 +10:00
entry_32.S powerpc/kprobe: Complete kprobe and migrate exception frame 2012-09-18 15:32:42 +10:00
entry_64.S powerpc/kprobe: Complete kprobe and migrate exception frame 2012-09-18 15:32:42 +10:00
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S powerpc/booke: Separate out restore_e5500/setup_e5500 routines. 2012-09-12 14:57:09 -05:00
exceptions-64s.S powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
fadump.c powerpc: Change memory_limit from phys_addr_t to unsigned long long 2012-09-07 11:44:30 +10:00
firmware.c
fpu.S powerpc: Enforce usage of R0-R31 where possible 2012-07-10 19:18:30 +10:00
fsl_booke_entry_mapping.S
ftrace.c powerpc/ftrace: Trace function graph entry before updating index 2012-07-27 11:42:34 +10:00
head_8xx.S
head_32.S
head_40x.S
head_44x.S
head_64.S
head_booke.h
head_fsl_booke.S powepc/booke: Separate out E.HV check and ivor setup code. 2012-09-12 14:57:08 -05:00
hw_breakpoint.c powerpc: Dynamically calculate the dabrx based on kernel/user/hypervisor 2012-09-10 09:59:13 +10:00
ibmebus.c powerpc: Remove all includes of <asm/abs_addr.h> 2012-09-05 15:19:33 +10:00
idle.c
idle_6xx.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_book3e.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_e500.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_power4.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_power7.S powerpc/powernv: Always go into nap mode when CPU is offline 2012-09-05 16:05:20 +10:00
io-workarounds.c
io.c
iomap.c
iommu.c powerpc/iommu: Fix iommu pool initialization 2012-07-13 17:45:49 +10:00
irq.c powerpc/trace: Fix interrupt tracepoints vs. RCU 2012-09-17 16:31:54 +10:00
isa-bridge.c
jump_label.c
kgdb.c powerpc/kgdb: Restore current_thread_info properly 2012-08-24 20:26:06 +10:00
kprobes.c
kvm.c KVM updates for the 3.6 merge window 2012-07-24 12:01:20 -07:00
kvm_emul.S
l2cr_6xx.S
legacy_serial.c
lparcfg.c
machine_kexec.c powerpc: Export memory limit via device tree 2012-09-07 11:44:33 +10:00
machine_kexec_32.c
machine_kexec_64.c
Makefile powerpc: Uprobes port to powerpc 2012-09-05 15:35:19 +10:00
misc.S
misc_32.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
misc_64.S powerpc: Fixes for instructions not using correct register naming 2012-07-10 19:18:16 +10:00
module.c
module_32.c powerpc: Fix kernel panic during kernel module load 2012-06-08 19:59:08 +10:00
module_64.c
msi.c
nvram_64.c
of_platform.c
paca.c powerpc: Initialise paca.data_offset with poison 2012-09-10 09:35:27 +10:00
pci-common.c Merge remote-tracking branch 'pci/pci/gavin-window-alignment' into next 2012-09-17 16:07:43 +10:00
pci_32.c
pci_64.c PCI: replace struct pci_bus secondary/subordinate with busn_res 2012-06-13 15:42:22 -06:00
pci_dn.c
pci_of_scan.c PCI changes for the 3.6 merge window: 2012-07-24 16:17:07 -07:00
pmc.c
ppc32.h
ppc_ksyms.c
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Rework set_dabr so it can take a DABRX value as well 2012-09-10 09:59:10 +10:00
prom.c powerpc: Change memory_limit from phys_addr_t to unsigned long long 2012-09-07 11:44:30 +10:00
prom_init.c powerpc: Rename 64-bit PVR constants to PVR_foo 2012-09-05 15:19:35 +10:00
prom_init_check.sh
prom_parse.c
ptrace.c powerpc: Rework set_dabr so it can take a DABRX value as well 2012-09-10 09:59:10 +10:00
ptrace32.c
reloc_32.S
reloc_64.S
rtas-proc.c
rtas-rtc.c
rtas.c
rtas_flash.c powerpc/kernel: Remove uses of abs_to_virt() and virt_to_abs() 2012-09-05 15:19:30 +10:00
rtas_pci.c powerpc/eeh: Trace eeh device from I/O cache 2012-09-10 09:35:44 +10:00
rtasd.c
setup-common.c powerpc/watchdog: move booke watchdog param related code to setup-common.c 2012-07-11 07:44:03 -05:00
setup.h
setup_32.c powerpc/watchdog: move booke watchdog param related code to setup-common.c 2012-07-11 07:44:03 -05:00
setup_64.c powerpc: Set paca->data_offset = 0 for boot cpu 2012-09-27 12:51:06 +10:00
signal.c powerpc: Rework set_dabr so it can take a DABRX value as well 2012-09-10 09:59:10 +10:00
signal.h powerpc: get rid of restore_sigmask() 2012-06-01 12:58:51 -04:00
signal_32.c powerpc: get rid of restore_sigmask() 2012-06-01 12:58:51 -04:00
signal_64.c powerpc: get rid of restore_sigmask() 2012-06-01 12:58:51 -04:00
smp-tbsync.c
smp.c powerpc/smp: Do not disable IPI interrupts during suspend 2012-09-19 08:38:16 -05:00
softemu8xx.c
stacktrace.c
suspend.c
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
sys_ppc32.c
syscalls.c powerpc: Fix personality handling in ppc64_personality() 2012-08-24 20:26:07 +10:00
sysfs.c powerpc: Keep thread.dscr and thread.dscr_inherit in sync 2012-09-05 16:05:21 +10:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c powerpc/trace: Fix interrupt tracepoints vs. RCU 2012-09-17 16:31:54 +10:00
traps.c Merge branch 'merge' into next 2012-09-07 09:48:59 +10:00
udbg.c
udbg_16550.c
uprobes.c powerpc: Uprobes port to powerpc 2012-09-05 15:35:19 +10:00
vdso.c powerpc: Restore VDSO information on critical exception om BookE 2012-09-07 09:48:49 +10:00
vecemu.c
vector.S
vio.c powerpc: Remove all includes of <asm/abs_addr.h> 2012-09-05 15:19:33 +10:00
vmlinux.lds.S