Re: [PATCH v2 2/4] vfio: spapr: Fix build error
On Wed, Aug 06, 2014 at 04:33:29PM +1000, Alexey Kardashevskiy wrote: >On 08/06/2014 01:54 PM, Gavin Shan wrote: >> On Tue, Aug 05, 2014 at 09:12:50PM -0600, Alex Williamson wrote: >>> On Wed, 2014-08-06 at 12:48 +1000, Alexey Kardashevskiy wrote: From: Gavin Shan The VFIO related components could be built as dynamic modules. Unfortunately, CONFIG_EEH can't be configured to "m". The patch fixes the build errors when configuring VFIO related components as dynamic modules as follows: CC [M] drivers/vfio/vfio_iommu_spapr_tce.o In file included from drivers/vfio/vfio.c:33:0: include/linux/vfio.h:101:43: warning: ‘struct pci_dev’ declared \ inside parameter list [enabled by default] : WRAParch/powerpc/boot/zImage.pseries WRAParch/powerpc/boot/zImage.maple WRAParch/powerpc/boot/zImage.pmac WRAParch/powerpc/boot/zImage.epapr MODPOST 1818 modules ERROR: ".vfio_spapr_iommu_eeh_ioctl" [drivers/vfio/vfio_iommu_spapr_tce.ko]\ undefined! ERROR: ".vfio_spapr_pci_eeh_open" [drivers/vfio/pci/vfio-pci.ko] undefined! ERROR: ".vfio_spapr_pci_eeh_release" [drivers/vfio/pci/vfio-pci.ko] undefined! Reported-by: Alexey Kardashevskiy Signed-off-by: Gavin Shan [removed include "pci.h" in vfio.c] Signed-off-by: Alexey Kardashevskiy --- Changes: v2: * removed #include from vfio.c and tested >> >> Appreciated for Alexey's help on it :) > > >My bad, that was wrong actually, we still need this: > Yep, no worries. I'll fix it in next revision. >diff --git a/include/linux/vfio.h b/include/linux/vfio.h >index 25a0fbd..224128a 100644 >--- a/include/linux/vfio.h >+++ b/include/linux/vfio.h >@@ -98,6 +98,7 @@ extern int vfio_external_user_iommu_id(struct vfio_group >*group); > extern long vfio_external_check_extension(struct vfio_group *group, > unsigned long arg); > >+struct pci_dev; > #ifdef CONFIG_EEH > extern int vfio_spapr_pci_eeh_open(struct pci_dev *pdev); > extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev); > > > >Otherwise it is "warning: ‘struct pci_dev’ declared inside parameter list". >For some reason I only see this warning when backporting this patch to 3.10 >and I do not see it in 3.16-rc7, I guess pci.h gets included somewhere. > > >> >>> >>> I also commented regarding the ifdef around all of vfio_spapr_eeh.c: >>> >>>Why not add a new CONFIG_VFIO_SPAPR_EEH option to handle this >>>instead? >>> >>> Did you disagree? The ifdef is pretty ugly. >>> >> >> I'll introduce CONFIG_VFIO_SPAPR_EEH. > > >So, Gavin, then the patchset is yours (again), ok? > Sure. Thanks for your help, Alexey. I was busy with other bugs with higher priority recently. I'm working on this. Thanks, Gavin > > > >> Thanks, >> Gavin >> --- drivers/vfio/Makefile | 4 ++-- drivers/vfio/vfio_spapr_eeh.c | 6 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile index 50e30bc..4891cca 100644 --- a/drivers/vfio/Makefile +++ b/drivers/vfio/Makefile @@ -1,5 +1,5 @@ obj-$(CONFIG_VFIO) += vfio.o obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o -obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o -obj-$(CONFIG_EEH) += vfio_spapr_eeh.o +obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o \ +vfio_spapr_eeh.o obj-$(CONFIG_VFIO_PCI) += pci/ diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c index f834b4c..1a93e83 100644 --- a/drivers/vfio/vfio_spapr_eeh.c +++ b/drivers/vfio/vfio_spapr_eeh.c @@ -14,15 +14,19 @@ #include /* We might build address mapping here for "fast" path later */ +#ifdef CONFIG_EEH + int vfio_spapr_pci_eeh_open(struct pci_dev *pdev) { return eeh_dev_open(pdev); } +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open); void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) { eeh_dev_release(pdev); } +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_release); long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, unsigned int cmd, unsigned long arg) @@ -85,3 +89,5 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, return ret; } +EXPORT_SYMBOL_GPL(vfio_spapr_iommu_eeh_ioctl); +#endif /* CONFIG_EEH */ >>> >>> >>> >> > > >-- >Alexey > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 2/4] vfio: spapr: Fix build error
On 08/06/2014 01:54 PM, Gavin Shan wrote: > On Tue, Aug 05, 2014 at 09:12:50PM -0600, Alex Williamson wrote: >> On Wed, 2014-08-06 at 12:48 +1000, Alexey Kardashevskiy wrote: >>> From: Gavin Shan >>> >>> The VFIO related components could be built as dynamic modules. >>> Unfortunately, CONFIG_EEH can't be configured to "m". The patch >>> fixes the build errors when configuring VFIO related components >>> as dynamic modules as follows: >>> >>> CC [M] drivers/vfio/vfio_iommu_spapr_tce.o >>> In file included from drivers/vfio/vfio.c:33:0: >>> include/linux/vfio.h:101:43: warning: ‘struct pci_dev’ declared \ >>> inside parameter list [enabled by default] >>> : >>> WRAParch/powerpc/boot/zImage.pseries >>> WRAParch/powerpc/boot/zImage.maple >>> WRAParch/powerpc/boot/zImage.pmac >>> WRAParch/powerpc/boot/zImage.epapr >>> MODPOST 1818 modules >>> ERROR: ".vfio_spapr_iommu_eeh_ioctl" [drivers/vfio/vfio_iommu_spapr_tce.ko]\ >>> undefined! >>> ERROR: ".vfio_spapr_pci_eeh_open" [drivers/vfio/pci/vfio-pci.ko] undefined! >>> ERROR: ".vfio_spapr_pci_eeh_release" [drivers/vfio/pci/vfio-pci.ko] >>> undefined! >>> >>> Reported-by: Alexey Kardashevskiy >>> Signed-off-by: Gavin Shan >>> [removed include "pci.h" in vfio.c] >>> Signed-off-by: Alexey Kardashevskiy >>> --- >>> Changes: >>> v2: >>> * removed #include from vfio.c and tested > > Appreciated for Alexey's help on it :) My bad, that was wrong actually, we still need this: diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 25a0fbd..224128a 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -98,6 +98,7 @@ extern int vfio_external_user_iommu_id(struct vfio_group *group); extern long vfio_external_check_extension(struct vfio_group *group, unsigned long arg); +struct pci_dev; #ifdef CONFIG_EEH extern int vfio_spapr_pci_eeh_open(struct pci_dev *pdev); extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev); Otherwise it is "warning: ‘struct pci_dev’ declared inside parameter list". For some reason I only see this warning when backporting this patch to 3.10 and I do not see it in 3.16-rc7, I guess pci.h gets included somewhere. > >> >> I also commented regarding the ifdef around all of vfio_spapr_eeh.c: >> >>Why not add a new CONFIG_VFIO_SPAPR_EEH option to handle this >>instead? >> >> Did you disagree? The ifdef is pretty ugly. >> > > I'll introduce CONFIG_VFIO_SPAPR_EEH. So, Gavin, then the patchset is yours (again), ok? > Thanks, > Gavin > >>> --- >>> drivers/vfio/Makefile | 4 ++-- >>> drivers/vfio/vfio_spapr_eeh.c | 6 ++ >>> 2 files changed, 8 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile >>> index 50e30bc..4891cca 100644 >>> --- a/drivers/vfio/Makefile >>> +++ b/drivers/vfio/Makefile >>> @@ -1,5 +1,5 @@ >>> obj-$(CONFIG_VFIO) += vfio.o >>> obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o >>> -obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o >>> -obj-$(CONFIG_EEH) += vfio_spapr_eeh.o >>> +obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o \ >>> + vfio_spapr_eeh.o >>> obj-$(CONFIG_VFIO_PCI) += pci/ >>> diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c >>> index f834b4c..1a93e83 100644 >>> --- a/drivers/vfio/vfio_spapr_eeh.c >>> +++ b/drivers/vfio/vfio_spapr_eeh.c >>> @@ -14,15 +14,19 @@ >>> #include >>> >>> /* We might build address mapping here for "fast" path later */ >>> +#ifdef CONFIG_EEH >>> + >>> int vfio_spapr_pci_eeh_open(struct pci_dev *pdev) >>> { >>> return eeh_dev_open(pdev); >>> } >>> +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open); >>> >>> void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) >>> { >>> eeh_dev_release(pdev); >>> } >>> +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_release); >>> >>> long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, >>> unsigned int cmd, unsigned long arg) >>> @@ -85,3 +89,5 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, >>> >>> return ret; >>> } >>> +EXPORT_SYMBOL_GPL(vfio_spapr_iommu_eeh_ioctl); >>> +#endif /* CONFIG_EEH */ >> >> >> > -- Alexey -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 2/4] vfio: spapr: Fix build error
On Tue, Aug 05, 2014 at 09:12:50PM -0600, Alex Williamson wrote: >On Wed, 2014-08-06 at 12:48 +1000, Alexey Kardashevskiy wrote: >> From: Gavin Shan >> >> The VFIO related components could be built as dynamic modules. >> Unfortunately, CONFIG_EEH can't be configured to "m". The patch >> fixes the build errors when configuring VFIO related components >> as dynamic modules as follows: >> >> CC [M] drivers/vfio/vfio_iommu_spapr_tce.o >> In file included from drivers/vfio/vfio.c:33:0: >> include/linux/vfio.h:101:43: warning: ‘struct pci_dev’ declared \ >> inside parameter list [enabled by default] >> : >> WRAParch/powerpc/boot/zImage.pseries >> WRAParch/powerpc/boot/zImage.maple >> WRAParch/powerpc/boot/zImage.pmac >> WRAParch/powerpc/boot/zImage.epapr >> MODPOST 1818 modules >> ERROR: ".vfio_spapr_iommu_eeh_ioctl" [drivers/vfio/vfio_iommu_spapr_tce.ko]\ >> undefined! >> ERROR: ".vfio_spapr_pci_eeh_open" [drivers/vfio/pci/vfio-pci.ko] undefined! >> ERROR: ".vfio_spapr_pci_eeh_release" [drivers/vfio/pci/vfio-pci.ko] >> undefined! >> >> Reported-by: Alexey Kardashevskiy >> Signed-off-by: Gavin Shan >> [removed include "pci.h" in vfio.c] >> Signed-off-by: Alexey Kardashevskiy >> --- >> Changes: >> v2: >> * removed #include from vfio.c and tested Appreciated for Alexey's help on it :) > >I also commented regarding the ifdef around all of vfio_spapr_eeh.c: > >Why not add a new CONFIG_VFIO_SPAPR_EEH option to handle this >instead? > >Did you disagree? The ifdef is pretty ugly. > I'll introduce CONFIG_VFIO_SPAPR_EEH. Thanks, Gavin >> --- >> drivers/vfio/Makefile | 4 ++-- >> drivers/vfio/vfio_spapr_eeh.c | 6 ++ >> 2 files changed, 8 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile >> index 50e30bc..4891cca 100644 >> --- a/drivers/vfio/Makefile >> +++ b/drivers/vfio/Makefile >> @@ -1,5 +1,5 @@ >> obj-$(CONFIG_VFIO) += vfio.o >> obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o >> -obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o >> -obj-$(CONFIG_EEH) += vfio_spapr_eeh.o >> +obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o \ >> + vfio_spapr_eeh.o >> obj-$(CONFIG_VFIO_PCI) += pci/ >> diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c >> index f834b4c..1a93e83 100644 >> --- a/drivers/vfio/vfio_spapr_eeh.c >> +++ b/drivers/vfio/vfio_spapr_eeh.c >> @@ -14,15 +14,19 @@ >> #include >> >> /* We might build address mapping here for "fast" path later */ >> +#ifdef CONFIG_EEH >> + >> int vfio_spapr_pci_eeh_open(struct pci_dev *pdev) >> { >> return eeh_dev_open(pdev); >> } >> +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open); >> >> void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) >> { >> eeh_dev_release(pdev); >> } >> +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_release); >> >> long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, >> unsigned int cmd, unsigned long arg) >> @@ -85,3 +89,5 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, >> >> return ret; >> } >> +EXPORT_SYMBOL_GPL(vfio_spapr_iommu_eeh_ioctl); >> +#endif /* CONFIG_EEH */ > > > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 2/4] vfio: spapr: Fix build error
On Wed, 2014-08-06 at 12:48 +1000, Alexey Kardashevskiy wrote: > From: Gavin Shan > > The VFIO related components could be built as dynamic modules. > Unfortunately, CONFIG_EEH can't be configured to "m". The patch > fixes the build errors when configuring VFIO related components > as dynamic modules as follows: > > CC [M] drivers/vfio/vfio_iommu_spapr_tce.o > In file included from drivers/vfio/vfio.c:33:0: > include/linux/vfio.h:101:43: warning: ‘struct pci_dev’ declared \ > inside parameter list [enabled by default] > : > WRAParch/powerpc/boot/zImage.pseries > WRAParch/powerpc/boot/zImage.maple > WRAParch/powerpc/boot/zImage.pmac > WRAParch/powerpc/boot/zImage.epapr > MODPOST 1818 modules > ERROR: ".vfio_spapr_iommu_eeh_ioctl" [drivers/vfio/vfio_iommu_spapr_tce.ko]\ > undefined! > ERROR: ".vfio_spapr_pci_eeh_open" [drivers/vfio/pci/vfio-pci.ko] undefined! > ERROR: ".vfio_spapr_pci_eeh_release" [drivers/vfio/pci/vfio-pci.ko] undefined! > > Reported-by: Alexey Kardashevskiy > Signed-off-by: Gavin Shan > [removed include "pci.h" in vfio.c] > Signed-off-by: Alexey Kardashevskiy > --- > Changes: > v2: > * removed #include from vfio.c and tested I also commented regarding the ifdef around all of vfio_spapr_eeh.c: Why not add a new CONFIG_VFIO_SPAPR_EEH option to handle this instead? Did you disagree? The ifdef is pretty ugly. > --- > drivers/vfio/Makefile | 4 ++-- > drivers/vfio/vfio_spapr_eeh.c | 6 ++ > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile > index 50e30bc..4891cca 100644 > --- a/drivers/vfio/Makefile > +++ b/drivers/vfio/Makefile > @@ -1,5 +1,5 @@ > obj-$(CONFIG_VFIO) += vfio.o > obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o > -obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o > -obj-$(CONFIG_EEH) += vfio_spapr_eeh.o > +obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o \ > + vfio_spapr_eeh.o > obj-$(CONFIG_VFIO_PCI) += pci/ > diff --git a/drivers/vfio/vfio_spapr_eeh.c b/drivers/vfio/vfio_spapr_eeh.c > index f834b4c..1a93e83 100644 > --- a/drivers/vfio/vfio_spapr_eeh.c > +++ b/drivers/vfio/vfio_spapr_eeh.c > @@ -14,15 +14,19 @@ > #include > > /* We might build address mapping here for "fast" path later */ > +#ifdef CONFIG_EEH > + > int vfio_spapr_pci_eeh_open(struct pci_dev *pdev) > { > return eeh_dev_open(pdev); > } > +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_open); > > void vfio_spapr_pci_eeh_release(struct pci_dev *pdev) > { > eeh_dev_release(pdev); > } > +EXPORT_SYMBOL_GPL(vfio_spapr_pci_eeh_release); > > long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, > unsigned int cmd, unsigned long arg) > @@ -85,3 +89,5 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, > > return ret; > } > +EXPORT_SYMBOL_GPL(vfio_spapr_iommu_eeh_ioctl); > +#endif /* CONFIG_EEH */ -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html