diff options
Diffstat (limited to 'drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_gki.c')
-rw-r--r-- | drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_gki.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_gki.c b/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_gki.c new file mode 100644 index 000000000000..a6bf565f5c09 --- /dev/null +++ b/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_gki.c @@ -0,0 +1,18 @@ +#include <linux/version.h> +#include <linux/skbuff.h> + + +void rwnx_gki_skb_append(struct sk_buff *old, struct sk_buff *newsk, struct sk_buff_head *list) +{ + unsigned long flags; + struct sk_buff *prev = old; + struct sk_buff *next = prev->next; + spin_lock_irqsave(&list->lock, flags); + WRITE_ONCE(newsk->next, next); + WRITE_ONCE(newsk->prev, prev); + WRITE_ONCE(next->prev, newsk); + WRITE_ONCE(prev->next, newsk); + list->qlen++; + spin_unlock_irqrestore(&list->lock, flags); +} + |