diff options
| -rw-r--r-- | qdf/linux/src/qdf_nbuf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/qdf/linux/src/qdf_nbuf.c b/qdf/linux/src/qdf_nbuf.c index 53ca6a58948b..f370284e3c5e 100644 --- a/qdf/linux/src/qdf_nbuf.c +++ b/qdf/linux/src/qdf_nbuf.c @@ -289,11 +289,15 @@ struct sk_buff *__qdf_nbuf_alloc(qdf_device_t osdev, size_t size, int reserve, { struct sk_buff *skb; unsigned long offset; + int flags = GFP_KERNEL; if (align) size += (align - 1); - skb = dev_alloc_skb(size); + if (in_interrupt() || irqs_disabled() || in_atomic()) + flags = GFP_ATOMIC; + + skb = __netdev_alloc_skb(NULL, size, flags); if (skb) goto skb_alloc; |
