mac80211: initialize sta pointer to avoid false-positive warning
authorLuciano Coelho <coelho@ti.com>
Mon, 18 Jun 2012 12:52:51 +0000 (15:52 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 20 Jun 2012 08:54:23 +0000 (10:54 +0200)
commit6df653c71e8168e1df01118cc85cd84d0deeb583
treef1a05e10a875eeff275bb7256fa06ced3ced0842
parent559cef996d2e4c9b652a53bb3a53e5787e247f57
mac80211: initialize sta pointer to avoid false-positive warning

Some compilers (eg. gcc 4.4.1 for ARM) report a false positive warning
in mlme.c:

net/mac80211/mlme.c: In function 'ieee80211_prep_connection':
net/mac80211/mlme.c:3035: warning: 'sta' may be used uninitialized in this function

This is a false positive because the place where 'sta' is used is
inside an if with the same condition of where it is set:

[...]
        if (!have_sta) {
                sta = sta_info_alloc(sdata, cbss->bssid, GFP_KERNEL);
                if (!sta)
                        return -ENOMEM;
        }
[...]
        if (!have_sta) {
[...]
                sta->sta.supp_rates[cbss->channel->band] = rates;
[...]

For some reason the compiler doesn't understand this and warns.

While this is not a problem in the code itself, we can avoid polluting
the build logs with false positives by setting sta to NULL on
declaration and checking for sta instead of !have_sta in the second if.

Reported-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c