Revision ab9adc88 hw/scsi-disk.c

b/hw/scsi-disk.c
170 170
    n = r->iov.iov_len / 512;
171 171
    r->sector += n;
172 172
    r->sector_count -= n;
173
    r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, r->req.tag, r->iov.iov_len);
173
    scsi_req_data(&r->req, r->iov.iov_len);
174 174
}
175 175

  
176 176

  
......
182 182
    if (r->sector_count == (uint32_t)-1) {
183 183
        DPRINTF("Read buf_len=%zd\n", r->iov.iov_len);
184 184
        r->sector_count = 0;
185
        r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, r->req.tag, r->iov.iov_len);
185
        scsi_req_data(&r->req, r->iov.iov_len);
186 186
        return;
187 187
    }
188 188
    DPRINTF("Read sector_count=%d\n", r->sector_count);
......
245 245
        vm_stop(VMSTOP_DISKFULL);
246 246
    } else {
247 247
        if (type == SCSI_REQ_STATUS_RETRY_READ) {
248
            r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, r->req.tag, 0);
248
            scsi_req_data(&r->req, 0);
249 249
        }
250 250
        scsi_command_complete(r, CHECK_CONDITION,
251 251
                HARDWARE_ERROR);
......
281 281
        }
282 282
        r->iov.iov_len = len;
283 283
        DPRINTF("Write complete tag=0x%x more=%d\n", r->req.tag, len);
284
        r->req.bus->complete(r->req.bus, SCSI_REASON_DATA, r->req.tag, len);
284
        scsi_req_data(&r->req, len);
285 285
    }
286 286
}
287 287

  

Also available in: Unified diff