diff mbox

[RFC,05/21] mac80211: common work skb freeing

Message ID 20100607110159.849145960@sipsolutions.net (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Johannes Berg June 7, 2010, 11:01 a.m. UTC
None
diff mbox

Patch

--- wireless-testing.orig/net/mac80211/ibss.c	2010-06-01 10:19:39.000000000 +0200
+++ wireless-testing/net/mac80211/ibss.c	2010-06-01 10:19:40.000000000 +0200
@@ -754,8 +754,6 @@  void ieee80211_ibss_rx_queued_mgmt(struc
 		ieee80211_rx_mgmt_auth_ibss(sdata, mgmt, skb->len);
 		break;
 	}
-
-	kfree_skb(skb);
 }
 
 void ieee80211_ibss_work(struct ieee80211_sub_if_data *sdata)
--- wireless-testing.orig/net/mac80211/mesh.c	2010-06-01 10:19:39.000000000 +0200
+++ wireless-testing/net/mac80211/mesh.c	2010-06-01 10:19:40.000000000 +0200
@@ -620,8 +620,6 @@  void ieee80211_mesh_rx_queued_mgmt(struc
 		ieee80211_mesh_rx_mgmt_action(sdata, mgmt, skb->len, rx_status);
 		break;
 	}
-
-	kfree_skb(skb);
 }
 
 void ieee80211_mesh_work(struct ieee80211_sub_if_data *sdata)
--- wireless-testing.orig/net/mac80211/mlme.c	2010-06-01 10:19:39.000000000 +0200
+++ wireless-testing/net/mac80211/mlme.c	2010-06-01 10:19:40.000000000 +0200
@@ -1754,7 +1754,7 @@  void ieee80211_sta_rx_queued_mgmt(struct
 		default:
 			WARN(1, "unexpected: %d", rma);
 		}
-		goto out;
+		return;
 	}
 
 	mutex_unlock(&ifmgd->mtx);
@@ -1762,9 +1762,6 @@  void ieee80211_sta_rx_queued_mgmt(struct
 	if (skb->len >= 24 + 2 /* mgmt + deauth reason */ &&
 	    (fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_DEAUTH)
 		cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
-
- out:
-	kfree_skb(skb);
 }
 
 static void ieee80211_sta_timer(unsigned long data)
--- wireless-testing.orig/net/mac80211/iface.c	2010-06-01 10:19:39.000000000 +0200
+++ wireless-testing/net/mac80211/iface.c	2010-06-01 10:19:40.000000000 +0200
@@ -738,9 +738,10 @@  static void ieee80211_iface_work(struct
 			break;
 		default:
 			WARN(1, "frame for unexpected interface type");
-			kfree_skb(skb);
 			break;
 		}
+
+		kfree_skb(skb);
 	}
 
 	/* then other type-dependent work */