diff options
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 9a08f2c446c6..6e2a7bcd8cb8 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1253,6 +1253,12 @@ ieee80211_rx_h_defragment(struct ieee80211_rx_data *rx) | |||
1253 | if (skb_linearize(rx->skb)) | 1253 | if (skb_linearize(rx->skb)) |
1254 | return RX_DROP_UNUSABLE; | 1254 | return RX_DROP_UNUSABLE; |
1255 | 1255 | ||
1256 | /* | ||
1257 | * skb_linearize() might change the skb->data and | ||
1258 | * previously cached variables (in this case, hdr) need to | ||
1259 | * be refreshed with the new data. | ||
1260 | */ | ||
1261 | hdr = (struct ieee80211_hdr *)rx->skb->data; | ||
1256 | seq = (sc & IEEE80211_SCTL_SEQ) >> 4; | 1262 | seq = (sc & IEEE80211_SCTL_SEQ) >> 4; |
1257 | 1263 | ||
1258 | if (frag == 0) { | 1264 | if (frag == 0) { |