On 26/02/13 17:32, [email protected] wrote: > > The patch below does not apply to the 3.8-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <[email protected]>.
This patch was merged into 3.8-rc7 so it does not need to be applied to 3.8. David > ------------------ original commit in Linus's tree ------------------ > > From 313751fa7bb9364f320727c2af0735dc9104d188 Mon Sep 17 00:00:00 2001 > From: Jan Beulich <[email protected]> > Date: Wed, 30 Jan 2013 07:55:53 +0000 > Subject: [PATCH] x86-64: Replace left over sti/cli in ia32 audit exit code > > For some reason they didn't get replaced so far by their > paravirt equivalents, resulting in code to be run with > interrupts disabled that doesn't expect so (causing, in the > observed case, a BUG_ON() to trigger) when syscall auditing is > enabled. > > David (Cc-ed) came up with an identical fix, so likely this can > be taken to count as an ack from him. > > Reported-by: Peter Moody <[email protected]> > Signed-off-by: Jan Beulich <[email protected]> > Cc: David Vrabel <[email protected]> > Cc: Konrad Rzeszutek Wilk <[email protected]> > Link: http://lkml.kernel.org/r/[email protected] > Signed-off-by: Ingo Molnar <[email protected]> > Cc: [email protected] > Cc: Konrad Rzeszutek Wilk <[email protected]> > Cc: David Vrabel <[email protected]> > Tested-by: Peter Moody <[email protected]> > > diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S > index 102ff7c..142c4ce 100644 > --- a/arch/x86/ia32/ia32entry.S > +++ b/arch/x86/ia32/ia32entry.S > @@ -207,7 +207,7 @@ sysexit_from_sys_call: > testl $(_TIF_ALLWORK_MASK & > ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) > jnz ia32_ret_from_sys_call > TRACE_IRQS_ON > - sti > + ENABLE_INTERRUPTS(CLBR_NONE) > movl %eax,%esi /* second arg, syscall return value */ > cmpl $-MAX_ERRNO,%eax /* is it an error ? */ > jbe 1f > @@ -217,7 +217,7 @@ sysexit_from_sys_call: > call __audit_syscall_exit > movq RAX-ARGOFFSET(%rsp),%rax /* reload syscall return value */ > movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi > - cli > + DISABLE_INTERRUPTS(CLBR_NONE) > TRACE_IRQS_OFF > testl %edi,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) > jz \exit > -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
