linux/arch/powerpc/kernel
Benjamin Herrenschmidt f2f6dad6ca powerpc/iseries: Fix early init access to lppaca
The combination of commit

8154c5d22d and
93c22703ef

Broke boot on iSeries.

The problem is that iSeries very early boot code, which generates
the device-tree and runs before our normal early initializations
does need access the lppaca's very early, before the PACA array is
initialized, and in fact even before the boot PACA has been
initialized (it contains all 0's at this stage).

However, the first patch above makes that code use the new
llpaca_of(cpu) accessor, which itself is changed by the second patch to
use the PACA array.

We fix that by reverting iSeries to directly dereferencing the array. In
addition, we fix all iterators in the iSeries code to always skip CPU
whose number is above 63 which is the maximum size of that array and
the maximum number of supported CPUs on these machines.

Additionally, we make sure the boot_paca is properly initialized
in our early startup code.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-03-10 10:06:02 +11:00
..
vdso32
vdso64
.gitignore
Makefile powerpc: Consolidate obj-y assignments 2010-11-29 15:48:22 +11:00
align.c
asm-offsets.c powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
audit.c
btext.c
cacheinfo.c
cacheinfo.h
clock.c
compat_audit.c
cpu_setup_6xx.S powerpc: Fix some 6xx/7xxx CPU setup functions 2011-02-07 12:57:11 +11:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/fsl_rio: Fix non-standard HID1 register access 2011-01-12 18:00:29 -06:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S
cputable.c powerpc: Pass the right cpu_spec to ->setup_cpu() on 64-bit 2011-02-07 12:47:57 +11:00
crash.c powerpc/kdump: Move crash_kexec_stop_spus to kdump crash handler 2011-01-21 14:08:36 +11:00
crash_dump.c powerpc/kdump: Override crash_free_reserved_phys_range to avoid freeing RTAS 2010-11-29 15:48:17 +11:00
dbell.c
dma-iommu.c powerpc/iommu: Use coherent_dma_mask for alloc_coherent 2010-12-09 15:17:50 +11:00
dma-swiotlb.c
dma.c
e500-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
entry_32.S powerpc/ppc32/tracing: Add stack frame to calls of trace_hardirqs_on/off 2011-01-21 14:08:33 +11:00
entry_64.S
exceptions-64e.S
exceptions-64s.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
firmware.c
fpu.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
fsl_booke_entry_mapping.S
ftrace.c
head_8xx.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
head_32.S
head_40x.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
head_44x.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
head_64.S Powerpc: separate CONFIG_RELOCATABLE from CONFIG_CRASHDUMP in boot code 2010-12-09 15:35:31 +11:00
head_booke.h
head_fsl_booke.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
hw_breakpoint.c
ibmebus.c of/device: Rework to use common platform_device_alloc() for allocating devices 2010-10-21 11:10:10 -06:00
idle.c
idle_6xx.S
idle_book3e.S
idle_e500.S
idle_power4.S
init_task.c
io.c
iomap.c
iommu.c powerpc: iommu: Add device name to iommu error printks 2010-12-09 15:35:32 +11:00
irq.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-10-21 21:19:54 -07:00
isa-bridge.c
kgdb.c kgdb,ppc: Fix regression in evr register handling 2010-11-17 13:54:58 -06:00
kprobes.c
kvm.c PPC: KVM: Book E doesn't have __end_interrupts. 2010-11-05 14:42:27 -02:00
kvm_emul.S KVM: PPC: Make PV mtmsrd L=1 work with r30 and r31 2010-10-24 10:52:14 +02:00
l2cr_6xx.S
legacy_serial.c
lparcfg.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
machine_kexec.c powerpc/kexec: Restore ppc_md.machine_kexec 2011-03-02 14:56:48 +11:00
machine_kexec_32.c
machine_kexec_64.c
misc.S powerpc: Remove unneeded cpu_setup/restore from POWER7 cputable entry 2010-11-29 15:48:22 +11:00
misc_32.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
misc_64.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
module.c
module_32.c
module_64.c
mpc7450-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
msi.c
nvram_64.c powerpc/nvram: Handle partition names >= 12 chars 2010-11-30 15:43:51 +11:00
of_platform.c
paca.c powerpc/iseries: Fix early init access to lppaca 2011-03-10 10:06:02 +11:00
pci-common.c
pci_32.c
pci_64.c powerpc/pci: Use printf extension %pR for struct resource 2010-12-09 15:36:30 +11:00
pci_dn.c
pci_of_scan.c
perf_callchain.c
perf_event.c powerpc: perf: Fix frequency calculation for overflowing counters 2011-01-17 11:43:02 +01:00
perf_event_fsl_emb.c powerpc, perf: Fix frequency calculation for overflowing counters (FSL version) 2011-01-19 20:05:42 +01:00
pmc.c
power4-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
power5+-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
power5-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
power6-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
power7-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
ppc32.h
ppc970-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
ppc_ksyms.c powerpc: Add support for popcnt instructions 2010-11-29 15:48:17 +11:00
ppc_save_regs.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
proc_powerpc.c
process.c powerpc: Fix call to flush_ptrace_hw_breakpoint() 2011-03-02 14:56:49 +11:00
prom.c dt/flattree: Return virtual address from early_init_dt_alloc_memory_arch() 2011-01-15 22:01:58 -07:00
prom_init.c
prom_init_check.sh
prom_parse.c of/net: Move of_get_mac_address() to a common source file. 2010-11-01 01:08:14 -04:00
ptrace.c powerpc: Fix PPC_PTRACE_SETHWDEBUG on PPC_BOOK3S 2010-12-09 15:35:31 +11:00
ptrace32.c powerpc: Update compat_arch_ptrace 2010-12-09 15:35:32 +11:00
reloc_64.S
rtas-proc.c
rtas-rtc.c
rtas.c powerpc: Disable VPHN polling during a suspend operation 2010-12-09 15:36:30 +11:00
rtas_flash.c powerpc/rtas_flash: Use simple_read_from_buffer 2011-01-21 14:08:34 +11:00
rtas_pci.c
rtasd.c powerpc: Check RTAS extended log flag before checking length 2011-01-21 14:08:38 +11:00
setup-common.c
setup.h
setup_32.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-10-21 21:19:54 -07:00
setup_64.c powerpc: Fix incorrect comment about interrupt stack allocation 2010-12-09 15:35:31 +11:00
signal.c
signal.h
signal_32.c
signal_64.c
smp-tbsync.c
smp.c powerpc: Cleanup APIs for cpu/thread/core mappings 2010-11-29 15:48:19 +11:00
softemu8xx.c
stacktrace.c
suspend.c
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
sys_ppc32.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
syscalls.c
sysfs.c
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
time.c powerpc/cell: Use system_wq in cpufreq_spudemand 2011-01-21 14:08:34 +11:00
traps.c powerpc: Don't silently handle machine checks from userspace 2011-01-21 14:08:37 +11:00
udbg.c
udbg_16550.c
vdso.c
vecemu.c
vector.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
vio.c powerpc/iommu: Use coherent_dma_mask for alloc_coherent 2010-12-09 15:17:50 +11:00
vmlinux.lds.S