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 powerpc/Makefiles: Change to new flag variables 2010-10-13 16:19:22 +11:00
vdso64 powerpc/Makefiles: Change to new flag variables 2010-10-13 16:19:22 +11:00
.gitignore
align.c powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} 2010-09-02 14:07:32 +10:00
asm-offsets.c powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
audit.c
btext.c lmb: rename to memblock 2010-07-14 17:14:00 +10:00
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 powerpc/44x: Add support for the AMCC APM821xx SoC 2010-10-13 08:47:09 -04:00
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 powerpc/book3e: Resend doorbell exceptions to ourself 2010-07-09 16:11:19 +10:00
dma-iommu.c powerpc/iommu: Use coherent_dma_mask for alloc_coherent 2010-12-09 15:17:50 +11:00
dma-swiotlb.c of: Merge of_platform_bus_type with platform_bus_type 2010-07-24 09:57:51 -06:00
dma.c powerpc/dma: Fix check for direct DMA support 2010-10-13 16:19:21 +11:00
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 powerpc: Account time using timebase rather than PURR 2010-09-02 14:07:31 +10:00
exceptions-64e.S powerpc/book3e: Fix single step when using HW page tables 2010-07-14 14:13:51 +10:00
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 powerpc/fsl-booke: Fix address issue when using relocatable kernels 2010-07-11 11:04:08 -05:00
ftrace.c
head_8xx.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
head_32.S KVM: PPC: Add KVM intercept handlers 2010-05-17 12:18:52 +03:00
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 powerpc/booke: Add Stack Marking support to Booke Exception Prolog 2010-05-05 08:01:52 -04:00
head_fsl_booke.S powerpc: Remove second definition of STACK_FRAME_OVERHEAD 2010-11-29 15:48:23 +11:00
hw_breakpoint.c powerpc, hw_breakpoint: Tell generic code we have no instruction breakpoints 2010-06-30 13:54:58 +10:00
ibmebus.c of/device: Rework to use common platform_device_alloc() for allocating devices 2010-10-21 11:10:10 -06:00
idle.c powerpc: Re-enable preemption before cpu_die() 2010-08-24 15:26:29 +10:00
idle_6xx.S
idle_book3e.S powerpc/book3e: Add generic 64-bit idle powersave support 2010-07-14 14:13:18 +10:00
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 powerpc/kprobes: Remove resume_execution() in kprobes 2010-06-02 17:50:37 +10:00
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 powerpc, of_serial: Endianness issues setting up the serial ports 2010-10-07 17:21:15 -06:00
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 powerpc/kexec: make masking/disabling interrupts generic 2010-10-14 00:52:46 -05:00
machine_kexec_64.c powerpc/kexec: Fix orphaned offline CPUs across kexec 2010-07-31 15:05:22 +10:00
Makefile powerpc: Consolidate obj-y assignments 2010-11-29 15:48:22 +11:00
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 powerpc: remove unused variable 2010-10-05 17:27:54 -07:00
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 of: remove of_default_bus_ids 2010-07-24 09:58:22 -06:00
paca.c powerpc/iseries: Fix early init access to lppaca 2011-03-10 10:06:02 +11:00
pci-common.c powerpc/pci: Cleanup device dma setup code 2010-10-13 16:19:22 +11:00
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 powerpc/pci: Fix checking for child bridges in PCI code. 2010-08-24 15:28:27 +10:00
perf_callchain.c perf: Factorize callchain context handling 2010-08-19 01:32:11 +02:00
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 powerpc: Print decimal values in prom_init.c 2010-07-31 15:05:20 +10:00
prom_init_check.sh powerpc: Fix compile errors in prom_init_check for gcc 4.5 2010-07-08 18:11:39 +10:00
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 powerpc: fix i8042 module build error 2010-08-06 20:49:20 -06:00
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 powerpc: fix double syscall restarts 2010-09-22 09:33:50 -07:00
signal.h
signal_32.c powerpc: fix double syscall restarts 2010-09-22 09:33:50 -07:00
signal_64.c powerpc: fix double syscall restarts 2010-09-22 09:33:50 -07:00
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 update email address 2010-07-19 10:56:54 +02:00
swsusp.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S powerpc/fsl-booke: Add hibernation support for FSL BookE processors 2010-05-21 07:41:53 -05:00
sys_ppc32.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
syscalls.c
sysfs.c powerpc: Use smt_snooze_delay=-1 to always busy loop 2010-05-21 17:31:12 +10:00
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 powerpc: Use is_32bit_task() helper to test 32-bit binary 2010-09-02 14:07:32 +10:00
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