The exception stack was always set up 64 KiB below the ROM, ignoring hash table alignment. Align the stack pointer appropriately.
v2: * Drop buggy distinction based on PVR value since the previous patch unifies alignment. Suggested by Segher Boessenkool.
Cc: Alexander Graf agraf@suse.de Cc: Segher Boessenkool segher@kernel.crashing.org Signed-off-by: Andreas Färber andreas.faerber@web.de --- arch/ppc/qemu/start.S | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/arch/ppc/qemu/start.S b/arch/ppc/qemu/start.S index d0d51b5..0775536 100644 --- a/arch/ppc/qemu/start.S +++ b/arch/ppc/qemu/start.S @@ -334,9 +334,13 @@ GLOBL(_entry):
addis r1, r3, -16 /* ramsize - 1MB */
- /* setup exception stack */ + /* setup hash table */
addis r1, r1, -1 /* - 64 kB */ + clrrwi r1, r1, 5*4 /* & ~0xfffff */ + + /* setup exception stack */ + mtsprg0 r1
/* setup stack */