ath9k_htc: Lock sta_notify() callback
authorSujith.Manoharan@atheros.com <Sujith.Manoharan@atheros.com>
Tue, 11 May 2010 10:54:38 +0000 (16:24 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 12 May 2010 20:39:05 +0000 (16:39 -0400)
Since ->sta_notify() can sleep, protect
the callback with a mutex.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/htc_drv_main.c

index 6c386dad1d40151794b2422277d057b2a448fad4..9d371c18eb41c2da10e88daf2033259b6ad1657f 100644 (file)
@@ -1452,6 +1452,8 @@ static void ath9k_htc_sta_notify(struct ieee80211_hw *hw,
        struct ath9k_htc_priv *priv = hw->priv;
        int ret;
 
+       mutex_lock(&priv->mutex);
+
        switch (cmd) {
        case STA_NOTIFY_ADD:
                ret = ath9k_htc_add_station(priv, vif, sta);
@@ -1464,6 +1466,8 @@ static void ath9k_htc_sta_notify(struct ieee80211_hw *hw,
        default:
                break;
        }
+
+       mutex_unlock(&priv->mutex);
 }
 
 static int ath9k_htc_conf_tx(struct ieee80211_hw *hw, u16 queue,