Commit dc6d2a0f authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Christoph Hellwig

bfa: allocate memory with GFP_ATOMIC in spinlock context

bfa_fcb_pbc_vport_create() is called only from bfa_fcs_pbc_vport_init(),
that is called only from bfad_drv_start() with bfad_lock spinlock held.
So the patch replaces GFP_KERNEL with GFP_ATOMIC to avoid
sleeping in atomic spinlock context.

Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: default avatarAnil Gurumurthy <anil.gurumurthy@qlogic.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 248c9fb0
...@@ -507,7 +507,7 @@ bfa_fcb_pbc_vport_create(struct bfad_s *bfad, struct bfi_pbc_vport_s pbc_vport) ...@@ -507,7 +507,7 @@ bfa_fcb_pbc_vport_create(struct bfad_s *bfad, struct bfi_pbc_vport_s pbc_vport)
struct bfad_vport_s *vport; struct bfad_vport_s *vport;
int rc; int rc;
vport = kzalloc(sizeof(struct bfad_vport_s), GFP_KERNEL); vport = kzalloc(sizeof(struct bfad_vport_s), GFP_ATOMIC);
if (!vport) { if (!vport) {
bfa_trc(bfad, 0); bfa_trc(bfad, 0);
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment