diff options
Diffstat (limited to 'net/mac80211/ieee80211.c')
| -rw-r--r-- | net/mac80211/ieee80211.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c index 6e36df67f8d5..4e84f24fd439 100644 --- a/net/mac80211/ieee80211.c +++ b/net/mac80211/ieee80211.c | |||
| @@ -2474,6 +2474,8 @@ static int ieee80211_open(struct net_device *dev) | |||
| 2474 | if (sdata->type == IEEE80211_IF_TYPE_STA && | 2474 | if (sdata->type == IEEE80211_IF_TYPE_STA && |
| 2475 | !local->user_space_mlme) | 2475 | !local->user_space_mlme) |
| 2476 | netif_carrier_off(dev); | 2476 | netif_carrier_off(dev); |
| 2477 | else | ||
| 2478 | netif_carrier_on(dev); | ||
| 2477 | 2479 | ||
| 2478 | netif_start_queue(dev); | 2480 | netif_start_queue(dev); |
| 2479 | return 0; | 2481 | return 0; |
| @@ -3278,8 +3280,10 @@ ieee80211_rx_h_defragment(struct ieee80211_txrx_data *rx) | |||
| 3278 | return TXRX_DROP; | 3280 | return TXRX_DROP; |
| 3279 | } | 3281 | } |
| 3280 | } | 3282 | } |
| 3281 | while ((skb = __skb_dequeue(&entry->skb_list))) | 3283 | while ((skb = __skb_dequeue(&entry->skb_list))) { |
| 3282 | memcpy(skb_put(rx->skb, skb->len), skb->data, skb->len); | 3284 | memcpy(skb_put(rx->skb, skb->len), skb->data, skb->len); |
| 3285 | dev_kfree_skb(skb); | ||
| 3286 | } | ||
| 3283 | 3287 | ||
| 3284 | /* Complete frame has been reassembled - process it now */ | 3288 | /* Complete frame has been reassembled - process it now */ |
| 3285 | rx->fragmented = 1; | 3289 | rx->fragmented = 1; |
