From: Ivo van Doorn Date: Wed, 9 Apr 2008 18:46:27 +0000 (+0200) Subject: rt2x00: Only free skb when beacon_update fails X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=171afcd4ba093b50cd2fb33fe2371fbc1f7fd389;p=linux-beck.git 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 Signed-off-by: John W. Linville --- 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)