Messages in this thread | | | Date | Thu, 28 Oct 2010 10:17:57 -0400 | From | Jason Baron <>, | Subject | Re: [PATCH 2/2] jump label: disable due to compiler bug |
| |
On Wed, Oct 27, 2010 at 03:21:55PM -0700, H. Peter Anvin wrote: > Could you detail the bug, please? static_cpu_has() also uses asm goto. >
It seems that gcc can leave the stack in an inconsistent state.
I only saw this in the 'jmp' enabled case, I'm not sure if it can occur in the straight-line code path as well.
thanks,
-Jason
> "Jason Baron" <jbaron@redhat.com> wrote: > > >Unfortunately, we found a compiler bug in the implementation of > >'asm goto'. The bug can cause the kernel to crash. > > > >For now, we are disabling jump labels with a big hammer. When the > >gcc fix is committed, we will update the kernel with a better check > >for either the version number it's fix in, or some detection of > >whether gcc has the fix in place. > > > >Signed-off-by: Jason Baron <jbaron@redhat.com> > >--- > > include/linux/jump_label.h | 9 +++++++++ > > 1 files changed, 9 insertions(+), 0 deletions(-) > > > >diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h > >index b67cb18..954462a 100644 > >--- a/include/linux/jump_label.h > >+++ b/include/linux/jump_label.h > >@@ -1,11 +1,20 @@ > > #ifndef _LINUX_JUMP_LABEL_H > > #define _LINUX_JUMP_LABEL_H > > > >+/* > >+ * A compiler bug was found in the implementation of 'asm goto'. Thus, > >+ * we are disabling it for now pending a better check for compiler > >version > >+ * that fixes it. > >+ */ > >+#if 0 > >+ > > #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_HAVE_ARCH_JUMP_LABEL) > > # include <asm/jump_label.h> > > # define HAVE_JUMP_LABEL > > #endif > > > >+#endif > >+ > > enum jump_label_type { > > JUMP_LABEL_ENABLE, > > JUMP_LABEL_DISABLE > >-- > >1.7.1 > > -- > Sent from my mobile phone. Please pardon any lack of formatting.
| |