lkml.org 
[lkml]   [2015]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Oops with tip/x86/fpu
On 03/26, Yu, Fenghua wrote:
>
> > On 03/05, Oleg Nesterov wrote:
> >
> > void sighup(int sig, siginfo_t *info, void *ctxt) {
> > struct ucontext *uctxt = ctxt;
> > struct sigcontext *sctxt = (void*)&uctxt->uc_mcontext;
> >
> > printf("SIGHUP! %p\n", sctxt->fpstate);
> > sctxt->fpstate = (void *)1;
>
> sctxt->fpstate=(void *)1 changes the fpstate pointer in the sigcontext.
> It will generate segfault and bad frame info in kernel.

Yes, but also it will trigger math_state_restore() without used_math().

This triggers 2 problems:

1. "BUG: sleeping function called from invalid context ...".

Fixed by a7c80ebcac3068b1c3cb27d538d29558c30010c8

2. On some machines this can lead to GPF. This is another FPU bug.
NOT FIXED yet. Because we all are busy with other problems ;)

And! this leads to kernel crash.

Fixed by 06c8173eb92bbfc03a0fe8bb64315857d0badd06

Oleg.



\
 
 \ /
  Last update: 2015-03-27 20:21    [W:1.766 / U:0.344 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site