W dniu 20 maja 2011 00:12 użytkownik Larry Finger <[email protected]> napisał: > On 05/19/2011 04:43 PM, Rafał Miłecki wrote: >> >> 2011/5/19 Larry Finger<[email protected]>: >>> >>> When cross-compiling the 2.6.39 wireless-testing source using GCC version >>> (SUSE Linux) 4.3.2 [gcc-4_3-branch revision 141291] on an x86_64 system, >>> the following warning is issued: >>> >>> CC [M] drivers/net/wireless/b43/phy_n.o >>> drivers/net/wireless/b43/phy_n.c: In function ‘b43_nphy_cal_tx_iq_lo’: >>> drivers/net/wireless/b43/phy_n.c:3096: warning: ‘last’ may be used >>> uninitialized in this function >>> >>> A quick look at the code shows that the warning is bogus and a gcc bug, >>> but to ensure clean compilation for all users, mark the offending >>> variable >>> as uninitialized. >> >> Did you check for both "last" usages on this function? From my quick >> review it seems "last" is set in case of >> 1) mphase_cal_phase_id> 2 >> xor >> 2) b43_nphy_tx_tone returning success >> >> I'm not so sure if this patch is correct. > > My analysis is as follows: "last" is created in line 3096. In line 3256, it > is set by the statement "last = (dev->phy.rev < 3) ? 6 : 7;". In line 3258 > and 3300, it is tested for equality with "nphy->mphase_cal_phase_id". As > there is no path around line 3256, it seems to me that last must be assigned > a value at 3256 and the warning is bogus. > > The call in line 3154 to b43_nphy_tx_tone is "error = b43_nphy_tx_tone(dev, > freq, 250, true, false);" and does not access last. > > If this patch is not correct, then last must be initialized to zero and the > older compiler is correct and the newer ones are buggy for not reporting the > problem.
I should have describe where I can see the problem. If error is other than 0 (it can be as the result of "error = b43_nphy_tx_tone(dev, freq, 250, true, false);"), then "last" won't be set in 3256. In 3300 we use "last", no matter what "error" is. -- Rafał _______________________________________________ b43-dev mailing list [email protected] http://lists.infradead.org/mailman/listinfo/b43-dev
