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 powerpc: Ignore generated vmlinux.lds in git 2008-10-07 14:26:18 +11:00
Makefile powerpc: Consolidate obj-y assignments 2010-11-29 15:48:22 +11:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cacheinfo.h powerpc: Rewrite sysfs processor cache info code 2009-01-08 16:25:10 +11:00
clock.c [POWERPC] clk.h interface for platforms 2007-10-03 09:11:56 +10:00
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 powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
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 powerpc: Make powerpc_firmware_features __read_mostly 2010-02-09 13:56:07 +11:00
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 Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 10:56:46 -07:00
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 powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_book3e.S powerpc/book3e: Add generic 64-bit idle powersave support 2010-07-14 14:13:18 +10:00
idle_e500.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_power4.S
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io.c powerpc: tiny memcpy_(to|from)io optimisation 2009-11-04 16:43:12 -07:00
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 [POWERPC] Remove leftover printk in isa-bridge.c 2008-05-09 20:22:59 +10:00
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 Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
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
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 powerpc/ppc32: ftrace, dynamic ftrace to handle modules 2008-11-20 10:52:53 -08:00
module_64.c powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
mpc7450-pmu.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
msi.c powerpc/PCI: include pci.h in powerpc MSI implementation 2009-03-25 08:54:29 -07:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pci_64.c powerpc/pci: Use printf extension %pR for struct resource 2010-12-09 15:36:30 +11:00
pci_dn.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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 powerpc: Convert pmc_owner_lock to raw_spinlock 2010-02-19 14:52:33 +11:00
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 powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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 powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
rtas-proc.c powerpc: Move /proc/ppc64 to /proc/powerpc update 2010-01-15 13:26:17 +11:00
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 powerpc/pci: Clean up direct access to sysdata by RTAS 2009-05-21 15:44:23 +10:00
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 powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
smp.c powerpc: Cleanup APIs for cpu/thread/core mappings 2010-11-29 15:48:19 +11:00
softemu8xx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
stacktrace.c powerpc: Removed duplicated include in stacktrace.c 2008-07-28 16:30:47 +10:00
suspend.c update email address 2010-07-19 10:56:54 +02:00
swsusp.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
swsusp_32.S powerpc/swsusp_32: Fix TLB invalidation 2010-01-15 13:20:07 +11:00
swsusp_64.c
swsusp_asm64.S powerpc: Fix 64-bit hibernation with 64k pages 2008-10-07 14:26:20 +11:00
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 Add generic sys_olduname() 2010-03-12 15:52:32 -08:00
sysfs.c powerpc: Use smt_snooze_delay=-1 to always busy loop 2010-05-21 17:31:12 +10:00
systbl.S [POWERPC] Align the sys_call_table 2007-10-11 14:36:47 +10:00
systbl_chk.c [POWERPC] Fix a couple of copyright symbols 2008-01-25 22:52:50 +11:00
systbl_chk.sh [POWERPC] Fix a couple of copyright symbols 2008-01-25 22:52:50 +11:00
tau_6xx.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
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 powerpc: gamecube/wii: early debugging using usbgecko 2009-12-12 22:24:31 -07:00
udbg_16550.c trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
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 Rename .data.read_mostly to .data..read_mostly. 2010-03-03 11:26:00 +01:00