mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
ae29fbb189
commit
489ee9195a
|
@ -1739,7 +1739,7 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
|
||||||
{
|
{
|
||||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||||
struct ieee80211_local *local = sdata->local;
|
struct ieee80211_local *local = sdata->local;
|
||||||
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
|
struct ieee80211_tx_info *info;
|
||||||
int ret = NETDEV_TX_BUSY, head_need;
|
int ret = NETDEV_TX_BUSY, head_need;
|
||||||
u16 ethertype, hdrlen, meshhdrlen = 0;
|
u16 ethertype, hdrlen, meshhdrlen = 0;
|
||||||
__le16 fc;
|
__le16 fc;
|
||||||
|
@ -2028,6 +2028,7 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
|
||||||
skb_set_network_header(skb, nh_pos);
|
skb_set_network_header(skb, nh_pos);
|
||||||
skb_set_transport_header(skb, h_pos);
|
skb_set_transport_header(skb, h_pos);
|
||||||
|
|
||||||
|
info = IEEE80211_SKB_CB(skb);
|
||||||
memset(info, 0, sizeof(*info));
|
memset(info, 0, sizeof(*info));
|
||||||
|
|
||||||
dev->trans_start = jiffies;
|
dev->trans_start = jiffies;
|
||||||
|
|
Loading…
Reference in New Issue