Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c95edf54 authored by Gertjan van Wingerde's avatar Gertjan van Wingerde Committed by John W. Linville
Browse files

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: default avatarGertjan van Wingerde <gwingerde@kpnplanet.nl>
Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ac104462
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -474,6 +474,12 @@ static void rt2x00lib_beacondone_iter(void *data, u8 *mac,
	    vif->type != IEEE80211_IF_TYPE_IBSS)
		return;

	/*
	 * Clean up the beacon skb.
	 */
	dev_kfree_skb_irq(intf->beacon->skb);
	intf->beacon->skb = NULL;

	spin_lock(&intf->lock);
	intf->delayed_flags |= DELAYED_UPDATE_BEACON;
	spin_unlock(&intf->lock);
+6 −0
Original line number Diff line number Diff line
@@ -2402,6 +2402,12 @@ static int rt61pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
				      skb->data, skb->len);
	rt61pci_kick_tx_queue(rt2x00dev, QID_BEACON);

	/*
	 * Clean up beacon skb.
	 */
	dev_kfree_skb_any(skb);
	intf->beacon->skb = NULL;

	return 0;
}

+6 −0
Original line number Diff line number Diff line
@@ -2001,6 +2001,12 @@ static int rt73usb_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
				 REGISTER_TIMEOUT32(skb->len));
	rt73usb_kick_tx_queue(rt2x00dev, QID_BEACON);

	/*
	 * Clean up the beacon skb.
	 */
	dev_kfree_skb(skb);
	intf->beacon->skb = NULL;

	return 0;
}