RE: [PATCH 1/5] scsi: fnic: use GFP_ATOMIC for VLAN alloc under spinlock

From: Karan Tilak Kumar (kartilak)

Date: Fri Jul 31 2026 - 03:57:14 EST


On Friday, July 31, 2026 1:08 PM, Linkai Gong <gonglinkai@xxxxxxxxxx> wrote:
>
> fnic_fcoe_process_vlan_resp() allocates a VLAN descriptor with
> kzalloc_obj() (default GFP_KERNEL) while holding vlans_lock via
> spin_lock_irqsave(). GFP_KERNEL may sleep, which is not allowed in
> this atomic context and can trigger a sleeping-from-invalid-context
> warning or deadlock.
>
> Pass GFP_ATOMIC so the allocation is safe under the IRQ-safe spinlock.
>
> Fixes: 098585aa8aca ("scsi: fnic: Add and integrate support for FIP")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Linkai Gong <gonglinkai@xxxxxxxxxx>
> ---
> drivers/scsi/fnic/fip.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/fnic/fip.c b/drivers/scsi/fnic/fip.c
> index 132f00512ee1..28c9861b6501 100644
> --- a/drivers/scsi/fnic/fip.c
> +++ b/drivers/scsi/fnic/fip.c
> @@ -139,7 +139,7 @@ void fnic_fcoe_process_vlan_resp(struct fnic *fnic, struct fip_header *fiph)
> FNIC_FIP_DBG(KERN_INFO, fnic->host,
> fnic->fnic_num,
> "process_vlan_resp: FIP VLAN %d\n", vid);
> - vlan = kzalloc_obj(*vlan);
> + vlan = kzalloc_obj(*vlan, GFP_ATOMIC);
>
> if (!vlan) {
> /* retry from timer */
> --
> 2.25.1
>
>

The change looks good. Thanks for the change.

Reviewed-by: Karan Tilak Kumar <kartilak@xxxxxxxxx>

Regards,
Karan