Commit 347e40ff authored by Gerd Hoffmann's avatar Gerd Hoffmann

uas: move transfer kickoff

Kick next scsi transfer from request release callback instead of command
completion callback, otherwise we might get stuck in case scsi_req_unref()
doesn't release the request instantly due to someone else holding a
reference too.
Signed-off-by: default avatarGerd Hoffmann <>
parent adf47834
......@@ -424,6 +424,7 @@ static void usb_uas_scsi_free_request(SCSIBus *bus, void *priv)
QTAILQ_REMOVE(&uas->requests, req, next);
static UASRequest *usb_uas_find_request(UASDevice *uas, uint16_t tag)
......@@ -456,7 +457,6 @@ static void usb_uas_scsi_command_complete(SCSIRequest *r,
uint32_t status, size_t resid)
UASRequest *req = r->hba_private;
UASDevice *uas = req->uas;
trace_usb_uas_scsi_complete(req->uas->dev.addr, req->tag, status, resid);
req->complete = true;
......@@ -465,7 +465,6 @@ static void usb_uas_scsi_command_complete(SCSIRequest *r,
usb_uas_queue_sense(req, status);
static void usb_uas_scsi_request_cancelled(SCSIRequest *r)
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