linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] vfio: fix link failures when CONFIG_PCI_MSI is disabled
@ 2016-02-03 20:51 Luis Henriques
  2016-02-12 18:17 ` Alex Williamson
  2016-02-17 21:05 ` [PATCH] PCI/MSI: stub pci_write_msi_msg " Luis Henriques
  0 siblings, 2 replies; 5+ messages in thread
From: Luis Henriques @ 2016-02-03 20:51 UTC (permalink / raw)
  To: Alex Williamson; +Cc: kvm, linux-kernel

The following link failure occurs when CONFIG_PCI_MSI is not set:

drivers/built-in.o: In function `vfio_msi_set_vector_signal':
:(.text+0x626640): undefined reference to `pci_write_msi_msg'

Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 drivers/vfio/pci/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig
index 02912f180c6d..b9dbfc9aeee1 100644
--- a/drivers/vfio/pci/Kconfig
+++ b/drivers/vfio/pci/Kconfig
@@ -1,6 +1,6 @@
 config VFIO_PCI
 	tristate "VFIO support for PCI devices"
-	depends on VFIO && PCI && EVENTFD
+	depends on VFIO && PCI_MSI && EVENTFD
 	select VFIO_VIRQFD
 	select IRQ_BYPASS_MANAGER
 	help

Cheers,
--
Luís

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] vfio: fix link failures when CONFIG_PCI_MSI is disabled
  2016-02-03 20:51 [PATCH] vfio: fix link failures when CONFIG_PCI_MSI is disabled Luis Henriques
@ 2016-02-12 18:17 ` Alex Williamson
  2016-02-17 15:37   ` Luis Henriques
  2016-02-17 21:05 ` [PATCH] PCI/MSI: stub pci_write_msi_msg " Luis Henriques
  1 sibling, 1 reply; 5+ messages in thread
From: Alex Williamson @ 2016-02-12 18:17 UTC (permalink / raw)
  To: Luis Henriques; +Cc: kvm, linux-kernel, linux-pci

On Wed, 3 Feb 2016 20:51:08 +0000
Luis Henriques <luis.henriques@canonical.com> wrote:

> The following link failure occurs when CONFIG_PCI_MSI is not set:
> 
> drivers/built-in.o: In function `vfio_msi_set_vector_signal':
> :(.text+0x626640): undefined reference to `pci_write_msi_msg'
> 
> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
> ---
>  drivers/vfio/pci/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig
> index 02912f180c6d..b9dbfc9aeee1 100644
> --- a/drivers/vfio/pci/Kconfig
> +++ b/drivers/vfio/pci/Kconfig
> @@ -1,6 +1,6 @@
>  config VFIO_PCI
>  	tristate "VFIO support for PCI devices"
> -	depends on VFIO && PCI && EVENTFD
> +	depends on VFIO && PCI_MSI && EVENTFD
>  	select VFIO_VIRQFD
>  	select IRQ_BYPASS_MANAGER
>  	help
> 


It seems like a better solution would be to have pci stub these out
with static inlines when !CONFIG_PCI_MSI, we already do that for quite
a lot of MSI and MSI-X callbacks.  MSI/X on the device clearly won't
work if the host doesn't support MSI, and maybe there are improvements
to be made there, but MSI is a subcomponent of vfio-pci, the module
itself shouldn't depend on MSI.  Thanks,

Alex

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] vfio: fix link failures when CONFIG_PCI_MSI is disabled
  2016-02-12 18:17 ` Alex Williamson
@ 2016-02-17 15:37   ` Luis Henriques
  0 siblings, 0 replies; 5+ messages in thread
From: Luis Henriques @ 2016-02-17 15:37 UTC (permalink / raw)
  To: Alex Williamson; +Cc: kvm, linux-kernel, linux-pci

On Fri, Feb 12, 2016 at 11:17:58AM -0700, Alex Williamson wrote:
> On Wed, 3 Feb 2016 20:51:08 +0000
> Luis Henriques <luis.henriques@canonical.com> wrote:
> 
> > The following link failure occurs when CONFIG_PCI_MSI is not set:
> > 
> > drivers/built-in.o: In function `vfio_msi_set_vector_signal':
> > :(.text+0x626640): undefined reference to `pci_write_msi_msg'
> > 
> > Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
> > ---
> >  drivers/vfio/pci/Kconfig | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig
> > index 02912f180c6d..b9dbfc9aeee1 100644
> > --- a/drivers/vfio/pci/Kconfig
> > +++ b/drivers/vfio/pci/Kconfig
> > @@ -1,6 +1,6 @@
> >  config VFIO_PCI
> >  	tristate "VFIO support for PCI devices"
> > -	depends on VFIO && PCI && EVENTFD
> > +	depends on VFIO && PCI_MSI && EVENTFD
> >  	select VFIO_VIRQFD
> >  	select IRQ_BYPASS_MANAGER
> >  	help
> > 
> 
> 
> It seems like a better solution would be to have pci stub these out
> with static inlines when !CONFIG_PCI_MSI, we already do that for quite
> a lot of MSI and MSI-X callbacks.  MSI/X on the device clearly won't
> work if the host doesn't support MSI, and maybe there are improvements
> to be made there, but MSI is a subcomponent of vfio-pci, the module
> itself shouldn't depend on MSI.  Thanks,
> 
> Alex
> 

Thanks for reviewing.  I'll submit a new patch later today, stubbing
pci_write_msi_msg() to fix this failure.

Cheers,
--
Luís

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] PCI/MSI: stub pci_write_msi_msg when CONFIG_PCI_MSI is disabled
  2016-02-03 20:51 [PATCH] vfio: fix link failures when CONFIG_PCI_MSI is disabled Luis Henriques
  2016-02-12 18:17 ` Alex Williamson
