[PATCH 1/7] nvme-fcloop: flush workqueue before calling nvme_fc_unregister_remoteport()
James Smart
james.smart at broadcom.com
Mon Oct 5 13:14:29 EDT 2020
On 9/22/2020 5:14 AM, Hannes Reinecke wrote:
> nvme_fc_unregister_remoteport() will be sending LS requests, which then
> would end up on a workqueue for processing. This will deadlock with
> fcloop_remoteport_delete() which would try to flush the very same queue.
>
> Signed-off-by: Hannes Reinecke <hare at suse.de>
> ---
> drivers/nvme/target/fcloop.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c
> index c97e60b71bbc..082aa4dee406 100644
> --- a/drivers/nvme/target/fcloop.c
> +++ b/drivers/nvme/target/fcloop.c
> @@ -979,7 +979,6 @@ fcloop_remoteport_delete(struct nvme_fc_remote_port *remoteport)
> {
> struct fcloop_rport *rport = remoteport->private;
>
> - flush_work(&rport->ls_work);
> fcloop_nport_put(rport->nport);
> }
>
> @@ -1313,6 +1312,7 @@ __remoteport_unreg(struct fcloop_nport *nport, struct fcloop_rport *rport)
> if (!rport)
> return -EALREADY;
>
> + flush_work(&rport->ls_work);
> return nvme_fc_unregister_remoteport(rport->remoteport);
> }
>
Reviewed-by: James Smart <james.smart at broadcom.com>
Looks Good.
-- james
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4163 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20201005/30313341/attachment.p7s>
More information about the Linux-nvme
mailing list