* [PATCH 4/5] rtlwifi: Free skb in one place
@ 2011-06-06 14:12 Mike McCormack
0 siblings, 0 replies; only message in thread
From: Mike McCormack @ 2011-06-06 14:12 UTC (permalink / raw)
To: Larry.Finger, chaoming_li; +Cc: linville, linux-wireless
Signed-off-by: Mike McCormack <mikem@ring3k.org>
---
drivers/net/wireless/rtlwifi/pci.c | 8 +++-----
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
index c89d6d7..b60c1ab 100644
--- a/drivers/net/wireless/rtlwifi/pci.c
+++ b/drivers/net/wireless/rtlwifi/pci.c
@@ -727,11 +727,9 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
(rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G) &&
(ieee80211_is_beacon(fc) ||
ieee80211_is_probe_resp(fc))) {
- dev_kfree_skb_any(skb);
+ ;
} else {
- if (unlikely(!rtl_action_proc(hw, skb, false))) {
- dev_kfree_skb_any(skb);
- } else {
+ if (likely(rtl_action_proc(hw, skb, false))) {
struct sk_buff *uskb = NULL;
u8 *pdata;
uskb = dev_alloc_skb(skb->len + 128);
@@ -739,7 +737,6 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
&rx_status, sizeof(rx_status));
pdata = (u8 *)skb_put(uskb, skb->len);
memcpy(pdata, skb->data, skb->len);
- dev_kfree_skb_any(skb);
ieee80211_rx_irqsafe(hw, uskb);
}
@@ -751,6 +748,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
tasklet_schedule(&rtlpriv->works.ips_leave_tasklet);
}
+ dev_kfree_skb_any(skb);
skb = new_skb;
rtlpci->rx_ring[rx_queue_idx].rx_buf[index] = skb;
--
1.7.4.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-06-06 14:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-06 14:12 [PATCH 4/5] rtlwifi: Free skb in one place Mike McCormack
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.