Revision 0c34459b hw/spapr_vscsi.c

b/hw/spapr_vscsi.c
74 74
    union viosrp_iu         iu;
75 75

  
76 76
    /* SCSI request tracking */
77
    SCSIDevice              *sdev;
78 77
    SCSIRequest             *sreq;
79 78
    uint32_t                qtag; /* qemu tag != srp tag */
80 79
    int                     lun;
......
476 475
{
477 476
    VSCSIState *s = DO_UPCAST(VSCSIState, vdev.qdev, sreq->bus->qbus.parent);
478 477
    vscsi_req *req = vscsi_find_req(s, sreq);
479
    SCSIDevice *sdev;
480 478
    uint8_t *buf;
481 479
    int32_t res_in = 0, res_out = 0;
482 480
    int len, rc = 0;
......
487 485
        fprintf(stderr, "VSCSI: Can't find request for tag 0x%x\n", sreq->tag);
488 486
        return;
489 487
    }
490
    sdev = req->sdev;
491 488

  
492 489
    if (req->sensing) {
493 490
        if (reason == SCSI_REASON_DONE) {
......
495 492
            vscsi_send_rsp(s, req, CHECK_CONDITION, 0, 0);
496 493
            vscsi_put_req(s, req);
497 494
        } else {
498
            uint8_t *buf = sdev->info->get_buf(sreq);
495
            uint8_t *buf = scsi_req_get_buf(sreq);
499 496

  
500 497
            len = MIN(arg, SCSI_SENSE_BUF_SIZE);
501 498
            dprintf("VSCSI: Sense data, %d bytes:\n", len);
......
539 536
     * to write for writes (ie, how much is to be DMA'd)
540 537
     */
541 538
    if (arg) {
542
        buf = sdev->info->get_buf(sreq);
539
        buf = scsi_req_get_buf(sreq);
543 540
        rc = vscsi_srp_transfer_data(s, req, req->writing, buf, arg);
544 541
    }
545 542
    if (rc < 0) {
......
646 643
        } return 1;
647 644
    }
648 645

  
649
    req->sdev = sdev;
650 646
    req->lun = lun;
651 647
    req->sreq = scsi_req_new(sdev, req->qtag, lun);
652 648
    n = scsi_req_enqueue(req->sreq, srp->cmd.cdb);

Also available in: Unified diff