From: Mike Christie Date: Sat, 16 Mar 2024 00:47:03 +0000 (-0500) Subject: vhost_scsi: Handle vhost_vq_work_queue failures for TMFs X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=0352c961cb3542b1c03415259d7b85d99457acff;p=linux.git vhost_scsi: Handle vhost_vq_work_queue failures for TMFs vhost_vq_work_queue will never fail when queueing the TMF's response handling because a guest can only send us TMFs when the device is fully setup so there is always a worker at that time. In the next patches we will modify the worker code so it handles SIGKILL by exiting before outstanding commands/TMFs have sent their responses. In that case vhost_vq_work_queue can fail when we try to send a response. This has us just free the TMF's resources since at this time the guest won't be able to get a response even if we could send it. Signed-off-by: Mike Christie Message-Id: <20240316004707.45557-6-michael.christie@oracle.com> Signed-off-by: Michael S. Tsirkin --- diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index 04e0d3f1bd77a..006ffacf1c56c 100644 --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -1309,7 +1309,8 @@ static void vhost_scsi_tmf_flush_work(struct work_struct *work) * send our response. */ vhost_dev_flush(vq->dev); - vhost_vq_work_queue(vq, &tmf->vwork); + if (!vhost_vq_work_queue(vq, &tmf->vwork)) + vhost_scsi_release_tmf_res(tmf); } static void