aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-04-09 20:46:27 +0200
committerJohn W. Linville <linville@tuxdriver.com>2008-04-16 14:53:22 -0400
commit171afcd4ba093b50cd2fb33fe2371fbc1f7fd389 (patch)
tree88622a1891176fc1271f3f866ef239d6872dd674
parentmac80211: fix key hwaccel race (diff)
downloadlinux-dev-171afcd4ba093b50cd2fb33fe2371fbc1f7fd389.tar.xz
linux-dev-171afcd4ba093b50cd2fb33fe2371fbc1f7fd389.zip
rt2x00: Only free skb when beacon_update fails
In rt2x00lib_intf_scheduled_iter() we use the hw->beacon_update() callback function. This means that it should behave similarly as mac80211 when that uses the function. This means that the skb should only be freed when beacon_update() has failed, otherwise the driver is the owner and is responsible for freeing the buffer. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 0361524d193c..f8fe7a139a8a 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -433,11 +433,9 @@ static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac,
if (delayed_flags & DELAYED_UPDATE_BEACON) {
skb = ieee80211_beacon_get(rt2x00dev->hw, vif, &control);
- if (skb) {
- rt2x00dev->ops->hw->beacon_update(rt2x00dev->hw, skb,
- &control);
+ if (skb && rt2x00dev->ops->hw->beacon_update(rt2x00dev->hw,
+ skb, &control))
dev_kfree_skb(skb);
- }
}
if (delayed_flags & DELAYED_CONFIG_ERP)