qcacmn: Re-enable kswapd reclaim during nbuf alloc

Currently in __qdf_nbuf_alloc(), __GFP_KSWAPD_RECLAIM flag is
unset before calling kernel APIs for SKB allocation. Since this
flag is not set, in low memory scenarios, nbuf allocations might
fail resulting in firmware assert.

Re-enable the __GFP_KSWAPD_RECLAIM flag to avoid these failures.
It is safe to re-enable this flag since __qdf_nbuf_alloc() does
not request for order-3 allocations any more.

Change-Id: I2501a751d42277e2f7015b9e712ccdf5ec0ef7f1
CRs-Fixed: 3739812
This commit is contained in:
Manikanta Pubbisetty
2024-02-22 16:13:41 +05:30
committed by Ravindra Konda
parent 8cd067442d
commit 9cc2e55b8c

View File

@@ -585,18 +585,8 @@ struct sk_buff *__qdf_nbuf_alloc(qdf_device_t osdev, size_t size, int reserve,
if (align)
size += (align - 1);
if (in_interrupt() || irqs_disabled() || in_atomic()) {
if (in_interrupt() || irqs_disabled() || in_atomic())
flags = GFP_ATOMIC;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
/*
* Observed that kcompactd burns out CPU to make order-3 page.
*__netdev_alloc_skb has 4k page fallback option just in case of
* failing high order page allocation so we don't need to be
* hard. Make kcompactd rest in piece.
*/
flags = flags & ~__GFP_KSWAPD_RECLAIM;
#endif
}
skb = alloc_skb(size, flags);