From: Minghao Chi <chi.minghao@xxxxxxxxxx> The might_sleep_if function in the mempool_alloc may cause a sleep lock.We can't mempool_alloc() with a spin lock held, so bring it up front. Reported-by: Zeal Robot <zealci@xxxxxxxxxx> Signed-off-by: Minghao Chi <chi.minghao@xxxxxxxxxx> Signed-off-by: CGEL ZTE <cgel.zte@xxxxxxxxx> --- drivers/scsi/csiostor/csio_attr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/csiostor/csio_attr.c b/drivers/scsi/csiostor/csio_attr.c index 200e50089711..3d4ab439c756 100644 --- a/drivers/scsi/csiostor/csio_attr.c +++ b/drivers/scsi/csiostor/csio_attr.c @@ -424,8 +424,8 @@ csio_fcoe_alloc_vnp(struct csio_hw *hw, struct csio_lnode *ln) /* Issue VNP cmd to alloc vport */ /* Allocate Mbox request */ - spin_lock_irq(&hw->lock); mbp = mempool_alloc(hw->mb_mempool, GFP_ATOMIC); + spin_lock_irq(&hw->lock); if (!mbp) { CSIO_INC_STATS(hw, n_err_nomem); ret = -ENOMEM; @@ -505,8 +505,8 @@ csio_fcoe_free_vnp(struct csio_hw *hw, struct csio_lnode *ln) /* Issue VNP cmd to free vport */ /* Allocate Mbox request */ - spin_lock_irq(&hw->lock); mbp = mempool_alloc(hw->mb_mempool, GFP_ATOMIC); + spin_lock_irq(&hw->lock); if (!mbp) { CSIO_INC_STATS(hw, n_err_nomem); ret = -ENOMEM; -- 2.25.1