From: Jeff D. <jd...@ad...> - 2008-07-23 15:52:25
|
My copying of linux/init.h didn't go far enough. The definition of __used singled out gcc minor version 3, but didn't care what the major version was. This broke when unit-at-a-time was added and gcc started throwing out initcalls. This results in an early boot crash when ptrace tries to initialize a process with an empty, uninitialized register set. Signed-off-by: Jeff Dike <jd...@li...> --- arch/um/include/init.h | 8 ++++++++ 1 file changed, 8 insertions(+) Index: linux-2.6.22/arch/um/include/init.h =================================================================== --- linux-2.6.22.orig/arch/um/include/init.h 2008-02-18 11:53:50.000000000 -0500 +++ linux-2.6.22/arch/um/include/init.h 2008-07-20 18:06:35.000000000 -0400 @@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void); # define __section(S) __attribute__ ((__section__(#S))) #endif +#if __GNUC__ == 3 + #if __GNUC_MINOR__ >= 3 # define __used __attribute__((__used__)) #else @@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void); #endif #else +#if __GNUC__ == 4 +# define __used __attribute__((__used__)) +#endif +#endif + +#else #include <linux/compiler.h> #endif /* These are for everybody (although not all archs will actually |
From: Andrew M. <ak...@li...> - 2008-07-23 19:59:45
|
On Wed, 23 Jul 2008 11:46:50 -0400 Jeff Dike <jd...@ad...> wrote: > My copying of linux/init.h didn't go far enough. The definition of > __used singled out gcc minor version 3, but didn't care what the major > version was. This broke when unit-at-a-time was added and gcc started > throwing out initcalls. > > This results in an early boot crash when ptrace tries to initialize a > process with an empty, uninitialized register set. > > Signed-off-by: Jeff Dike <jd...@li...> > --- > arch/um/include/init.h | 8 ++++++++ > 1 file changed, 8 insertions(+) > > Index: linux-2.6.22/arch/um/include/init.h > =================================================================== > --- linux-2.6.22.orig/arch/um/include/init.h 2008-02-18 11:53:50.000000000 -0500 > +++ linux-2.6.22/arch/um/include/init.h 2008-07-20 18:06:35.000000000 -0400 > @@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void); > # define __section(S) __attribute__ ((__section__(#S))) > #endif > > +#if __GNUC__ == 3 > + > #if __GNUC_MINOR__ >= 3 > # define __used __attribute__((__used__)) > #else > @@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void); > #endif > > #else > +#if __GNUC__ == 4 > +# define __used __attribute__((__used__)) > +#endif > +#endif > + > +#else > #include <linux/compiler.h> > #endif > /* These are for everybody (although not all archs will actually Needed in 2.6.26.x, but also applies to 2.6.25. Is it also needed in 2.6.25.x? |
From: Jeff D. <jd...@ad...> - 2008-07-24 02:49:35
|
On Wed, Jul 23, 2008 at 12:59:25PM -0700, Andrew Morton wrote: > Needed in 2.6.26.x, but also applies to 2.6.25. Is it also needed in > 2.6.25.x? It does apply nicely, but I think it's not needed for -stable. AIUI, -stable is for actual, realized bugs, and this one is more latent, being enabled by the unit-at-a-time change during 2.6.26-rc. Jeff -- Work email - jdike at linux dot intel dot com |
From: Jeff D. <jd...@ad...> - 2008-07-24 02:52:52
|
On Wed, Jul 23, 2008 at 12:59:25PM -0700, Andrew Morton wrote: > Needed in 2.6.26.x, but also applies to 2.6.25. Is it also needed in > 2.6.25.x? ... and just to be clear, I mean I think it's not exactly 2.6.25.x material. It is definite 2.26.6.x material. Jeff -- Work email - jdike at linux dot intel dot com |
From: Greg KH <gr...@kr...> - 2008-07-24 15:35:01
|
On Wed, Jul 23, 2008 at 10:52:37PM -0400, Jeff Dike wrote: > On Wed, Jul 23, 2008 at 12:59:25PM -0700, Andrew Morton wrote: > > Needed in 2.6.26.x, but also applies to 2.6.25. Is it also needed in > > 2.6.25.x? > > ... and just to be clear, I mean I think it's not exactly 2.6.25.x > material. It is definite 2.26.6.x material. Ok, fair enough, I'll queue it up when it hits Linus's tree. Neat hack: If you add the line cc: stable <st...@ke...> to the signed-off-by area of a patch, when it is applied by Linus it will be sent automatically to the stable team as well and we will know then that it is safe to apply to our trees. No additional work from you would be needed then. thanks, greg k-h |
From: Jeff D. <jd...@ad...> - 2008-08-01 22:41:49
|
>From 7ca5503f5ee32fb3cd6aa6eca21a8edfe09a7717 Mon Sep 17 00:00:00 2001 My copying of linux/init.h didn't go far enough. The definition of __used singled out gcc minor version 3, but didn't care what the major version was. This broke when unit-at-a-time was added and gcc started throwing out initcalls. This results in an early boot crash when ptrace tries to initialize a process with an empty, uninitialized register set. Signed-off-by: Jeff Dike <jd...@li...> Signed-off-by: Linus Torvalds <tor...@li...> --- arch/um/include/init.h | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/um/include/init.h b/arch/um/include/init.h index b00a957..37dd097 100644 --- a/arch/um/include/init.h +++ b/arch/um/include/init.h @@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void); # define __section(S) __attribute__ ((__section__(#S))) #endif +#if __GNUC__ == 3 + #if __GNUC_MINOR__ >= 3 # define __used __attribute__((__used__)) #else @@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void); #endif #else +#if __GNUC__ == 4 +# define __used __attribute__((__used__)) +#endif +#endif + +#else #include <linux/compiler.h> #endif /* These are for everybody (although not all archs will actually -- 1.5.5.1 |
From: Jeff D. <jd...@ad...> - 2008-08-05 20:14:34
|
>From 7c1fed03b9fa32d4323d5caa6a9c7dcdd7eba767 My copying of linux/init.h didn't go far enough. The definition of __used singled out gcc minor version 3, but didn't care what the major version was. This broke when unit-at-a-time was added and gcc started throwing out initcalls. This results in an early boot crash when ptrace tries to initialize a process with an empty, uninitialized register set. Signed-off-by: Jeff Dike <jd...@li...> Signed-off-by: Linus Torvalds <tor...@li...> --- arch/um/include/init.h | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/um/include/init.h b/arch/um/include/init.h index b00a957..37dd097 100644 --- a/arch/um/include/init.h +++ b/arch/um/include/init.h @@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void); # define __section(S) __attribute__ ((__section__(#S))) #endif +#if __GNUC__ == 3 + #if __GNUC_MINOR__ >= 3 # define __used __attribute__((__used__)) #else @@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void); #endif #else +#if __GNUC__ == 4 +# define __used __attribute__((__used__)) +#endif +#endif + +#else #include <linux/compiler.h> #endif /* These are for everybody (although not all archs will actually -- 1.5.5.1 |
From: <gr...@su...> - 2008-08-16 22:36:48
|
This is a note to let you know that we have just queued up the patch titled Subject: uml: Fix boot crash to the 2.6.25-stable tree. Its filename is uml-fix-boot-crash.patch A git repo of this tree can be found at http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary >From sta...@li... Tue Aug 5 13:14:58 2008 From: Jeff Dike <jd...@ad...> Date: Tue, 5 Aug 2008 16:14:10 -0400 Subject: uml: Fix boot crash To: st...@ke... Cc: LKML <lin...@vg...>, uml-devel <use...@li...> Message-ID: <200...@c2...> Content-Disposition: inline From: Jeff Dike <jd...@ad...> commit 7c1fed03b9fa32d4323d5caa6a9c7dcdd7eba767 upstream My copying of linux/init.h didn't go far enough. The definition of __used singled out gcc minor version 3, but didn't care what the major version was. This broke when unit-at-a-time was added and gcc started throwing out initcalls. This results in an early boot crash when ptrace tries to initialize a process with an empty, uninitialized register set. Signed-off-by: Jeff Dike <jd...@li...> Signed-off-by: Linus Torvalds <tor...@li...> Signed-off-by: Greg Kroah-Hartman <gr...@su...> --- arch/um/include/init.h | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/arch/um/include/init.h +++ b/arch/um/include/init.h @@ -45,6 +45,8 @@ typedef void (*exitcall_t)(void); # define __section(S) __attribute__ ((__section__(#S))) #endif +#if __GNUC__ == 3 + #if __GNUC_MINOR__ >= 3 # define __used __attribute__((__used__)) #else @@ -52,6 +54,12 @@ typedef void (*exitcall_t)(void); #endif #else +#if __GNUC__ == 4 +# define __used __attribute__((__used__)) +#endif +#endif + +#else #include <linux/compiler.h> #endif /* These are for everybody (although not all archs will actually Patches currently in stable-queue which might be from jd...@ad... are queue-2.6.25/uml-fix-build-when-slob-is-enabled.patch queue-2.6.25/uml-fix-bad-ntp-interaction-with-clock.patch queue-2.6.25/uml-physical-memory-shouldn-t-include-initial-stack.patch queue-2.6.25/uml-track-and-make-up-lost-ticks.patch queue-2.6.25/uml-missed-kmalloc-in-pcap_user.c.patch queue-2.6.25/uml-deal-with-host-time-going-backwards.patch queue-2.6.25/uml-deal-with-inaccessible-address-space-start.patch queue-2.6.25/uml-missing-export-of-csum_partial-on-uml-amd64.patch queue-2.6.25/uml-memcpy-export-needs-to-follow-host-declaration.patch queue-2.6.25/uml-stub-needs-to-tolerate-sigwinch.patch queue-2.6.25/uml-work-around-broken-host-ptrace_sysemu.patch queue-2.6.25/uml-fix-gcc-ices-and-unresolved-externs.patch queue-2.6.25/uml-fix-boot-crash.patch |