qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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).