diff options
Diffstat (limited to 'Documentation/lguest/lguest.c')
-rw-r--r-- | Documentation/lguest/lguest.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index 4c1fc65a8b3d..5cd705c3d75b 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c | |||
@@ -1398,7 +1398,7 @@ static bool service_io(struct device *dev) | |||
1398 | struct vblk_info *vblk = dev->priv; | 1398 | struct vblk_info *vblk = dev->priv; |
1399 | unsigned int head, out_num, in_num, wlen; | 1399 | unsigned int head, out_num, in_num, wlen; |
1400 | int ret; | 1400 | int ret; |
1401 | struct virtio_blk_inhdr *in; | 1401 | u8 *in; |
1402 | struct virtio_blk_outhdr *out; | 1402 | struct virtio_blk_outhdr *out; |
1403 | struct iovec iov[dev->vq->vring.num]; | 1403 | struct iovec iov[dev->vq->vring.num]; |
1404 | off64_t off; | 1404 | off64_t off; |
@@ -1416,7 +1416,7 @@ static bool service_io(struct device *dev) | |||
1416 | head, out_num, in_num); | 1416 | head, out_num, in_num); |
1417 | 1417 | ||
1418 | out = convert(&iov[0], struct virtio_blk_outhdr); | 1418 | out = convert(&iov[0], struct virtio_blk_outhdr); |
1419 | in = convert(&iov[out_num+in_num-1], struct virtio_blk_inhdr); | 1419 | in = convert(&iov[out_num+in_num-1], u8); |
1420 | off = out->sector * 512; | 1420 | off = out->sector * 512; |
1421 | 1421 | ||
1422 | /* The block device implements "barriers", where the Guest indicates | 1422 | /* The block device implements "barriers", where the Guest indicates |
@@ -1430,7 +1430,7 @@ static bool service_io(struct device *dev) | |||
1430 | * It'd be nice if we supported eject, for example, but we don't. */ | 1430 | * It'd be nice if we supported eject, for example, but we don't. */ |
1431 | if (out->type & VIRTIO_BLK_T_SCSI_CMD) { | 1431 | if (out->type & VIRTIO_BLK_T_SCSI_CMD) { |
1432 | fprintf(stderr, "Scsi commands unsupported\n"); | 1432 | fprintf(stderr, "Scsi commands unsupported\n"); |
1433 | in->status = VIRTIO_BLK_S_UNSUPP; | 1433 | *in = VIRTIO_BLK_S_UNSUPP; |
1434 | wlen = sizeof(*in); | 1434 | wlen = sizeof(*in); |
1435 | } else if (out->type & VIRTIO_BLK_T_OUT) { | 1435 | } else if (out->type & VIRTIO_BLK_T_OUT) { |
1436 | /* Write */ | 1436 | /* Write */ |
@@ -1453,7 +1453,7 @@ static bool service_io(struct device *dev) | |||
1453 | errx(1, "Write past end %llu+%u", off, ret); | 1453 | errx(1, "Write past end %llu+%u", off, ret); |
1454 | } | 1454 | } |
1455 | wlen = sizeof(*in); | 1455 | wlen = sizeof(*in); |
1456 | in->status = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); | 1456 | *in = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); |
1457 | } else { | 1457 | } else { |
1458 | /* Read */ | 1458 | /* Read */ |
1459 | 1459 | ||
@@ -1466,10 +1466,10 @@ static bool service_io(struct device *dev) | |||
1466 | verbose("READ from sector %llu: %i\n", out->sector, ret); | 1466 | verbose("READ from sector %llu: %i\n", out->sector, ret); |
1467 | if (ret >= 0) { | 1467 | if (ret >= 0) { |
1468 | wlen = sizeof(*in) + ret; | 1468 | wlen = sizeof(*in) + ret; |
1469 | in->status = VIRTIO_BLK_S_OK; | 1469 | *in = VIRTIO_BLK_S_OK; |
1470 | } else { | 1470 | } else { |
1471 | wlen = sizeof(*in); | 1471 | wlen = sizeof(*in); |
1472 | in->status = VIRTIO_BLK_S_IOERR; | 1472 | *in = VIRTIO_BLK_S_IOERR; |
1473 | } | 1473 | } |
1474 | } | 1474 | } |
1475 | 1475 | ||