Skip to content
  • Luciano Coelho's avatar
    mac80211: initialize sta pointer to avoid false-positive warning · 6df653c7
    Luciano Coelho authored
    
    
    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: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    6df653c7