Revision f487b677 hw/scsi/virtio-scsi.c

b/hw/scsi/virtio-scsi.c
77 77
    exit(1);
78 78
}
79 79

  
80
static void qemu_sgl_init_external(QEMUSGList *qsgl, struct iovec *sg,
80
static void qemu_sgl_init_external(VirtIOSCSIReq *req, struct iovec *sg,
81 81
                                   hwaddr *addr, int num)
82 82
{
83
    qemu_sglist_init(qsgl, num, &address_space_memory);
83
    QEMUSGList *qsgl = &req->qsgl;
84

  
85
    qemu_sglist_init(qsgl, DEVICE(req->dev), num, &address_space_memory);
84 86
    while (num--) {
85 87
        qemu_sglist_add(qsgl, *(addr++), (sg++)->iov_len);
86 88
    }
......
99 101
    req->resp.buf = req->elem.in_sg[0].iov_base;
100 102

  
101 103
    if (req->elem.out_num > 1) {
102
        qemu_sgl_init_external(&req->qsgl, &req->elem.out_sg[1],
104
        qemu_sgl_init_external(req, &req->elem.out_sg[1],
103 105
                               &req->elem.out_addr[1],
104 106
                               req->elem.out_num - 1);
105 107
    } else {
106
        qemu_sgl_init_external(&req->qsgl, &req->elem.in_sg[1],
108
        qemu_sgl_init_external(req, &req->elem.in_sg[1],
107 109
                               &req->elem.in_addr[1],
108 110
                               req->elem.in_num - 1);
109 111
    }

Also available in: Unified diff