yann@402
|
1 |
Date: Sun, 20 Mar 2005 20:26:02 -0800
|
yann@402
|
2 |
From: Richard Henderson <rth@twiddle.net>
|
yann@402
|
3 |
To: Andrew Morton <akpm@osdl.org>
|
yann@402
|
4 |
Cc: Dan Kegel <dank@kegel.com>, jbglaw@lug-owl.de,
|
yann@402
|
5 |
linux-kernel@vger.kernel.org, torvalds@osdl.org
|
yann@402
|
6 |
Subject: Re: 2.6.11.3 build problem in arch/alpha/kernel/srcons.c with gcc-4.0
|
yann@402
|
7 |
Message-ID: <20050321042602.GA3795@twiddle.net>
|
yann@402
|
8 |
Mail-Followup-To: Andrew Morton <akpm@osdl.org>, Dan Kegel <dank@kegel.com>,
|
yann@402
|
9 |
jbglaw@lug-owl.de, linux-kernel@vger.kernel.org, torvalds@osdl.org
|
yann@402
|
10 |
References: <423E238F.3030805@kegel.com> <20050320190352.65cc1396.akpm@osdl.org>
|
yann@402
|
11 |
Mime-Version: 1.0
|
yann@402
|
12 |
Content-Type: text/plain; charset=us-ascii
|
yann@402
|
13 |
Content-Disposition: inline
|
yann@402
|
14 |
In-Reply-To: <20050320190352.65cc1396.akpm@osdl.org>
|
yann@402
|
15 |
User-Agent: Mutt/1.4.1i
|
yann@402
|
16 |
|
yann@402
|
17 |
On Sun, Mar 20, 2005 at 07:03:52PM -0800, Andrew Morton wrote:
|
yann@402
|
18 |
> Dan Kegel <dank@kegel.com> wrote:
|
yann@402
|
19 |
> >
|
yann@402
|
20 |
> > Anyone with an alpha care to suggest a fix for this?
|
yann@402
|
21 |
> >
|
yann@402
|
22 |
> > arch/alpha/kernel/srmcons.c: In function 'srmcons_open':
|
yann@402
|
23 |
> > arch/alpha/kernel/srmcons.c:196: warning: 'srmconsp' may be used uninitialized in this function
|
yann@402
|
24 |
> > make[1]: *** [arch/alpha/kernel/srmcons.o] Error 1
|
yann@402
|
25 |
> > make: *** [arch/alpha/kernel] Error 2
|
yann@402
|
26 |
> >
|
yann@402
|
27 |
> > I get this when building the 2.6.11.3 kernel with a recent gcc-4.0 snapshot.
|
yann@402
|
28 |
> >
|
yann@402
|
29 |
>
|
yann@402
|
30 |
> It's beyond gcc's ability to figure out that the code is OK. Options would
|
yann@402
|
31 |
> be to disable -Werror, or to artificially initialise that variable.
|
yann@402
|
32 |
|
yann@402
|
33 |
Fixed thus.
|
yann@402
|
34 |
|
yann@402
|
35 |
Note that even with a _raw_read_trylock implementation, smp still
|
yann@402
|
36 |
doesn't work. Everything that init spawns dies immediately. I
|
yann@402
|
37 |
havn't had a chance to find out why yet...
|
yann@402
|
38 |
|
yann@402
|
39 |
[ Note: deleted changes to smp.c, since they didn't apply cleanly
|
yann@402
|
40 |
to 2.6.11.3 (the function had moved, I guess), and they seemed unrelated.]
|
yann@402
|
41 |
|
yann@402
|
42 |
r~
|
yann@402
|
43 |
|
yann@402
|
44 |
|
yann@402
|
45 |
|
yann@402
|
46 |
You can import this changeset into BK by piping this whole message to:
|
yann@402
|
47 |
'| bk receive [path to repository]' or apply the patch as usual.
|
yann@402
|
48 |
|
yann@402
|
49 |
===================================================================
|
yann@402
|
50 |
|
yann@402
|
51 |
|
yann@402
|
52 |
ChangeSet@1.2289, 2005-03-20 12:29:41-08:00, rth@kanga.twiddle.home
|
yann@402
|
53 |
[ALPHA] Elimitate two warnings from gcc4.
|
yann@402
|
54 |
|
yann@402
|
55 |
|
yann@402
|
56 |
smp.c | 43 -------------------------------------------
|
yann@402
|
57 |
srmcons.c | 27 ++++++++++-----------------
|
yann@402
|
58 |
2 files changed, 10 insertions(+), 60 deletions(-)
|
yann@402
|
59 |
|
yann@402
|
60 |
|
yann@402
|
61 |
diff -Nru a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c
|
yann@402
|
62 |
--- a/arch/alpha/kernel/srmcons.c 2005-03-20 20:23:28 -08:00
|
yann@402
|
63 |
+++ b/arch/alpha/kernel/srmcons.c 2005-03-20 20:23:28 -08:00
|
yann@402
|
64 |
@@ -164,29 +164,22 @@
|
yann@402
|
65 |
unsigned long flags;
|
yann@402
|
66 |
int retval = 0;
|
yann@402
|
67 |
|
yann@402
|
68 |
- spin_lock_irqsave(&srmconsp_lock, flags);
|
yann@402
|
69 |
-
|
yann@402
|
70 |
- do {
|
yann@402
|
71 |
- if (srmconsp != NULL) {
|
yann@402
|
72 |
- *ps = srmconsp;
|
yann@402
|
73 |
- break;
|
yann@402
|
74 |
- }
|
yann@402
|
75 |
+ if (srmconsp == NULL) {
|
yann@402
|
76 |
+ spin_lock_irqsave(&srmconsp_lock, flags);
|
yann@402
|
77 |
|
yann@402
|
78 |
srmconsp = kmalloc(sizeof(*srmconsp), GFP_KERNEL);
|
yann@402
|
79 |
- if (srmconsp == NULL) {
|
yann@402
|
80 |
+ if (srmconsp == NULL)
|
yann@402
|
81 |
retval = -ENOMEM;
|
yann@402
|
82 |
- break;
|
yann@402
|
83 |
+ else {
|
yann@402
|
84 |
+ srmconsp->tty = NULL;
|
yann@402
|
85 |
+ spin_lock_init(&srmconsp->lock);
|
yann@402
|
86 |
+ init_timer(&srmconsp->timer);
|
yann@402
|
87 |
}
|
yann@402
|
88 |
|
yann@402
|
89 |
- srmconsp->tty = NULL;
|
yann@402
|
90 |
- spin_lock_init(&srmconsp->lock);
|
yann@402
|
91 |
- init_timer(&srmconsp->timer);
|
yann@402
|
92 |
-
|
yann@402
|
93 |
- *ps = srmconsp;
|
yann@402
|
94 |
- } while(0);
|
yann@402
|
95 |
-
|
yann@402
|
96 |
- spin_unlock_irqrestore(&srmconsp_lock, flags);
|
yann@402
|
97 |
+ spin_unlock_irqrestore(&srmconsp_lock, flags);
|
yann@402
|
98 |
+ }
|
yann@402
|
99 |
|
yann@402
|
100 |
+ *ps = srmconsp;
|
yann@402
|
101 |
return retval;
|
yann@402
|
102 |
}
|
yann@402
|
103 |
|
yann@402
|
104 |
|
yann@402
|
105 |
===================================================================
|
yann@402
|
106 |
|
yann@402
|
107 |
|
yann@402
|
108 |
This BitKeeper patch contains the following changesets:
|
yann@402
|
109 |
1.2289
|
yann@402
|
110 |
## Wrapped with gzip_uu ##
|
yann@402
|
111 |
|
yann@402
|
112 |
|
yann@402
|
113 |
M'XL( $!,/D( [56[V_;-A#]+/X5!Q38FFV628KZY<!!TJ98BP9;D"&?BL)@
|
yann@402
|
114 |
M),H6+%$:2=DQIOWO)>4XSH8D1KK%-F#@>'J\]^[>V6_@6@LU\919H#?PL=%F
|
yann@402
|
115 |
MXG$E?+,N\[P2OA3&QJ^:QL;'BZ868YLY?O=YS&_;$?4C9$\ON<D6L!)*3SSB
|
yann@402
|
116 |
M!_<1LVG%Q+OZ\.OUQ=D50M,IO%]P.1=_" /3*3*-6O$JUZ?<+*I&^D9QJ6MA
|
yann@402
|
117 |
MN)\U=7^?VE.,J7V') YP&/4DPBSN,Y(3PAD1.:8LB=@>3:P:O]%YY3=J_D^4
|
yann@402
|
118 |
M$ <DH4&0!LRBL"A YT!\2I,4<#C&P9AB('1"TPDC(YQ,, 9+]G1I(?B]($X#
|
yann@402
|
119 |
M^)G""*-W\/]2>(\R^')V<?GQ["M\J,JZ--P(,.L&UES)4LXU%*JI89YES$>?
|
yann@402
|
120 |
M@82,8'2Y5Q6-7OA""'.,3AZA:?O><Y4MQKQJ%WR\%$J*:JQ5G352^YEC%&!"
|
yann@402
|
121 |
ML664!%%/+:^PCW-:I 7)XUSDE*;Q$_(= K9]<FK1E(0]HPPS6^'S2C\"6+=;
|
yann@402
|
122 |
ML#O=&::T#^*8QGU*;D@>)3BWJA?I3?Z"*G>@#RND49R&PW0_0\O-^RN)C,R\
|
yann@402
|
123 |
MNCVM2MD9U<CRUL_%EYU:7P]+32@A$644]RQ,*!TL0>B_#4'" X8@&$8D?A5+
|
yann@402
|
124 |
M7(FU*JT1[@J?S869M:I<67/,M%%=9D!W;MTLN(&?6@VE!EZM^4:#>] (Z<RR
|
yann@402
|
125 |
M':3?8:36P\<._^5S'?L.+YV3*(88?;*4@"*O+.#M'5QK^P^_75]<',%?R/-T
|
yann@402
|
126 |
M6\I9U63+6:G^U'PEWOZP2QS"OT!1\;D^.K:0<03$0;HO[W%,EY5LLQ)@-DM4
|
yann@402
|
127 |
M6@P7>;O<T8DQ&]CF'P\'^Q)D:?;WCTY<\&C(<2<S4]9"/3P? D-I"8'$7IHD
|
yann@402
|
128 |
MCNT6L9,[6DIH.PI/,_/^=H^FCI7KV737WO;X*2\Y\QW^W?A/JP#==')YJDVG
|
yann@402
|
129 |
M+=HA'SU8!H1AS!@-^X"F=LJ<AT+R8@]9"['@52QT+BKA'%2W,]-):YML(?+.
|
yann@402
|
130 |
M[HSY,90&\D9H^:,!GIF.5]4&6J&*1M7 Y08Z+8JNLB!%)S-3-M)%:]M:YZKM
|
yann@402
|
131 |
I\COL*J?5=SG*3;1=2J%3<?]?PY:?+7573PFE(L5)@+X!A'U=W,@(
|
yann@402
|
132 |
|
yann@402
|
133 |
|
yann@402
|
134 |
|