* [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once
@ 2010-03-26 19:04 Blue Swirl
2010-03-26 20:33 ` Anthony Liguori
0 siblings, 1 reply; 3+ messages in thread
From: Blue Swirl @ 2010-03-26 19:04 UTC (permalink / raw)
To: qemu-devel
Replace access macros with direct accesses.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
Makefile.objs | 3 ++-
Makefile.target | 2 +-
hw/virtio-blk.c | 6 +++---
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/Makefile.objs b/Makefile.objs
index cad6490..5612ec2 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -128,7 +128,8 @@ user-obj-y += cutils.o cache-utils.o
hw-obj-y =
hw-obj-y += loader.o
-hw-obj-y += virtio.o virtio-console.o virtio-pci.o virtio-net.o
virtio-serial-bus.o
+hw-obj-y += virtio.o virtio-console.o virtio-pci.o
+hw-obj-y += virtio-blk.o virtio-net.o virtio-serial-bus.o
hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.o
hw-obj-y += watchdog.o
hw-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
diff --git a/Makefile.target b/Makefile.target
index e43e138..169c11e 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -165,7 +165,7 @@ obj-y = vl.o monitor.o machine.o gdbstub.o
obj-y += qemu-timer.o
# virtio has to be here due to weird dependency between PCI and virtio-net.
# need to fix this properly
-obj-y += virtio-blk.o virtio-balloon.o
+obj-y += virtio-balloon.o
obj-y += rwhandler.o
obj-$(CONFIG_KVM) += kvm.o kvm-all.o
LIBS+=-lz
diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
index 9915840..d9dd9a7 100644
--- a/hw/virtio-blk.c
+++ b/hw/virtio-blk.c
@@ -411,9 +411,9 @@ static void virtio_blk_update_config(VirtIODevice
*vdev, uint8_t *config)
bdrv_get_geometry(s->bs, &capacity);
bdrv_get_geometry_hint(s->bs, &cylinders, &heads, &secs);
memset(&blkcfg, 0, sizeof(blkcfg));
- stq_raw(&blkcfg.capacity, capacity);
- stl_raw(&blkcfg.seg_max, 128 - 2);
- stw_raw(&blkcfg.cylinders, cylinders);
+ blkcfg.capacity = capacity;
+ blkcfg.seg_max = 128 - 2;
+ blkcfg.cylinders = cylinders;
blkcfg.heads = heads;
blkcfg.sectors = secs & ~s->sector_mask;
blkcfg.blk_size = s->conf->logical_block_size;
--
1.6.2.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once
2010-03-26 19:04 [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once Blue Swirl
@ 2010-03-26 20:33 ` Anthony Liguori
2010-03-26 21:35 ` Blue Swirl
0 siblings, 1 reply; 3+ messages in thread
From: Anthony Liguori @ 2010-03-26 20:33 UTC (permalink / raw)
To: Blue Swirl; +Cc: qemu-devel
On 03/26/2010 02:04 PM, Blue Swirl wrote:
> Replace access macros with direct accesses.
>
> Signed-off-by: Blue Swirl<blauwirbel@gmail.com>
> ---
> Makefile.objs | 3 ++-
> Makefile.target | 2 +-
> hw/virtio-blk.c | 6 +++---
> 3 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/Makefile.objs b/Makefile.objs
> index cad6490..5612ec2 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -128,7 +128,8 @@ user-obj-y += cutils.o cache-utils.o
>
> hw-obj-y =
> hw-obj-y += loader.o
> -hw-obj-y += virtio.o virtio-console.o virtio-pci.o virtio-net.o
> virtio-serial-bus.o
> +hw-obj-y += virtio.o virtio-console.o virtio-pci.o
> +hw-obj-y += virtio-blk.o virtio-net.o virtio-serial-bus.o
> hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.o
> hw-obj-y += watchdog.o
> hw-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
> diff --git a/Makefile.target b/Makefile.target
> index e43e138..169c11e 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -165,7 +165,7 @@ obj-y = vl.o monitor.o machine.o gdbstub.o
> obj-y += qemu-timer.o
> # virtio has to be here due to weird dependency between PCI and virtio-net.
> # need to fix this properly
> -obj-y += virtio-blk.o virtio-balloon.o
> +obj-y += virtio-balloon.o
> obj-y += rwhandler.o
> obj-$(CONFIG_KVM) += kvm.o kvm-all.o
> LIBS+=-lz
> diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
> index 9915840..d9dd9a7 100644
> --- a/hw/virtio-blk.c
> +++ b/hw/virtio-blk.c
> @@ -411,9 +411,9 @@ static void virtio_blk_update_config(VirtIODevice
> *vdev, uint8_t *config)
> bdrv_get_geometry(s->bs,&capacity);
> bdrv_get_geometry_hint(s->bs,&cylinders,&heads,&secs);
> memset(&blkcfg, 0, sizeof(blkcfg));
> - stq_raw(&blkcfg.capacity, capacity);
> - stl_raw(&blkcfg.seg_max, 128 - 2);
> - stw_raw(&blkcfg.cylinders, cylinders);
> + blkcfg.capacity = capacity;
> + blkcfg.seg_max = 128 - 2;
> + blkcfg.cylinders = cylinders;
>
This looks wrong to me.
These values need to be in guest endianness.
Regards,
Anthony Liguori
> blkcfg.heads = heads;
> blkcfg.sectors = secs& ~s->sector_mask;
> blkcfg.blk_size = s->conf->logical_block_size;
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once
2010-03-26 20:33 ` Anthony Liguori
@ 2010-03-26 21:35 ` Blue Swirl
0 siblings, 0 replies; 3+ messages in thread
From: Blue Swirl @ 2010-03-26 21:35 UTC (permalink / raw)
To: Anthony Liguori; +Cc: qemu-devel
On 3/26/10, Anthony Liguori <anthony@codemonkey.ws> wrote:
> On 03/26/2010 02:04 PM, Blue Swirl wrote:
>
> > Replace access macros with direct accesses.
> >
> > Signed-off-by: Blue Swirl<blauwirbel@gmail.com>
> > ---
> > Makefile.objs | 3 ++-
> > Makefile.target | 2 +-
> > hw/virtio-blk.c | 6 +++---
> > 3 files changed, 6 insertions(+), 5 deletions(-)
> >
> > diff --git a/Makefile.objs b/Makefile.objs
> > index cad6490..5612ec2 100644
> > --- a/Makefile.objs
> > +++ b/Makefile.objs
> > @@ -128,7 +128,8 @@ user-obj-y += cutils.o cache-utils.o
> >
> > hw-obj-y =
> > hw-obj-y += loader.o
> > -hw-obj-y += virtio.o virtio-console.o virtio-pci.o virtio-net.o
> > virtio-serial-bus.o
> > +hw-obj-y += virtio.o virtio-console.o virtio-pci.o
> > +hw-obj-y += virtio-blk.o virtio-net.o virtio-serial-bus.o
> > hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.o
> > hw-obj-y += watchdog.o
> > hw-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o
> > diff --git a/Makefile.target b/Makefile.target
> > index e43e138..169c11e 100644
> > --- a/Makefile.target
> > +++ b/Makefile.target
> > @@ -165,7 +165,7 @@ obj-y = vl.o monitor.o machine.o gdbstub.o
> > obj-y += qemu-timer.o
> > # virtio has to be here due to weird dependency between PCI and
> virtio-net.
> > # need to fix this properly
> > -obj-y += virtio-blk.o virtio-balloon.o
> > +obj-y += virtio-balloon.o
> > obj-y += rwhandler.o
> > obj-$(CONFIG_KVM) += kvm.o kvm-all.o
> > LIBS+=-lz
> > diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
> > index 9915840..d9dd9a7 100644
> > --- a/hw/virtio-blk.c
> > +++ b/hw/virtio-blk.c
> > @@ -411,9 +411,9 @@ static void
> virtio_blk_update_config(VirtIODevice
> > *vdev, uint8_t *config)
> > bdrv_get_geometry(s->bs,&capacity);
> >
> bdrv_get_geometry_hint(s->bs,&cylinders,&heads,&secs);
> > memset(&blkcfg, 0, sizeof(blkcfg));
> > - stq_raw(&blkcfg.capacity, capacity);
> > - stl_raw(&blkcfg.seg_max, 128 - 2);
> > - stw_raw(&blkcfg.cylinders, cylinders);
> > + blkcfg.capacity = capacity;
> > + blkcfg.seg_max = 128 - 2;
> > + blkcfg.cylinders = cylinders;
> >
> >
>
> This looks wrong to me.
>
> These values need to be in guest endianness.
Then we probably need a flag to indicate the endianness, passed from
virtio-pci. It gets a bit more complicated.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-03-26 21:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-26 19:04 [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once Blue Swirl
2010-03-26 20:33 ` Anthony Liguori
2010-03-26 21:35 ` Blue Swirl
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.