yann@1: Date: Sun, 20 Mar 2005 20:26:02 -0800 yann@1: From: Richard Henderson yann@1: To: Andrew Morton yann@1: Cc: Dan Kegel , jbglaw@lug-owl.de, yann@1: linux-kernel@vger.kernel.org, torvalds@osdl.org yann@1: Subject: Re: 2.6.11.3 build problem in arch/alpha/kernel/srcons.c with gcc-4.0 yann@1: Message-ID: <20050321042602.GA3795@twiddle.net> yann@1: Mail-Followup-To: Andrew Morton , Dan Kegel , yann@1: jbglaw@lug-owl.de, linux-kernel@vger.kernel.org, torvalds@osdl.org yann@1: References: <423E238F.3030805@kegel.com> <20050320190352.65cc1396.akpm@osdl.org> yann@1: Mime-Version: 1.0 yann@1: Content-Type: text/plain; charset=us-ascii yann@1: Content-Disposition: inline yann@1: In-Reply-To: <20050320190352.65cc1396.akpm@osdl.org> yann@1: User-Agent: Mutt/1.4.1i yann@1: yann@1: On Sun, Mar 20, 2005 at 07:03:52PM -0800, Andrew Morton wrote: yann@1: > Dan Kegel wrote: yann@1: > > yann@1: > > Anyone with an alpha care to suggest a fix for this? yann@1: > > yann@1: > > arch/alpha/kernel/srmcons.c: In function 'srmcons_open': yann@1: > > arch/alpha/kernel/srmcons.c:196: warning: 'srmconsp' may be used uninitialized in this function yann@1: > > make[1]: *** [arch/alpha/kernel/srmcons.o] Error 1 yann@1: > > make: *** [arch/alpha/kernel] Error 2 yann@1: > > yann@1: > > I get this when building the 2.6.11.3 kernel with a recent gcc-4.0 snapshot. yann@1: > > yann@1: > yann@1: > It's beyond gcc's ability to figure out that the code is OK. Options would yann@1: > be to disable -Werror, or to artificially initialise that variable. yann@1: yann@1: Fixed thus. yann@1: yann@1: Note that even with a _raw_read_trylock implementation, smp still yann@1: doesn't work. Everything that init spawns dies immediately. I yann@1: havn't had a chance to find out why yet... yann@1: yann@1: [ Note: deleted changes to smp.c, since they didn't apply cleanly yann@1: to 2.6.11.3 (the function had moved, I guess), and they seemed unrelated.] yann@1: yann@1: r~ yann@1: yann@1: yann@1: yann@1: You can import this changeset into BK by piping this whole message to: yann@1: '| bk receive [path to repository]' or apply the patch as usual. yann@1: yann@1: =================================================================== yann@1: yann@1: yann@1: ChangeSet@1.2289, 2005-03-20 12:29:41-08:00, rth@kanga.twiddle.home yann@1: [ALPHA] Elimitate two warnings from gcc4. yann@1: yann@1: yann@1: smp.c | 43 ------------------------------------------- yann@1: srmcons.c | 27 ++++++++++----------------- yann@1: 2 files changed, 10 insertions(+), 60 deletions(-) yann@1: yann@1: yann@1: diff -Nru a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c yann@1: --- a/arch/alpha/kernel/srmcons.c 2005-03-20 20:23:28 -08:00 yann@1: +++ b/arch/alpha/kernel/srmcons.c 2005-03-20 20:23:28 -08:00 yann@1: @@ -164,29 +164,22 @@ yann@1: unsigned long flags; yann@1: int retval = 0; yann@1: yann@1: - spin_lock_irqsave(&srmconsp_lock, flags); yann@1: - yann@1: - do { yann@1: - if (srmconsp != NULL) { yann@1: - *ps = srmconsp; yann@1: - break; yann@1: - } yann@1: + if (srmconsp == NULL) { yann@1: + spin_lock_irqsave(&srmconsp_lock, flags); yann@1: yann@1: srmconsp = kmalloc(sizeof(*srmconsp), GFP_KERNEL); yann@1: - if (srmconsp == NULL) { yann@1: + if (srmconsp == NULL) yann@1: retval = -ENOMEM; yann@1: - break; yann@1: + else { yann@1: + srmconsp->tty = NULL; yann@1: + spin_lock_init(&srmconsp->lock); yann@1: + init_timer(&srmconsp->timer); yann@1: } yann@1: yann@1: - srmconsp->tty = NULL; yann@1: - spin_lock_init(&srmconsp->lock); yann@1: - init_timer(&srmconsp->timer); yann@1: - yann@1: - *ps = srmconsp; yann@1: - } while(0); yann@1: - yann@1: - spin_unlock_irqrestore(&srmconsp_lock, flags); yann@1: + spin_unlock_irqrestore(&srmconsp_lock, flags); yann@1: + } yann@1: yann@1: + *ps = srmconsp; yann@1: return retval; yann@1: } yann@1: yann@1: yann@1: =================================================================== yann@1: yann@1: yann@1: This BitKeeper patch contains the following changesets: yann@1: 1.2289 yann@1: ## Wrapped with gzip_uu ## yann@1: yann@1: yann@1: M'XL( $!,/D( [56[V_;-A#]+/X5!Q38FFV628KZY4XSH8D1KK%-F#@>'J\]^[>V6_@6@LU\919H#?PL=%F yann@1: MXG$E?+,N\[P2OA3&QJ^:QL;'BZ868YLY?O=YS&_;$?4C9$\ON3:P:O]%YY3=J_D^4 yann@1: M$ (\R^')V? yann@1: M@82,8'2Y5Q6-7OA""'.,3AZA:?O>)3BWJA?I3?Z"*G>@#RND49R&PW0_0\O-^RN)C,R\ yann@1: MNCVM2MD9UB_#4'" X8@&$8D?A5+ yann@1: M7(FU*JT1[@J?S869M:I<67/,M%%=9D!W;MTLN(&?6@VE!EZM^4:#>] (Z;O