summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBrendan Jackman <jackmanb@google.com>2026-03-27 12:30:07 +0000
committerJohannes Berg <johannes.berg@intel.com>2026-04-07 15:38:35 +0200
commit1c161ca67e9bbd39b5c2adc8e067affcab10e8a5 (patch)
treecc11395a1f35e3d67a9f15df29842f39f9a89bde /drivers
parent72b18625ba8e5c28acbc923822a8b9ca7c5b3931 (diff)
wifi: iwlegacy: Fix GFP flags in allocation loop
Do not latch these flags, they should be re-evaluated for each iteration of the loop. Concretely, rxq->free_count is incremented during the loop so the __GFP_NOWARN decision may be stale. There may be other reasons to require the re-evaluation too. Suggested-by: Stanislaw Gruszka <stf_xl@wp.pl> Link: https://lore.kernel.org/all/20260327115739.GB16800@wp.pl/ Signed-off-by: Brendan Jackman <jackmanb@google.com> Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> Link: https://patch.msgid.link/20260327-iwlegacy-gfp-fix-v1-1-b83e4db0bd66@google.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/intel/iwlegacy/3945-mac.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
index 88b31e0b9568..cbaf250626c5 100644
--- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c
@@ -979,9 +979,10 @@ il3945_rx_allocate(struct il_priv *il, gfp_t priority)
struct page *page;
dma_addr_t page_dma;
unsigned long flags;
- gfp_t gfp_mask = priority;
while (1) {
+ gfp_t gfp_mask = priority;
+
spin_lock_irqsave(&rxq->lock, flags);
if (list_empty(&rxq->rx_used)) {
spin_unlock_irqrestore(&rxq->lock, flags);