From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH] external modules: Fix pre-2.6.18 kernels Date: Tue, 27 Jan 2009 15:51:08 -0200 Message-ID: <20090127175108.GA9002@amt.cnet> References: <497F365D.7000302@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Avi Kivity , kvm-devel To: Jan Kiszka , "Yang, Sheng" Return-path: Received: from mx2.redhat.com ([66.187.237.31]:50285 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754641AbZA0RwL (ORCPT ); Tue, 27 Jan 2009 12:52:11 -0500 Content-Disposition: inline In-Reply-To: <497F365D.7000302@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, Jan 27, 2009 at 05:29:17PM +0100, Jan Kiszka wrote: > pci_dev.msi_enabled was introduced in 2.6.18, thus building against > older kernels now fail. Fix via a compat wrapper. > > Signed-off-by: Jan Kiszka > --- > > kernel/external-module-compat-comm.h | 7 +++++++ > kernel/x86/hack-module.awk | 2 ++ > 2 files changed, 9 insertions(+), 0 deletions(-) > > diff --git a/kernel/external-module-compat-comm.h b/kernel/external-module-compat-comm.h > index 06af36d..937ba12 100644 > --- a/kernel/external-module-compat-comm.h > +++ b/kernel/external-module-compat-comm.h > @@ -718,3 +718,10 @@ static inline void cpumask_clear_cpu(int cpu, cpumask_var_t mask) > #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) > #define marker_synchronize_unregister() synchronize_sched() > #endif > + > +/* pci_dev.msi_enable was introduced in 2.6.18 */ > +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) > +#define kvm_pcidev_msi_enabled(dev) 1 > +#else > +#define kvm_pcidev_msi_enabled(dev) (dev)->msi_enabled > +#endif I think this will break device assignment for if the device is not MSI capable (if works at all in such older kernels). Need some other way to check if the device is MSI enabled. Perhaps PCI_MSI_FLAGS_ENABLE bit? Sheng?