@ 2016-02-17 21:05 ` Luis Henriques
  2016-02-17 21:19   ` Alex Williamson
  1 sibling, 1 reply; 5+ messages in thread
From: Luis Henriques @ 2016-02-17 21:05 UTC (permalink / raw)
  To: Alex Williamson; +Cc: kvm, linux-kernel, Luis Henriques

Stubbing function pci_write_msi_msg when CONFIG_PCI_MSI is disabled fixes
a link failure in vfio:

drivers/built-in.o: In function `vfio_msi_set_vector_signal':
:(.text+0x626640): undefined reference to `pci_write_msi_msg'

Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 include/linux/msi.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/msi.h b/include/linux/msi.h
index a2a0068a8387..09dc375d11d8 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -105,18 +105,19 @@ struct msi_desc {
 
 struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc);
 void *msi_desc_to_pci_sysdata(struct msi_desc *desc);
+void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
 #else /* CONFIG_PCI_MSI */
 static inline void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
 {
 	return NULL;
 }
+static inline void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg) { }
 #endif /* CONFIG_PCI_MSI */
 
 struct msi_desc *alloc_msi_entry(struct device *dev);
 void free_msi_entry(struct msi_desc *entry);
 void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
 void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
-void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
 
 u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag);
 u32 __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] PCI/MSI: stub pci_write_msi_msg when CONFIG_PCI_MSI is disabled
  2016-02-17 21:05 ` [PATCH] PCI/MSI: stub pci_write_msi_msg " Luis Henriques
@ 2016-02-17 21:19   ` Alex Williamson
  0 siblings, 0 replies; 5+ messages in thread
From: Alex Williamson @ 2016-02-17 21:19 UTC (permalink / raw)
  To: Luis Henriques; +Cc: kvm, linux-kernel, Bjorn Helgaas, linux-pci

[cc +bjorn, +linux-pci]

On Wed, 17 Feb 2016 21:05:38 +0000
Luis Henriques <luis.henriques@canonical.com> wrote:

> Stubbing function pci_write_msi_msg when CONFIG_PCI_MSI is disabled fixes
> a link failure in vfio:
> 
> drivers/built-in.o: In function `vfio_msi_set_vector_signal':
> :(.text+0x626640): undefined reference to `pci_write_msi_msg'
> 
> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
> ---
>  include/linux/msi.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/include/linux/msi.h b/include/linux/msi.h
> index a2a0068a8387..09dc375d11d8 100644
> --- a/include/linux/msi.h
> +++ b/include/linux/msi.h
> @@ -105,18 +105,19 @@ struct msi_desc {
>  
>  struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc);
>  void *msi_desc_to_pci_sysdata(struct msi_desc *desc);
> +void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
>  #else /* CONFIG_PCI_MSI */
>  static inline void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
>  {
>  	return NULL;
>  }
> +static inline void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg) { }
>  #endif /* CONFIG_PCI_MSI */
>  
>  struct msi_desc *alloc_msi_entry(struct device *dev);
>  void free_msi_entry(struct msi_desc *entry);
>  void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
>  void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg);
> -void pci_write_msi_msg(unsigned int irq, struct msi_msg *msg);
>  
>  u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag);
>  u32 __pci_msi_desc_mask_irq(struct msi_desc *desc, u32 mask, u32 flag);

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-02-17 21:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-03 20:51 [PATCH] vfio: fix link failures when CONFIG_PCI_MSI is disabled Luis Henriques
2016-02-12 18:17 ` Alex Williamson
2016-02-17 15:37   ` Luis Henriques
2016-02-17 21:05 ` [PATCH] PCI/MSI: stub pci_write_msi_msg " Luis Henriques
2016-02-17 21:19   ` Alex Williamson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).