powerpc: Only save/restore SDR1 if in hypervisor mode
Currently, when not in hypervisor mode the kernel Oopses during suspend or hibernation when accessing the SDR1 register, because it is only available in hypervisor mode. Access to it needs to be protected in BEGIN/END_FW_FTR_SECTION. Signed-off-by: Dan Streetman <ddstreet@ieee.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reported-by: Jimmy Pan <jipan@redhat.com> Tested-by: Jimmy Pan <jipan@redhat.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
de00b30d05
commit
711b5138d5
|
@ -114,7 +114,9 @@ _GLOBAL(swsusp_arch_suspend)
|
|||
SAVE_SPECIAL(MSR)
|
||||
SAVE_SPECIAL(XER)
|
||||
#ifdef CONFIG_PPC_BOOK3S_64
|
||||
BEGIN_FW_FTR_SECTION
|
||||
SAVE_SPECIAL(SDR1)
|
||||
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_LPAR)
|
||||
#else
|
||||
SAVE_SPR(TCR)
|
||||
|
||||
|
@ -231,7 +233,9 @@ nothing_to_copy:
|
|||
/* can't use RESTORE_SPECIAL(MSR) */
|
||||
ld r0, SL_MSR(r11)
|
||||
mtmsrd r0, 0
|
||||
BEGIN_FW_FTR_SECTION
|
||||
RESTORE_SPECIAL(SDR1)
|
||||
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_LPAR)
|
||||
#else
|
||||
/* Restore SPRG1, be used to save paca */
|
||||
ld r0, SL_SPRG1(r11)
|
||||
|
|
Loading…
Reference in New Issue