Sorry, Please ignore this patch. This is replaced. Replace by: http://patchwork.ozlabs.org/patch/250033/
- dongsheng > -----Original Message----- > From: Wang Dongsheng-B40534 > Sent: Sunday, June 09, 2013 1:23 PM > To: b...@kernel.crashing.org; johan...@sipsolutions.net; an...@enomsg.org > Cc: Wood Scott-B07421; ga...@kernel.crashing.org; linuxppc- > d...@lists.ozlabs.org; Wang Dongsheng-B40534 > Subject: [PATCH v2 2/2] powerpc/hibernate: PPC64 fix user threads access > to kernel space > > If PID is used in the TLB, after hibernation resume, the user > threads will access to kernel space. > > We must restore PID register, because TLB will use PID. The > hibernation suspend flow is trapped from user space to kernel > space, the PID register is user thread pid. > > The hibernation resume is begin in kernel start flow, the PID > alway 0. After the kernel thread back to user thread, there is > not have context switch and the pid can not update, because the > kernel thread is trapped form user space. So if we did't restore > PID the user space of thread will be addressing in the kernel > space. > > There are two ways to restore PID: > 1/ In swsusp_arch_suspend/swsusp_arch_resume, save/resotre PID register. > 2/ Form restore_processor_state to restore. this function will > do context switch. > switch_mmu_context(current->active_mm, current->active_mm) > > PPC32 Using the second method. For consistency reason, PPC64 using > the same way. > > Signed-off-by: Wang Dongsheng <dongsheng.w...@freescale.com> > --- > arch/powerpc/kernel/swsusp.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/arch/powerpc/kernel/swsusp.c b/arch/powerpc/kernel/swsusp.c > index eae33e1..1930e44 100644 > --- a/arch/powerpc/kernel/swsusp.c > +++ b/arch/powerpc/kernel/swsusp.c > @@ -32,7 +32,5 @@ void save_processor_state(void) > > void restore_processor_state(void) > { > -#ifdef CONFIG_PPC32 > switch_mmu_context(current->active_mm, current->active_mm); > -#endif > } > -- > 1.8.0 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev