Hi,
I am getting the following false warning from sparse:
CHECK drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c:1158:13: warning: context
imbalance in 'rtl92c_dm_refresh_rate_adaptive_mask' - different lock contexts
for basic block
The only code in that routine that does any locking is the following:
/* Only the PCI card uses sta in the update rate table
* callback routine */
if (rtlhal->interface == INTF_PCI) {
rcu_read_lock();
sta = ieee80211_find_sta(mac->vif, mac->bssid);
}
rtlpriv->cfg->ops->update_rate_tbl(hw, sta,
p_ra->ratr_state);
p_ra->pre_ratr_state = p_ra->ratr_state;
if (rtlhal->interface == INTF_PCI)
rcu_read_unlock();
Does the warning get output because the code cannot assume that
rtlhal->interface is the same in both if statements? If that is the case, are
there any compiler directives that would tell sparse of the situation?
Thanks,
Larry
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html