On Mon, May 10, 2021 at 02:45:29AM +0000, Krzysztof Wilczyński wrote: > At the moment, the global variable cpci_debug is declared in the > cpci_hotplug_core.c file. Since this variable has users outside of this > file and uses the extern keyword to change its visibility, move the > variable declaration to the header file. > > This resolves the following sparse warning: > > drivers/pci/hotplug/cpci_hotplug_core.c:47:5: warning: symbol 'cpci_debug' was not declared. Should it be static? > > Signed-off-by: Krzysztof Wilczyński <kw@xxxxxxxxx> > --- > drivers/pci/hotplug/cpci_hotplug.h | 3 +++ > drivers/pci/hotplug/cpci_hotplug_core.c | 1 - > drivers/pci/hotplug/cpci_hotplug_pci.c | 2 -- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/pci/hotplug/cpci_hotplug.h b/drivers/pci/hotplug/cpci_hotplug.h > index f33ff2bca414..3fdd1b9bd8c3 100644 > --- a/drivers/pci/hotplug/cpci_hotplug.h > +++ b/drivers/pci/hotplug/cpci_hotplug.h > @@ -75,6 +75,9 @@ int cpci_hp_unregister_bus(struct pci_bus *bus); > int cpci_hp_start(void); > int cpci_hp_stop(void); > > +/* Global variables */ > +extern int cpci_debug; > + > /* > * Internal function prototypes, these functions should not be used by > * board/chassis drivers. > diff --git a/drivers/pci/hotplug/cpci_hotplug_core.c b/drivers/pci/hotplug/cpci_hotplug_core.c > index d0559d2faf50..7a78e6340291 100644 > --- a/drivers/pci/hotplug/cpci_hotplug_core.c > +++ b/drivers/pci/hotplug/cpci_hotplug_core.c > @@ -44,7 +44,6 @@ static DECLARE_RWSEM(list_rwsem); > static LIST_HEAD(slot_list); > static int slots; > static atomic_t extracting; > -int cpci_debug; We can add a declaration, but we still need a *definition* somewhere, right? drivers/pci/hotplug/ has several drivers that are split over multiple files. IMHO there is zero benefit to splitting them into multiple files and one of the downsides is things like this that shouldn't be global, but are global because of the split. Not sure it's worth the churn of squashing them together, at least for ancient things like this. pciehp is a perennial thorn in my side, though. Every time I look for something, I try two or three files before finding the right one. > static struct cpci_hp_controller *controller; > static struct task_struct *cpci_thread; > static int thread_finished; > diff --git a/drivers/pci/hotplug/cpci_hotplug_pci.c b/drivers/pci/hotplug/cpci_hotplug_pci.c > index 2c16adb7f4ec..6c48066acb44 100644 > --- a/drivers/pci/hotplug/cpci_hotplug_pci.c > +++ b/drivers/pci/hotplug/cpci_hotplug_pci.c > @@ -19,8 +19,6 @@ > > #define MY_NAME "cpci_hotplug" > > -extern int cpci_debug; > - > #define dbg(format, arg...) \ > do { \ > if (cpci_debug) \ > -- > 2.31.1 >