[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 3/5] uas: Fix / cleanup usb_uas_task error handling
From: |
Hans de Goede |
Subject: |
[Qemu-devel] [PATCH 3/5] uas: Fix / cleanup usb_uas_task error handling |
Date: |
Thu, 24 Oct 2013 18:15:51 +0100 |
-The correct error if we cannot find the dev is INCORRECT_LUN rather then
INVALID_INFO_UNIT
-Move the device not found check to the top so we only need to do it once
-Remove the dev->lun != lun checks, dev is returned by scsi_device_find
which searches by lun, so this will never trigger
Signed-off-by: Hans de Goede <address@hidden>
---
hw/usb/dev-uas.c | 20 +++-----------------
1 file changed, 3 insertions(+), 17 deletions(-)
diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
index 36a75b2..12d79ef 100644
--- a/hw/usb/dev-uas.c
+++ b/hw/usb/dev-uas.c
@@ -746,17 +746,14 @@ static void usb_uas_task(UASDevice *uas, uas_ui *ui)
if (req) {
goto overlapped_tag;
}
+ if (dev == NULL) {
+ goto incorrect_lun;
+ }
switch (ui->task.function) {
case UAS_TMF_ABORT_TASK:
task_tag = be16_to_cpu(ui->task.task_tag);
trace_usb_uas_tmf_abort_task(uas->dev.addr, tag, task_tag);
- if (dev == NULL) {
- goto bad_target;
- }
- if (dev->lun != lun) {
- goto incorrect_lun;
- }
req = usb_uas_find_request(uas, task_tag);
if (req && req->dev == dev) {
scsi_req_cancel(req->req);
@@ -766,12 +763,6 @@ static void usb_uas_task(UASDevice *uas, uas_ui *ui)
case UAS_TMF_LOGICAL_UNIT_RESET:
trace_usb_uas_tmf_logical_unit_reset(uas->dev.addr, tag, lun);
- if (dev == NULL) {
- goto bad_target;
- }
- if (dev->lun != lun) {
- goto incorrect_lun;
- }
qdev_reset_all(&dev->qdev);
usb_uas_queue_response(uas, tag, UAS_RC_TMF_COMPLETE, 0);
break;
@@ -787,11 +778,6 @@ overlapped_tag:
usb_uas_queue_response(uas, req->tag, UAS_RC_OVERLAPPED_TAG, 0);
return;
-bad_target:
- /* FIXME: correct? [see long comment in usb_uas_command()] */
- usb_uas_queue_response(uas, tag, UAS_RC_INVALID_INFO_UNIT, 0);
- return;
-
incorrect_lun:
usb_uas_queue_response(uas, tag, UAS_RC_INCORRECT_LUN, 0);
}
--
1.8.3.1
- [Qemu-devel] [PATCH 0/5] uas emulation fixes, Hans de Goede, 2013/10/24
- [Qemu-devel] [PATCH 1/5] scsi: Add 2 new sense codes needed by uas, Hans de Goede, 2013/10/24
- [Qemu-devel] [PATCH 2/5] uas: Only use report iu-s for task_mgmt status reporting, Hans de Goede, 2013/10/24
- [Qemu-devel] [PATCH 3/5] uas: Fix / cleanup usb_uas_task error handling,
Hans de Goede <=
- [Qemu-devel] [PATCH 5/5] uas: Bounds check tags when using streams, Hans de Goede, 2013/10/24
- [Qemu-devel] [PATCH 4/5] uas: Streams are numbered 1-y, rather then 0-x, Hans de Goede, 2013/10/24