[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] Revert "usb-storage: Drop useless null test
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] Revert "usb-storage: Drop useless null test in usb_msd_handle_data()" |
Date: |
Tue, 22 Jan 2013 12:57:58 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Gerd Hoffmann <address@hidden> writes:
> This reverts commit a1cbfd554e11bb8af38c2f3e1f1574bf4c563cd2.
>
> Test isn't useless. scsi_req_enqueue() may finish the request (will
> actually happen for requests which don't trigger any I/O such as
> INQUIRY), then call usb_msd_command_complete() which in turn will
> set s->req to NULL after unref'ing it.
>
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
> hw/usb/dev-storage.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
> index b839798..1b87352 100644
> --- a/hw/usb/dev-storage.c
> +++ b/hw/usb/dev-storage.c
> @@ -427,7 +427,7 @@ static void usb_msd_handle_data(USBDevice *dev, USBPacket
> *p)
> scsi_req_print(s->req);
> #endif
> scsi_req_enqueue(s->req);
> - if (s->req->cmd.xfer != SCSI_XFER_NONE) {
> + if (s->req && s->req->cmd.xfer != SCSI_XFER_NONE) {
> scsi_req_continue(s->req);
> }
> break;
No objection to the revert, and sorry for screwing this up.
However, we generally use scsi_req_enqueue() like this:
n = scsi_req_enqueue(req);
if (n) {
[...]
scsi_req_continue(req);
}
Any particular reason to do it differently here?