aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2022-12-03 15:08:20 +0000
committerAlexander Motin <mav@FreeBSD.org>2022-12-17 19:18:38 +0000
commitf7c086f2c27d185ee831947378de9671298387db (patch)
treec4b6ac6cc562f0d8fccaf1ff4ff3ad91f41567e9
parenta3c07a933d5cb71a6d58cc9f0ecb5385a5e0ea29 (diff)
downloadsrc-f7c086f2c27d185ee831947378de9671298387db.tar.gz
src-f7c086f2c27d185ee831947378de9671298387db.zip
bhyve virtio-scsi: Fix residual reporting.
CTL does not really use residual field and it always returned zero. Use ext_data_filled instead. MFC after: 2 weeks (cherry picked from commit b81ac5cdc355029b4d5723fcdfcbcbedeb94dcd9)
-rw-r--r--usr.sbin/bhyve/pci_virtio_scsi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.sbin/bhyve/pci_virtio_scsi.c b/usr.sbin/bhyve/pci_virtio_scsi.c
index 563798f19b07..e00591a603e0 100644
--- a/usr.sbin/bhyve/pci_virtio_scsi.c
+++ b/usr.sbin/bhyve/pci_virtio_scsi.c
@@ -559,7 +559,7 @@ pci_vtscsi_request_handle(struct pci_vtscsi_queue *q, struct iovec *iov_in,
} else {
cmd_wr->sense_len = MIN(io->scsiio.sense_len,
sc->vss_config.sense_size);
- cmd_wr->residual = io->scsiio.residual;
+ cmd_wr->residual = ext_data_len - io->scsiio.ext_data_filled;
cmd_wr->status = io->scsiio.scsi_status;
cmd_wr->response = VIRTIO_SCSI_S_OK;
memcpy(&cmd_wr->sense, &io->scsiio.sense_data,