答复: [PATCH][net-next] nfp: flower: use GFP_KERNEL in idr_preload
From: Li,Rongqing <hidden>
Date: 2026-02-05 07:49:33
Also in:
lkml
quoted hunk ↗ jump to hunk
From: Li RongQing <redacted> idr_preload() is called in a sleepable context before acquiring a spinlock. Change the allocation flag from GFP_ATOMIC to GFP_KERNEL to allow direct reclaim and improve allocation success rate under memory pressure. Signed-off-by: Li RongQing <redacted> --- drivers/net/ethernet/netronome/nfp/flower/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/net/ethernet/netronome/nfp/flower/main.cb/drivers/net/ethernet/netronome/nfp/flower/main.c index 83eaa5a..8f232c6 100644--- a/drivers/net/ethernet/netronome/nfp/flower/main.c +++ b/drivers/net/ethernet/netronome/nfp/flower/main.c@@ -63,7 +63,7 @@ nfp_flower_get_internal_port_id(struct nfp_app *app,struct net_device *netdev) if (id > 0) return id; - idr_preload(GFP_ATOMIC); + idr_preload(GFP_KERNEL); spin_lock_bh(&priv->internal_ports.lock); id = idr_alloc(&priv->internal_ports.port_ids, netdev, NFP_MIN_INT_PORT_ID, NFP_MAX_INT_PORT_ID, GFP_ATOMIC); -- 2.9.4
Sorry, please drop this patch,; nfp_flower_get_internal_port_id() maybe be called in system_highpri_wq workqueue, so GFP_ATOMIC is right [Li,Rongqing]