aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorGertjan van Wingerde <gwingerde@kpnplanet.nl>2008-06-16 13:55:18 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-26 16:49:15 -0400
commitc95edf5432f097c926dd3f59239ecde80da3b214 (patch)
tree4f71f8bb557ccfe81346caff0409cbece5bd4f8e /drivers/net/wireless
parentac1044628d477d655f5f70420c3493119abeb6d3 (diff)
rt2x00: Properly clean up beacon skbs.
The skbs containing the beacons weren't properly cleaned up for rt2400pci, rt2500pci, rt61pci, and rt73usb. Clean up those skbs in the manner appropriate for each driver. Signed-off-by: Gertjan van Wingerde <gwingerde@kpnplanet.nl> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c6
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c6
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c6
3 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index f9e75319770a..b8e0c4c3ed0a 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -474,6 +474,12 @@ static void rt2x00lib_beacondone_iter(void *data, u8 *mac,
474 vif->type != IEEE80211_IF_TYPE_IBSS) 474 vif->type != IEEE80211_IF_TYPE_IBSS)
475 return; 475 return;
476 476
477 /*
478 * Clean up the beacon skb.
479 */
480 dev_kfree_skb_irq(intf->beacon->skb);
481 intf->beacon->skb = NULL;
482
477 spin_lock(&intf->lock); 483 spin_lock(&intf->lock);
478 intf->delayed_flags |= DELAYED_UPDATE_BEACON; 484 intf->delayed_flags |= DELAYED_UPDATE_BEACON;
479 spin_unlock(&intf->lock); 485 spin_unlock(&intf->lock);
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index 5b7267ece1b9..27f30ae8f52b 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2402,6 +2402,12 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
2402 skb->data, skb->len); 2402 skb->data, skb->len);
2403 rt61pci_kick_tx_queue(rt2x00dev, QID_BEACON); 2403 rt61pci_kick_tx_queue(rt2x00dev, QID_BEACON);
2404 2404
2405 /*
2406 * Clean up beacon skb.
2407 */
2408 dev_kfree_skb_any(skb);
2409 intf->beacon->skb = NULL;
2410
2405 return 0; 2411 return 0;
2406} 2412}
2407 2413
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index fceefd730ab8..42b7e98b2d27 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -2001,6 +2001,12 @@ static int rt73usb_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
2001 REGISTER_TIMEOUT32(skb->len)); 2001 REGISTER_TIMEOUT32(skb->len));
2002 rt73usb_kick_tx_queue(rt2x00dev, QID_BEACON); 2002 rt73usb_kick_tx_queue(rt2x00dev, QID_BEACON);
2003 2003
2004 /*
2005 * Clean up the beacon skb.
2006 */
2007 dev_kfree_skb(skb);
2008 intf->beacon->skb = NULL;
2009
2004 return 0; 2010 return 0;
2005} 2011}
2006 2012