Revision 94d3f98a hw/usb-msd.c
b/hw/usb-msd.c | ||
---|---|---|
264 | 264 |
} |
265 | 265 |
} |
266 | 266 |
|
267 |
static void usb_msd_request_cancelled(SCSIRequest *req) |
|
268 |
{ |
|
269 |
MSDState *s = DO_UPCAST(MSDState, dev.qdev, req->bus->qbus.parent); |
|
270 |
|
|
271 |
if (req == s->req) { |
|
272 |
scsi_req_unref(s->req); |
|
273 |
s->req = NULL; |
|
274 |
s->packet = NULL; |
|
275 |
s->scsi_len = 0; |
|
276 |
} |
|
277 |
} |
|
278 |
|
|
267 | 279 |
static void usb_msd_handle_reset(USBDevice *dev) |
268 | 280 |
{ |
269 | 281 |
MSDState *s = (MSDState *)dev; |
... | ... | |
318 | 330 |
static void usb_msd_cancel_io(USBPacket *p, void *opaque) |
319 | 331 |
{ |
320 | 332 |
MSDState *s = opaque; |
321 |
s->scsi_dev->info->cancel_io(s->req); |
|
322 |
s->packet = NULL; |
|
323 |
s->scsi_len = 0; |
|
333 |
scsi_req_cancel(s->req); |
|
324 | 334 |
} |
325 | 335 |
|
326 | 336 |
static int usb_msd_handle_data(USBDevice *dev, USBPacket *p) |
... | ... | |
491 | 501 |
} |
492 | 502 |
|
493 | 503 |
static const struct SCSIBusOps usb_msd_scsi_ops = { |
494 |
.complete = usb_msd_command_complete |
|
504 |
.complete = usb_msd_command_complete, |
|
505 |
.cancel = usb_msd_request_cancelled |
|
495 | 506 |
}; |
496 | 507 |
|
497 | 508 |
static int usb_msd_initfn(USBDevice *dev) |
Also available in: Unified diff