summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qdf/linux/src/qdf_nbuf.c6
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;