From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: [PATCH] pv-ops: Fix missing 'ifdef CONFIG_XEN' in acpi Date: Wed, 21 Apr 2010 09:33:02 -0700 Message-ID: <4BCF28BE.4000206@goop.org> References: <4BC7C657.3010609@cn.fujitsu.com> <20100416145604.GC29398@phenom.dumpdata.com> <4BCA82FF.20901@cn.fujitsu.com> <4BCA8E9A.6090209@goop.org> <20100419133026.GA17501@phenom.dumpdata.com> <4BCD3C2B.3030706@cn.fujitsu.com> <20100420183301.GA32720@phenom.dumpdata.com> <4BCE7120.7020004@cn.fujitsu.com> <20100421130045.GA24393@phenom.dumpdata.com> <4BCF0352.50909@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4BCF0352.50909@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Yu Zhiguo Cc: "xen-devel@lists.xensource.com" , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org On 04/21/2010 06:53 AM, Yu Zhiguo wrote: > Konrad Rzeszutek Wilk wrote: > >>> method-3) >>> >>>> Or maybe better take out the xen_register_gsi out of this double >>>> #ifdef and move it to its own. Say: >>>> >>>> >>>> #if !defined(CONFIG_XEN) >>>> static int xen_register_gsi(..) >>>> >>>> #endif >>>> >>> We must use #if !defined(CONFIG_XEN) || (defined(CONFIG_XEN) && !defined(CONFIG_XEN_DOM0_PCI)). >>> It is ugly, especially if there are more macros. >>> >> Lets go with this one. Maybe after this is done there will be a way to >> unmangle this spaghetti mess. >> >> >> >> > OK, please refer to this new version: > > ---------------- > > routines 'xen_register_gsi' and 'xen_setup_msi_irqs' cannot be used > unless macro 'CONFIG_XEN' is defined, otherwise build error occurs. > So fix them in the header file. > > Signed-off-by: Yu Zhiguo > --- > arch/x86/include/asm/xen/pci.h | 55 +++++++++++++++++++++------------------ > 1 files changed, 30 insertions(+), 25 deletions(-) > > diff --git a/arch/x86/include/asm/xen/pci.h b/arch/x86/include/asm/xen/pci.h > index 650645d..27e0667 100644 > --- a/arch/x86/include/asm/xen/pci.h > +++ b/arch/x86/include/asm/xen/pci.h > @@ -14,36 +14,12 @@ void xen_teardown_msi_dev(struct pci_dev *dev); > int xen_find_device_domain_owner(struct pci_dev *dev); > int xen_register_device_domain_owner(struct pci_dev *dev, uint16_t domain); > int xen_unregister_device_domain_owner(struct pci_dev *dev); > - > -#else > -static inline int xen_register_gsi(u32 gsi, int triggering, int polarity) > -{ > - return -1; > -} > -static inline int xen_find_device_domain_owner(struct pci_dev *dev) > -{ > - return -1; > -} > -static inline int xen_register_device_domain_owner(struct pci_dev *dev, > - uint16_t domain) > -{ > - return -1; > -} > -static inline int xen_unregister_device_domain_owner(struct pci_dev *dev) > -{ > - return -1; > -} > -static inline void xen_teardown_msi_dev(struct pci_dev *dev) { } > #endif > > #if defined(CONFIG_PCI_MSI) && defined(CONFIG_XEN_DOM0_PCI) > int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type); > -#else > -static inline int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) > -{ > - return -1; > -} > #endif > + > #if defined(CONFIG_PCI_MSI) > > /* The drivers/pci/xen-pcifront.c sets this structure to > @@ -97,4 +73,33 @@ static inline int xen_create_msi_irq(struct pci_dev *dev, > return -1; > } > #endif > + > +#if !defined(CONFIG_XEN) || (defined(CONFIG_XEN) && !defined(CONFIG_XEN_DOM0_PCI)) > As I mentioned in the other mail, there's no need to test CONFIG_XEN. > +static inline int xen_register_gsi(u32 gsi, int triggering, int polarity) > +{ > + return -1; > +} > +static inline int xen_find_device_domain_owner(struct pci_dev *dev) > +{ > + return -1; > +} > +static inline int xen_register_device_domain_owner(struct pci_dev *dev, > + uint16_t domain) > +{ > + return -1; > +} > +static inline int xen_unregister_device_domain_owner(struct pci_dev *dev) > +{ > + return -1; > +} > +static inline void xen_teardown_msi_dev(struct pci_dev *dev) { } > +#endif > + > +#if !defined(CONFIG_XEN) || (defined(CONFIG_XEN) && \ > + (!defined(CONFIG_PCI_MSI) || !defined(CONFIG_XEN_DOM0_PCI))) > Likewise. J