]> git.hungrycats.org Git - linux/commitdiff
staging: vt6655: lock MACvWriteBSSIDAddress.
authorMalcolm Priestley <tvboxspy@gmail.com>
Tue, 21 Apr 2015 21:33:02 +0000 (22:33 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Jun 2015 15:20:59 +0000 (08:20 -0700)
commit 664a5c1d1e33cd89cb7883e8c74638cc482b5da7 upstream.

This function selects page 1 and cause intermittent problems on
interrupt handler.

lock call with spin_lock_irqsave.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6655/device_main.c

index 584fc36a99c0a278cbc5a9d1fd11593ed40b08cf..992236f605d8bc80bd18d7074ee69cd6ba4d0af5 100644 (file)
@@ -1414,9 +1414,16 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
 
        priv->current_aid = conf->aid;
 
-       if (changed & BSS_CHANGED_BSSID)
+       if (changed & BSS_CHANGED_BSSID) {
+               unsigned long flags;
+
+               spin_lock_irqsave(&priv->lock, flags);
+
                MACvWriteBSSIDAddress(priv->PortOffset, (u8 *)conf->bssid);
 
+               spin_unlock_irqrestore(&priv->lock, flags);
+       }
+
        if (changed & BSS_CHANGED_BASIC_RATES) {
                priv->basic_rates = conf->basic_rates;