aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-12-18 13:30:48 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-12-20 14:52:17 -0500
commit489ee9195a7de9e6bc833d639ff6b553ffdad90e (patch)
treefe32219b2530610e70f5fe2923f96f565b8b987a /net/mac80211/tx.c
parentae29fbb189c7a80677500c718c9ce08095ccde01 (diff)
mac80211: fix initialization of skb->cb in ieee80211_subif_start_xmit
The change 'mac80211: Fix BUG in pskb_expand_head when transmitting shared skbs' added a check for copying the skb if it's shared, however the tx info variable still points at the cb of the old skb Signed-off-by: Felix Fietkau <nbd@openwrt.org> Acked-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r--net/mac80211/tx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 807dcd06e268..8d01d21dff1e 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1739,7 +1739,7 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
1739{ 1739{
1740 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 1740 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
1741 struct ieee80211_local *local = sdata->local; 1741 struct ieee80211_local *local = sdata->local;
1742 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); 1742 struct ieee80211_tx_info *info;
1743 int ret = NETDEV_TX_BUSY, head_need; 1743 int ret = NETDEV_TX_BUSY, head_need;
1744 u16 ethertype, hdrlen, meshhdrlen = 0; 1744 u16 ethertype, hdrlen, meshhdrlen = 0;
1745 __le16 fc; 1745 __le16 fc;
@@ -2028,6 +2028,7 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
2028 skb_set_network_header(skb, nh_pos); 2028 skb_set_network_header(skb, nh_pos);
2029 skb_set_transport_header(skb, h_pos); 2029 skb_set_transport_header(skb, h_pos);
2030 2030
2031 info = IEEE80211_SKB_CB(skb);
2031 memset(info, 0, sizeof(*info)); 2032 memset(info, 0, sizeof(*info));
2032 2033
2033 dev->trans_start = jiffies; 2034 dev->trans_start = jiffies;