From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Sander Eikelenboom <linux@eikelenboom.it>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [stable-2.6.31/master] Compile error "error: redefinition of xen_destroy_irq"
Date: Tue, 16 Mar 2010 15:58:31 -0400 [thread overview]
Message-ID: <20100316195831.GA23533@phenom.dumpdata.com> (raw)
In-Reply-To: <20100316015032.GA24571@phenom.dumpdata.com>
[-- Attachment #1: Type: text/plain, Size: 4238 bytes --]
On Mon, Mar 15, 2010 at 09:50:32PM -0400, Konrad Rzeszutek Wilk wrote:
> On Thu, Mar 11, 2010 at 09:51:54AM +0100, Sander Eikelenboom wrote:
> > Hello Konrad,
> >
> > You patch results in another compile error, it seems these are all caused by NOT enabling dom0 support in the kernel (i was building a kernel for a domU, so I thought I don't need it, just leave it out)
> >
> > Hello Konrad,
> >
> > Hmm that seems to give another one:
> >
> > AS arch/x86/lib/thunk_64.o
> > CC arch/x86/lib/usercopy_64.o
> > AR arch/x86/lib/lib.a
> > LD vmlinux.o
> > MODPOST vmlinux.o
> > WARNING: modpost: Found 1 section mismatch(es).
> > To see full details build your kernel with:
> > 'make CONFIG_DEBUG_SECTION_MISMATCH=y'
> > GEN .version
> > CHK include/linux/compile.h
> > UPD include/linux/compile.h
> > CC init/version.o
> > LD init/built-in.o
> > LD .tmp_vmlinux1
> > drivers/built-in.o: In function `pcifront_init':
> > xen-pcifront.c:(.init.text+0x257b): undefined reference to `xen_pci_frontend'
> > drivers/built-in.o: In function `pcifront_cleanup':
> > xen-pcifront.c:(.exit.text+0xa8): undefined reference to `xen_pci_frontend'
> > make: *** [.tmp_vmlinux1] Error 1
>
> Ugh. Let me spin out another patch to address this fallout.
Can you try this patch, please:
commit a184e032784a330bf6dc5cc7546be6f31da1eabd
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Tue Mar 16 12:37:26 2010 -0400
xen: Fix the co-dependency of PCI frontend driver and various CONFIG
options.
We have a big turn knob called CONFIG_PCI_XEN_PASSTHROUGH that selects
two pieces of logic: XEN_SWIOTLB and XEN_PCI. The PCI frontend depends
on that but did not have the right depend in its Kconfig.
Also fixed the header file since there are a mulitple of declerations
that are from different files: arch/x86/xen/pci.c, arch/x86/pci/xen.c
and drivers/xen/events.c.
diff --git a/arch/x86/include/asm/xen/pci.h b/arch/x86/include/asm/xen/pci.h
index d68637f..abea466 100644
--- a/arch/x86/include/asm/xen/pci.h
+++ b/arch/x86/include/asm/xen/pci.h
@@ -1,11 +1,9 @@
#ifndef _ASM_X86_XEN_PCI_H
#define _ASM_X86_XEN_PCI_H
+/* in arch/x86/pci/xen.c */
#if defined(CONFIG_PCI_MSI)
#if defined(CONFIG_PCI_XEN)
-int xen_create_msi_irq(struct pci_dev *dev,
- struct msi_desc *msidesc,
- int type);
void xen_pci_teardown_msi_dev(struct pci_dev *dev);
void xen_pci_teardown_msi_irq(int irq);
int xen_pci_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
@@ -47,12 +45,6 @@ static inline void xen_pci_frontend_disable_msix(struct pci_dev *dev)
xen_pci_frontend->disable_msix(dev);
}
#else
-static inline int xen_create_msi_irq(struct pci_dev *dev,
- struct msi_desc *msidesc,
- int type)
-{
- return -1;
-}
static inline void xen_pci_teardown_msi_dev(struct pci_dev *dev) { }
static inline void xen_pci_teardown_msi_irq(int irq) { }
static inline int xen_pci_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
@@ -60,9 +52,23 @@ static inline int xen_pci_setup_msi_irqs(struct pci_dev *dev, int nvec, int type
return -ENODEV;
}
#endif /* CONFIG_PCI_XEN */
-
#endif /* CONFIG_PCI_MSI */
+/* in drivers/xen/events.c */
+#ifdef CONFIG_PCI_MSI
+int xen_create_msi_irq(struct pci_dev *dev,
+ struct msi_desc *msidesc,
+ int type);
+#else
+static inline int xen_create_msi_irq(struct pci_dev *dev,
+ struct msi_desc *msidesc,
+ int type)
+{
+ return -1;
+}
+#endif
+
+/* in arch/x86/xen/pci.c */
#ifdef CONFIG_XEN_DOM0_PCI
int xen_register_gsi(u32 gsi, int triggering, int polarity);
int xen_find_device_domain_owner(struct pci_dev *dev);
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
index 7802fcd..0dd2187 100644
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
@@ -53,7 +53,7 @@ config PCI_STUB
config XEN_PCIDEV_FRONTEND
tristate "Xen PCI Frontend"
- depends on XEN && PCI && X86
+ depends on XEN && PCI && X86 && XEN_PCI_PASSTHROUGH
select HOTPLUG
select XEN_XENBUS_FRONTEND
default y
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
[-- Attachment #2: p.patch --]
[-- Type: text/plain, Size: 2747 bytes --]
commit a184e032784a330bf6dc5cc7546be6f31da1eabd
Author: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Tue Mar 16 12:37:26 2010 -0400
xen: Fix the co-dependency of PCI frontend driver and various CONFIG
options.
We have a big turn knob called CONFIG_PCI_XEN_PASSTHROUGH that selects
two pieces of logic: XEN_SWIOTLB and XEN_PCI. The PCI frontend depends
on that but did not have the right depend in its Kconfig.
Also fixed the header file since there are a mulitple of declerations
that are from different files: arch/x86/xen/pci.c, arch/x86/pci/xen.c
and drivers/xen/events.c.
diff --git a/arch/x86/include/asm/xen/pci.h b/arch/x86/include/asm/xen/pci.h
index d68637f..abea466 100644
--- a/arch/x86/include/asm/xen/pci.h
+++ b/arch/x86/include/asm/xen/pci.h
@@ -1,11 +1,9 @@
#ifndef _ASM_X86_XEN_PCI_H
#define _ASM_X86_XEN_PCI_H
+/* in arch/x86/pci/xen.c */
#if defined(CONFIG_PCI_MSI)
#if defined(CONFIG_PCI_XEN)
-int xen_create_msi_irq(struct pci_dev *dev,
- struct msi_desc *msidesc,
- int type);
void xen_pci_teardown_msi_dev(struct pci_dev *dev);
void xen_pci_teardown_msi_irq(int irq);
int xen_pci_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
@@ -47,12 +45,6 @@ static inline void xen_pci_frontend_disable_msix(struct pci_dev *dev)
xen_pci_frontend->disable_msix(dev);
}
#else
-static inline int xen_create_msi_irq(struct pci_dev *dev,
- struct msi_desc *msidesc,
- int type)
-{
- return -1;
-}
static inline void xen_pci_teardown_msi_dev(struct pci_dev *dev) { }
static inline void xen_pci_teardown_msi_irq(int irq) { }
static inline int xen_pci_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
@@ -60,9 +52,23 @@ static inline int xen_pci_setup_msi_irqs(struct pci_dev *dev, int nvec, int type
return -ENODEV;
}
#endif /* CONFIG_PCI_XEN */
-
#endif /* CONFIG_PCI_MSI */
+/* in drivers/xen/events.c */
+#ifdef CONFIG_PCI_MSI
+int xen_create_msi_irq(struct pci_dev *dev,
+ struct msi_desc *msidesc,
+ int type);
+#else
+static inline int xen_create_msi_irq(struct pci_dev *dev,
+ struct msi_desc *msidesc,
+ int type)
+{
+ return -1;
+}
+#endif
+
+/* in arch/x86/xen/pci.c */
#ifdef CONFIG_XEN_DOM0_PCI
int xen_register_gsi(u32 gsi, int triggering, int polarity);
int xen_find_device_domain_owner(struct pci_dev *dev);
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
index 7802fcd..0dd2187 100644
--- a/drivers/pci/Kconfig
+++ b/drivers/pci/Kconfig
@@ -53,7 +53,7 @@ config PCI_STUB
config XEN_PCIDEV_FRONTEND
tristate "Xen PCI Frontend"
- depends on XEN && PCI && X86
+ depends on XEN && PCI && X86 && XEN_PCI_PASSTHROUGH
select HOTPLUG
select XEN_XENBUS_FRONTEND
default y
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
prev parent reply other threads:[~2010-03-16 19:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-10 18:42 [stable-2.6.31/master] Compile error "error: redefinition of xen_destroy_irq" Sander Eikelenboom
2010-03-10 19:54 ` Konrad Rzeszutek Wilk
2010-03-10 22:19 ` Sander Eikelenboom
2010-03-11 8:51 ` Sander Eikelenboom
2010-03-16 1:50 ` Konrad Rzeszutek Wilk
2010-03-16 19:58 ` Konrad Rzeszutek Wilk [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100316195831.GA23533@phenom.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=jeremy@goop.org \
--cc=linux@eikelenboom.it \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.