123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /*
- * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2
- * as published by the Free Software Foundation
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- #include "mt7601u.h"
- void mt76_remove_hdr_pad(struct sk_buff *skb)
- {
- int len = ieee80211_get_hdrlen_from_skb(skb);
- memmove(skb->data + 2, skb->data, len);
- skb_pull(skb, 2);
- }
- int mt76_insert_hdr_pad(struct sk_buff *skb)
- {
- int len = ieee80211_get_hdrlen_from_skb(skb);
- int ret;
- if (len % 4 == 0)
- return 0;
- ret = skb_cow(skb, 2);
- if (ret)
- return ret;
- skb_push(skb, 2);
- memmove(skb->data, skb->data + 2, len);
- skb->data[len] = 0;
- skb->data[len + 1] = 0;
- return 0;
- }
|