[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 01/11] usb/msd: Add status to usb_msd_packet_complete() function
From: |
Nicholas Piggin |
Subject: |
[PATCH 01/11] usb/msd: Add status to usb_msd_packet_complete() function |
Date: |
Thu, 12 Dec 2024 19:13:12 +1000 |
This is a convenience change that accepts a status when completing a
packet.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
hw/usb/dev-storage.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index 341e505bd0a..4f1e8b7f6cb 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -177,7 +177,7 @@ static const USBDesc desc = {
.str = desc_strings,
};
-static void usb_msd_packet_complete(MSDState *s)
+static void usb_msd_packet_complete(MSDState *s, int status)
{
USBPacket *p = s->packet;
@@ -187,6 +187,7 @@ static void usb_msd_packet_complete(MSDState *s)
* usb_packet_complete returns.
*/
trace_usb_msd_packet_complete();
+ p->status = status;
s->packet = NULL;
usb_packet_complete(&s->dev, p);
}
@@ -196,8 +197,7 @@ static void usb_msd_fatal_error(MSDState *s)
trace_usb_msd_fatal_error();
if (s->packet) {
- s->packet->status = USB_RET_STALL;
- usb_msd_packet_complete(s);
+ usb_msd_packet_complete(s, USB_RET_STALL);
}
/*
@@ -255,8 +255,8 @@ void usb_msd_transfer_data(SCSIRequest *req, uint32_t len)
usb_msd_copy_data(s, p);
p = s->packet;
if (p && p->actual_length == p->iov.size) {
- p->status = USB_RET_SUCCESS; /* Clear previous ASYNC status */
- usb_msd_packet_complete(s);
+ /* USB_RET_SUCCESS status clears previous ASYNC status */
+ usb_msd_packet_complete(s, USB_RET_SUCCESS);
}
}
}
@@ -295,8 +295,8 @@ void usb_msd_command_complete(SCSIRequest *req, size_t
resid)
s->mode = USB_MSDM_CSW;
}
}
- p->status = USB_RET_SUCCESS; /* Clear previous ASYNC status */
- usb_msd_packet_complete(s);
+ /* USB_RET_SUCCESS status clears previous ASYNC status */
+ usb_msd_packet_complete(s, USB_RET_SUCCESS);
} else if (s->data_len == 0) {
s->mode = USB_MSDM_CSW;
}
@@ -332,8 +332,7 @@ void usb_msd_handle_reset(USBDevice *dev)
assert(s->req == NULL);
if (s->packet) {
- s->packet->status = USB_RET_STALL;
- usb_msd_packet_complete(s);
+ usb_msd_packet_complete(s, USB_RET_STALL);
}
memset(&s->csw, 0, sizeof(s->csw));
--
2.45.2
- [PATCH 00/11] usb/msd: Permit relaxed ordering of IN packets, Nicholas Piggin, 2024/12/12
- [PATCH 01/11] usb/msd: Add status to usb_msd_packet_complete() function,
Nicholas Piggin <=
- [PATCH 03/11] usb/msd: Ensure packet structure layout is correct, Nicholas Piggin, 2024/12/12
- [PATCH 02/11] usb/msd: Split in and out packet handling, Nicholas Piggin, 2024/12/12
- [PATCH 04/11] usb/msd: Improved handling of mass storage reset, Nicholas Piggin, 2024/12/12
- [PATCH 05/11] usb/msd: Improve packet validation error logging, Nicholas Piggin, 2024/12/12
- [PATCH 06/11] usb/msd: Allow CBW packet size greater than 31, Nicholas Piggin, 2024/12/12
- [PATCH 07/11] usb/msd: Split async packet tracking into data and csw, Nicholas Piggin, 2024/12/12
- [PATCH 08/11] usb/msd: Add some additional assertions, Nicholas Piggin, 2024/12/12
- [PATCH 09/11] usb/msd: Rename mode to cbw_state, and tweak names, Nicholas Piggin, 2024/12/12
- [PATCH 10/11] usb/msd: Permit a DATA-IN or CSW packet before CBW packet, Nicholas Piggin, 2024/12/12
- [PATCH 11/11] usb/msd: Add more tracing, Nicholas Piggin, 2024/12/12