Use __skb_peek() instead.

Signed-off-by: David S. Miller <da...@davemloft.net>
---
 net/mac80211/rx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index c6bfd4019d44..a0ca27aeb732 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2077,6 +2077,7 @@ ieee80211_reassemble_find(struct ieee80211_sub_if_data 
*sdata,
        idx = sdata->fragment_next;
        for (i = 0; i < IEEE80211_FRAGMENT_MAX; i++) {
                struct ieee80211_hdr *f_hdr;
+               struct sk_buff *f_skb;
 
                idx--;
                if (idx < 0)
@@ -2088,7 +2089,8 @@ ieee80211_reassemble_find(struct ieee80211_sub_if_data 
*sdata,
                    entry->last_frag + 1 != frag)
                        continue;
 
-               f_hdr = (struct ieee80211_hdr *)entry->skb_list.next->data;
+               f_skb = __skb_peek(&entry->skb_list);
+               f_hdr = (struct ieee80211_hdr *) f_skb->data;
 
                /*
                 * Check ftype and addresses are equal, else check next fragment
-- 
2.17.1

Reply via email to