diff options
author | Suzuki Poulose <suzuki@in.ibm.com> | 2012-04-15 17:48:21 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@gmail.com> | 2012-05-03 08:37:36 -0400 |
commit | f13bfcc6961a5c9f511c401292db522edcd0b061 (patch) | |
tree | 155e83bebe453ddac859a7b542e98ecc0f3f2a52 /arch/powerpc/kernel/misc_32.S | |
parent | ec34a6814988f17506733c1e8b058ce46602591d (diff) |
powerpc/44x: Fix/Initialize PID to kernel PID before the TLB search
Initialize the PID register with kernel pid (0) before we start
setting the TLB mapping for KEXEC. Also set the MMUCR[TID] to kernel
PID.
This was spotted while testing the kexec on ISS for 47x. ISS doesn't
return a successful tlbsx for a kernel address with PID set to a user PID.
Though the hardware/qemu/simics work fine.
This patch is harmless and initializes the PID to 0 (kernel PID) which
is usually the case during a normal kernel boot. This would fix the kexec
on ISS for 440. I have tested this patch on sequoia board.
Signed-off-by: Suzuki K Poulose <suzuki@in.ibm.com>
Cc: Josh Boyer <jwboyer@gmail.com>
Signed-off-by: Josh Boyer <jwboyer@gmail.com>
Diffstat (limited to 'arch/powerpc/kernel/misc_32.S')
-rw-r--r-- | arch/powerpc/kernel/misc_32.S | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 7cd07b42ca1..d7e05d20b55 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -761,8 +761,12 @@ relocate_new_kernel: | |||
761 | mr r30, r4 | 761 | mr r30, r4 |
762 | mr r31, r5 | 762 | mr r31, r5 |
763 | 763 | ||
764 | /* Load our MSR_IS and TID to MMUCR for TLB search */ | 764 | /* |
765 | mfspr r3,SPRN_PID | 765 | * Load the PID with kernel PID (0). |
766 | * Also load our MSR_IS and TID to MMUCR for TLB search. | ||
767 | */ | ||
768 | li r3, 0 | ||
769 | mtspr SPRN_PID, r3 | ||
766 | mfmsr r4 | 770 | mfmsr r4 |
767 | andi. r4,r4,MSR_IS@l | 771 | andi. r4,r4,MSR_IS@l |
768 | beq wmmucr | 772 | beq wmmucr |