Re: [PATCH 2/2] msix: Pull in config.h for CONFIG_KVM

Alex Williamson
2010-10-23T16:52:47Z

On Sat, 2010-10-23 at 18:16 +0200, Michael S. Tsirkin wrote:
> On Fri, Oct 22, 2010 at 02:40:39PM -0600, Alex Williamson wrote:
> > We need to pull in config.h or else kvm.h doesn't pull in
> > linux/config.h, which we need if we ever want KVM_CAP_IRQCHIP
> > defined. This requires moving the object over to Makefile.target
> > or else we can't find config-target.h
> >
> > Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
>
> Why? We just moved it from .target to .objs, see
> 889e30cc18e21f2091b77267dca8096d7dd34f8b.

Maybe that's why it used to work. When building in the qemu-kvm.git
tree, I'm not getting CONFIG_KVM defined, which means I'm not getting
KVM_CAP_IRQCHIP defined, which results in msix_irq_entries not being
allocated. Then when I call msix_vector_use, I get a seg fault.
Something is broken there. Thanks,

Alex

> > ---
> >
> > Makefile.objs | 2 --
> > Makefile.target | 1 +
> > hw/msix.c | 1 +
> > 3 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/Makefile.objs b/Makefile.objs
> > index ca2d2d0..c097d25 100644
> > --- a/Makefile.objs
> > +++ b/Makefile.objs
> > @@ -201,8 +201,6 @@ hw-obj-$(CONFIG_PIIX4) += piix4.o
> > # PCI watchdog devices
> > hw-obj-y += wdt_i6300esb.o
> >
> > -hw-obj-y += msix.o
> > -
> > # PCI network cards
> > hw-obj-y += ne2000.o
> > hw-obj-y += eepro100.o
> > diff --git a/Makefile.target b/Makefile.target
> > index 347ad6b..63da13b 100644
> > --- a/Makefile.target
> > +++ b/Makefile.target
> > @@ -185,6 +185,7 @@ obj-y += rwhandler.o
> > obj-$(CONFIG_KVM) += kvm.o kvm-all.o
> > obj-$(CONFIG_NO_KVM) += kvm-stub.o
> > obj-y += memory.o
> > +obj-y += msix.o
> >
> > LIBS+=-lz
> >
> > diff --git a/hw/msix.c b/hw/msix.c
> > index 4122395..23256c9 100644
> > --- a/hw/msix.c
> > +++ b/hw/msix.c
> > @@ -11,6 +11,7 @@
> > * the COPYING file in the top-level directory.
> > */
> >
> > +#include "config.h"
> > #include "hw.h"
> > #include "msix.h"
> > #include "pci.h"