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