Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org>
0004  */
0005 
0006 #include "mt7601u.h"
0007 
0008 void mt76_remove_hdr_pad(struct sk_buff *skb)
0009 {
0010     int len = ieee80211_get_hdrlen_from_skb(skb);
0011 
0012     memmove(skb->data + 2, skb->data, len);
0013     skb_pull(skb, 2);
0014 }
0015 
0016 int mt76_insert_hdr_pad(struct sk_buff *skb)
0017 {
0018     int len = ieee80211_get_hdrlen_from_skb(skb);
0019     int ret;
0020 
0021     if (len % 4 == 0)
0022         return 0;
0023 
0024     ret = skb_cow(skb, 2);
0025     if (ret)
0026         return ret;
0027 
0028     skb_push(skb, 2);
0029     memmove(skb->data, skb->data + 2, len);
0030 
0031     skb->data[len] = 0;
0032     skb->data[len + 1] = 0;
0033     return 0;
0034 }