diff mbox

pci: add pci_clear_master() stub for !CONFIG_PCI

Message ID 1457476481-13654-1-git-send-email-michael.auchter@ni.com
State Not Applicable
Headers show

Commit Message

Michael Auchter March 8, 2016, 10:34 p.m. UTC
Add a stub for pci_clear_master() for when CONFIG_PCI is not set,
similar to what's done for pci_set_master().

Signed-off-by: Michael Auchter <michael.auchter@ni.com>
---
 include/linux/pci.h | 1 +
 1 file changed, 1 insertion(+)

Comments

Bjorn Helgaas March 8, 2016, 11:10 p.m. UTC | #1
Hi Michael,

On Tue, Mar 08, 2016 at 04:34:41PM -0600, Michael Auchter wrote:
> Add a stub for pci_clear_master() for when CONFIG_PCI is not set,
> similar to what's done for pci_set_master().

Does this fix a problem?  If so, what is it?  Some driver that doesn't
build when CONFIG_PCI is not set?

> Signed-off-by: Michael Auchter <michael.auchter@ni.com>
> ---
>  include/linux/pci.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 2771625..5f684d0 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1425,6 +1425,7 @@ static inline struct pci_dev *pci_get_class(unsigned int class,
>  #define pci_dev_put(dev)	do { } while (0)
>  
>  static inline void pci_set_master(struct pci_dev *dev) { }
> +static inline void pci_clear_master(struct pci_dev *dev) { }
>  static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
>  static inline void pci_disable_device(struct pci_dev *dev) { }
>  static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
> -- 
> 2.1.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael Auchter March 9, 2016, 12:39 a.m. UTC | #2
On Tue, Mar 08, 2016 at 05:10:17PM -0600, Bjorn Helgaas wrote:
> Hi Michael,
> 
> On Tue, Mar 08, 2016 at 04:34:41PM -0600, Michael Auchter wrote:
> > Add a stub for pci_clear_master() for when CONFIG_PCI is not set,
> > similar to what's done for pci_set_master().
> 
> Does this fix a problem?  If so, what is it?  Some driver that doesn't
> build when CONFIG_PCI is not set?

I ran into a build failure caused by this not being defined while
compile testing an out-of-tree driver with various configs. It seemed to
me that the lack of a stub may have just been an oversight from when
pci_clear_master() was added.

It looks like all in-tree users of pci_clear_master() correctly declare
a dependency on PCI via Kconfig, so this doesn't really fix a problem,
just makes pci_clear_master more symmetric with pci_set_master.

Cheers,
 Michael
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bjorn Helgaas March 9, 2016, 4:56 p.m. UTC | #3
On Tue, Mar 08, 2016 at 06:39:56PM -0600, Michael Auchter wrote:
> On Tue, Mar 08, 2016 at 05:10:17PM -0600, Bjorn Helgaas wrote:
> > Hi Michael,
> > 
> > On Tue, Mar 08, 2016 at 04:34:41PM -0600, Michael Auchter wrote:
> > > Add a stub for pci_clear_master() for when CONFIG_PCI is not set,
> > > similar to what's done for pci_set_master().
> > 
> > Does this fix a problem?  If so, what is it?  Some driver that doesn't
> > build when CONFIG_PCI is not set?
> 
> I ran into a build failure caused by this not being defined while
> compile testing an out-of-tree driver with various configs. It seemed to
> me that the lack of a stub may have just been an oversight from when
> pci_clear_master() was added.
> 
> It looks like all in-tree users of pci_clear_master() correctly declare
> a dependency on PCI via Kconfig, so this doesn't really fix a problem,
> just makes pci_clear_master more symmetric with pci_set_master.

We define a lot of empty stubs when CONFIG_PCI is not set.  I'm not
sure all of them make sense, so I'm a little hesitant to add more.

If I had time, I think it would be really interesting to turn off
CONFIG_PCI, remove some of the existing stubs, and see what breaks.
Then we could look at the actual code and figure out whether the best
solution is to keep the stubs or to add CONFIG_PCI dependencies, add
CONFIG_PCI #ifdefs, etc.

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/pci.h b/include/linux/pci.h
index 2771625..5f684d0 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1425,6 +1425,7 @@  static inline struct pci_dev *pci_get_class(unsigned int class,
 #define pci_dev_put(dev)	do { } while (0)
 
 static inline void pci_set_master(struct pci_dev *dev) { }
+static inline void pci_clear_master(struct pci_dev *dev) { }
 static inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
 static inline void pci_disable_device(struct pci_dev *dev) { }
 static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)