Message ID | 20190828141443.5253-3-hch@lst.de |
---|---|
State | Not Applicable |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | [1/5] x86/pci: Remove an ifdef __KERNEL__ from pci.h | expand |
On Wed, 2019-08-28 at 16:14 +0200, Christoph Hellwig wrote: > Various helpers need the pci_sysdata just to dereference a single field > in it. Add a little helper that returns the properly typed sysdata > pointer to require a little less boilerplate code. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > arch/x86/include/asm/pci.h | 28 +++++++++++++--------------- > 1 file changed, 13 insertions(+), 15 deletions(-) > > diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h > index 6fa846920f5f..75fe28492290 100644 > --- a/arch/x86/include/asm/pci.h > +++ b/arch/x86/include/asm/pci.h > @@ -35,12 +35,15 @@ extern int noioapicreroute; > > #ifdef CONFIG_PCI > > +static inline struct pci_sysdata *to_pci_sysdata(struct pci_bus *bus) Can you make the argument const to avoid all the warnings from callers passing const struct pci_bus snip
On Wed, Aug 28, 2019 at 04:41:45PM +0000, Derrick, Jonathan wrote: > > diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h > > index 6fa846920f5f..75fe28492290 100644 > > --- a/arch/x86/include/asm/pci.h > > +++ b/arch/x86/include/asm/pci.h > > @@ -35,12 +35,15 @@ extern int noioapicreroute; > > > > #ifdef CONFIG_PCI > > > > +static inline struct pci_sysdata *to_pci_sysdata(struct pci_bus *bus) > Can you make the argument const to avoid all the warnings from callers > passing const struct pci_bus Yes, I already fixed this up after getting a build bot warning for a NUMA config (which seems to be the only one passing a const).
diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 6fa846920f5f..75fe28492290 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -35,12 +35,15 @@ extern int noioapicreroute; #ifdef CONFIG_PCI +static inline struct pci_sysdata *to_pci_sysdata(struct pci_bus *bus) +{ + return bus->sysdata; +} + #ifdef CONFIG_PCI_DOMAINS static inline int pci_domain_nr(struct pci_bus *bus) { - struct pci_sysdata *sd = bus->sysdata; - - return sd->domain; + return to_pci_sysdata(bus)->domain; } static inline int pci_proc_domain(struct pci_bus *bus) @@ -52,23 +55,20 @@ static inline int pci_proc_domain(struct pci_bus *bus) #ifdef CONFIG_PCI_MSI_IRQ_DOMAIN static inline void *_pci_root_bus_fwnode(struct pci_bus *bus) { - struct pci_sysdata *sd = bus->sysdata; - - return sd->fwnode; + return to_pci_sysdata(bus)->fwnode; } #define pci_root_bus_fwnode _pci_root_bus_fwnode #endif +#if IS_ENABLED(CONFIG_VMD) static inline bool is_vmd(struct pci_bus *bus) { -#if IS_ENABLED(CONFIG_VMD) - struct pci_sysdata *sd = bus->sysdata; - - return sd->vmd_domain; + return to_pci_sysdata(bus)->vmd_domain; +} #else - return false; -#endif +#define is_vmd(bus) false +#endif /* CONFIG_VMD */ } /* Can be used to override the logic in pci_scan_bus for skipping @@ -128,9 +128,7 @@ void native_restore_msi_irqs(struct pci_dev *dev); /* Returns the node based on pci bus */ static inline int __pcibus_to_node(const struct pci_bus *bus) { - const struct pci_sysdata *sd = bus->sysdata; - - return sd->node; + return to_pci_sysdata(bus)->node; } static inline const struct cpumask *
Various helpers need the pci_sysdata just to dereference a single field in it. Add a little helper that returns the properly typed sysdata pointer to require a little less boilerplate code. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/x86/include/asm/pci.h | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)