[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 10/10] Compile virtio-blk only once |
Date: |
Fri, 26 Mar 2010 23:35:06 +0200 |
On 3/26/10, Anthony Liguori <address@hidden> wrote:
> On 03/26/2010 02:04 PM, Blue Swirl wrote:
>
> > Replace access macros with direct accesses.
> >
> > Signed-off-by: Blue Swirl<address@hidden>
> > ---
> > 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.