From: Paolo Bonzini Date: Wed, 16 Nov 2011 12:02:45 +0000 (+0100) Subject: usb-msc: support commands without payload X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=seabios.git;a=commitdiff_plain;h=7f7b0f6cbd716f18494d26045e42dd7a3c26dfb0 usb-msc: support commands without payload This lets the usb-msc driver send TEST UNIT READY commands. Modified to avoid divide by zero by Kevin O'Connor Signed-off-by: Paolo Bonzini Signed-off-by: Kevin O'Connor --- diff --git a/src/usb-msc.c b/src/usb-msc.c index 13ef93e..52b41b0 100644 --- a/src/usb-msc.c +++ b/src/usb-msc.c @@ -79,9 +79,11 @@ usb_cmd_data(struct disk_op_s *op, void *cdbcmd, u16 blocksize) goto fail; // Transfer data from device. - ret = usb_send_bulk(bulkin, USB_DIR_IN, op->buf_fl, bytes); - if (ret) - goto fail; + if (bytes) { + ret = usb_send_bulk(bulkin, USB_DIR_IN, op->buf_fl, bytes); + if (ret) + goto fail; + } // Transfer csw info. struct csw_s csw; @@ -95,7 +97,8 @@ usb_cmd_data(struct disk_op_s *op, void *cdbcmd, u16 blocksize) if (csw.bCSWStatus == 2) goto fail; - op->count -= csw.dCSWDataResidue / blocksize; + if (blocksize) + op->count -= csw.dCSWDataResidue / blocksize; return DISK_RET_EBADTRACK; fail: