The 'bus' argument is now pointless, as we already pass the request itself and the bus can be derived from it.
Signed-off-by: Hannes Reinecke <h...@suse.de> --- hw/esp.c | 5 ++--- hw/lsi53c895a.c | 5 ++--- hw/scsi-bus.c | 3 +-- hw/scsi-disk.c | 8 ++++---- hw/scsi-generic.c | 6 +++--- hw/scsi.h | 3 +-- hw/usb-msd.c | 5 ++--- 7 files changed, 15 insertions(+), 20 deletions(-) diff --git a/hw/esp.c b/hw/esp.c index a864af3..ade99dc 100644 --- a/hw/esp.c +++ b/hw/esp.c @@ -390,10 +390,9 @@ static void esp_do_dma(ESPState *s) } } -static void esp_command_complete(SCSIBus *bus, int reason, SCSIRequest *req, - uint32_t arg) +static void esp_command_complete(SCSIRequest *req, int reason, uint32_t arg) { - ESPState *s = DO_UPCAST(ESPState, busdev.qdev, bus->qbus.parent); + ESPState *s = DO_UPCAST(ESPState, busdev.qdev, req->bus->qbus.parent); if (reason == SCSI_REASON_DONE) { DPRINTF("SCSI Command complete\n"); diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c index 186b87a..6191a64 100644 --- a/hw/lsi53c895a.c +++ b/hw/lsi53c895a.c @@ -688,10 +688,9 @@ static int lsi_queue_tag(LSIState *s, uint32_t tag, uint32_t arg) } /* Callback to indicate that the SCSI layer has completed a transfer. */ -static void lsi_command_complete(SCSIBus *bus, int reason, SCSIRequest *req, - uint32_t arg) +static void lsi_command_complete(SCSIRequest *req, int reason, uint32_t arg) { - LSIState *s = DO_UPCAST(LSIState, dev.qdev, bus->qbus.parent); + LSIState *s = DO_UPCAST(LSIState, dev.qdev, req->bus->qbus.parent); int out; out = (s->sstat1 & PHASE_MASK) == PHASE_DO; diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c index bb88a56..0f8fd57 100644 --- a/hw/scsi-bus.c +++ b/hw/scsi-bus.c @@ -594,6 +594,5 @@ void scsi_req_complete(SCSIRequest *req) { assert(req->status != -1); scsi_req_dequeue(req); - req->bus->complete(req->bus, SCSI_REASON_DONE, - req, req->status); + req->bus->complete(req, SCSI_REASON_DONE, req->status); } diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index 1541524..4353aaf 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -166,7 +166,7 @@ static void scsi_read_complete(void * opaque, int ret) DPRINTF("Data ready tag=0x%x len=%zd\n", r->req.tag, iov_len); - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, iov_len); + r->req.bus->complete(&r->req, SCSI_REASON_DATA, iov_len); } @@ -186,7 +186,7 @@ static void scsi_read_data(SCSIRequest *req) if (r->sector_count == (uint32_t)-1) { DPRINTF("Read buf_len=%zd\n", r->iov[0].iov_len); r->sector_count = 0; - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, + r->req.bus->complete(&r->req, SCSI_REASON_DATA, r->iov[0].iov_len); return; } @@ -236,7 +236,7 @@ static int scsi_handle_rw_error(SCSIDiskReq *r, int error, int type) vm_stop(0); } else { if (type == SCSI_REQ_STATUS_RETRY_READ) { - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, 0); + r->req.bus->complete(&r->req, SCSI_REASON_DATA, 0); } if (error == EBADR) { scsi_command_complete(r, CHECK_CONDITION, @@ -280,7 +280,7 @@ static void scsi_write_complete(void * opaque, int ret) r->iov[0].iov_len = len; } DPRINTF("Write complete tag=0x%x more=%d\n", r->req.tag, len); - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, len); + r->req.bus->complete(&r->req, SCSI_REASON_DATA, len); } } diff --git a/hw/scsi-generic.c b/hw/scsi-generic.c index 6250ce5..f7cf67d 100644 --- a/hw/scsi-generic.c +++ b/hw/scsi-generic.c @@ -192,7 +192,7 @@ static void scsi_read_complete(void * opaque, int ret) DPRINTF("Data ready tag=0x%x len=%d\n", r->req.tag, len); r->len = -1; - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, len); + r->req.bus->complete(&r->req, SCSI_REASON_DATA, len); if (len == 0) scsi_command_complete(r, 0); } @@ -222,7 +222,7 @@ static void scsi_read_data(SCSIRequest *req) DPRINTF("Sense: %d %d %d %d %d %d %d %d\n", r->buf[0], r->buf[1], r->buf[2], r->buf[3], r->buf[4], r->buf[5], r->buf[6], r->buf[7]); - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, s->senselen); + r->req.bus->complete(&r->req, SCSI_REASON_DATA, s->senselen); /* Clear sensebuf after REQUEST_SENSE */ scsi_clear_sense(s); return; @@ -268,7 +268,7 @@ static int scsi_write_data(SCSIRequest *req) if (r->len == 0) { r->len = r->buflen; - r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, &r->req, r->len); + r->req.bus->complete(&r->req, SCSI_REASON_DATA, r->len); return 0; } diff --git a/hw/scsi.h b/hw/scsi.h index fbef736..a41f53e 100644 --- a/hw/scsi.h +++ b/hw/scsi.h @@ -18,8 +18,7 @@ typedef struct SCSIBus SCSIBus; typedef struct SCSIDevice SCSIDevice; typedef struct SCSIDeviceInfo SCSIDeviceInfo; typedef struct SCSIRequest SCSIRequest; -typedef void (*scsi_completionfn)(SCSIBus *bus, int reason, SCSIRequest *req, - uint32_t arg); +typedef void (*scsi_completionfn)(SCSIRequest *req, int reason, uint32_t arg); enum SCSIXferMode { SCSI_XFER_NONE, /* TEST_UNIT_READY, ... */ diff --git a/hw/usb-msd.c b/hw/usb-msd.c index ad7d9a7..a60ceeb 100644 --- a/hw/usb-msd.c +++ b/hw/usb-msd.c @@ -174,10 +174,9 @@ static void usb_msd_send_status(MSDState *s) memcpy(s->usb_buf, &csw, 13); } -static void usb_msd_command_complete(SCSIBus *bus, int reason, SCSIRequest *req, - uint32_t arg) +static void usb_msd_command_complete(SCSIRequest *req, int reason, uint32_t arg) { - MSDState *s = DO_UPCAST(MSDState, dev.qdev, bus->qbus.parent); + MSDState *s = DO_UPCAST(MSDState, dev.qdev, req->bus->qbus.parent); USBPacket *p = s->packet; if (req->tag != s->tag) { -- 1.7.1