rtlwifi: rtl8192c: Prevent sleeping from invalid context in rtl8192cu
[pandora-kernel.git] / drivers / net / wireless / rtlwifi / rtl8192c / dm_common.c
index 72a98ca..4de6b78 100644 (file)
@@ -1219,13 +1219,18 @@ static void rtl92c_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw)
                                 ("PreState = %d, CurState = %d\n",
                                  p_ra->pre_ratr_state, p_ra->ratr_state));
 
-                       rcu_read_lock();
-                       sta = ieee80211_find_sta(mac->vif, mac->bssid);
+                       /* 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;
-                       rcu_read_unlock();
+                       if (rtlhal->interface == INTF_PCI)
+                               rcu_read_unlock();
                }
        }
 }