On 03/10/2014 09:17 AM, David Vrabel wrote:
> diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
> index 57409f6..c8078d2 100644
> --- a/arch/x86/kernel/traps.c
> +++ b/arch/x86/kernel/traps.c
> @@ -624,18 +624,13 @@ void math_state_restore(void)
>       struct task_struct *tsk = current;
>  
>       if (!tsk_used_math(tsk)) {
> -             local_irq_enable();
> -             /*
> -              * does a slab alloc which can sleep
> -              */
> -             if (init_fpu(tsk)) {
> +             if (init_fpu(tsk, GFP_ATOMIC)) {
>                       /*
>                        * ran out of memory!
>                        */
> -                     do_group_exit(SIGKILL);
> +                     force_sig(SIGKILL, tsk);
>                       return;
>               }
> -             local_irq_disable();
>       }
>  

OK, answering my own question... you're randomly SIGKILLing processes
because the kernel doesn't have enough memory on hand.

In other words, because Xen is broken you want to break the rest of the
universe.

This is NAKed so hard it isn't even funny.

        -hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to