* [Qemu-devel] [PATCH] virtio-blk: fix cross-endian config space
@ 2011-11-15 11:07 Paolo Bonzini
2011-11-15 12:17 ` Stefan Hajnoczi
2011-11-18 12:51 ` Kevin Wolf
0 siblings, 2 replies; 3+ messages in thread
From: Paolo Bonzini @ 2011-11-15 11:07 UTC (permalink / raw)
To: qemu-devel; +Cc: mst
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/virtio-blk.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
index 01aeb28..4a15f0c 100644
--- a/hw/virtio-blk.c
+++ b/hw/virtio-blk.c
@@ -481,14 +481,14 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
stq_raw(&blkcfg.capacity, capacity);
stl_raw(&blkcfg.seg_max, 128 - 2);
stw_raw(&blkcfg.cylinders, cylinders);
+ stl_raw(&blkcfg.blk_size, s->conf->logical_block_size);
+ stw_raw(&blkcfg.min_io_size, s->conf->min_io_size / blkcfg.blk_size);
+ stw_raw(&blkcfg.opt_io_size, s->conf->opt_io_size / blkcfg.blk_size);
blkcfg.heads = heads;
blkcfg.sectors = secs & ~s->sector_mask;
- blkcfg.blk_size = s->conf->logical_block_size;
blkcfg.size_max = 0;
blkcfg.physical_block_exp = get_physical_block_exp(s->conf);
blkcfg.alignment_offset = 0;
- blkcfg.min_io_size = s->conf->min_io_size / blkcfg.blk_size;
- blkcfg.opt_io_size = s->conf->opt_io_size / blkcfg.blk_size;
memcpy(config, &blkcfg, sizeof(struct virtio_blk_config));
}
--
1.7.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] virtio-blk: fix cross-endian config space
2011-11-15 11:07 [Qemu-devel] [PATCH] virtio-blk: fix cross-endian config space Paolo Bonzini
@ 2011-11-15 12:17 ` Stefan Hajnoczi
2011-11-18 12:51 ` Kevin Wolf
1 sibling, 0 replies; 3+ messages in thread
From: Stefan Hajnoczi @ 2011-11-15 12:17 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel, mst
On Tue, Nov 15, 2011 at 12:07:53PM +0100, Paolo Bonzini wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> hw/virtio-blk.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
Works with existing x86 guests and does the right thing for big-endian
guests.
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] virtio-blk: fix cross-endian config space
2011-11-15 11:07 [Qemu-devel] [PATCH] virtio-blk: fix cross-endian config space Paolo Bonzini
2011-11-15 12:17 ` Stefan Hajnoczi
@ 2011-11-18 12:51 ` Kevin Wolf
1 sibling, 0 replies; 3+ messages in thread
From: Kevin Wolf @ 2011-11-18 12:51 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel, mst
Am 15.11.2011 12:07, schrieb Paolo Bonzini:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> hw/virtio-blk.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
> index 01aeb28..4a15f0c 100644
> --- a/hw/virtio-blk.c
> +++ b/hw/virtio-blk.c
> @@ -481,14 +481,14 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
> stq_raw(&blkcfg.capacity, capacity);
> stl_raw(&blkcfg.seg_max, 128 - 2);
> stw_raw(&blkcfg.cylinders, cylinders);
> + stl_raw(&blkcfg.blk_size, s->conf->logical_block_size);
> + stw_raw(&blkcfg.min_io_size, s->conf->min_io_size / blkcfg.blk_size);
> + stw_raw(&blkcfg.opt_io_size, s->conf->opt_io_size / blkcfg.blk_size);
blkcfg.blk_size is in target endianness now, so you can't use it in the
calculation for min/opt_io_size any more.
Kevin
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-11-18 12:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-15 11:07 [Qemu-devel] [PATCH] virtio-blk: fix cross-endian config space Paolo Bonzini
2011-11-15 12:17 ` Stefan Hajnoczi
2011-11-18 12:51 ` Kevin Wolf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).