pci/aer: Get rid of aer_recover_work_func() forward declaration

Message ID 20180511163923.22116-1-bp@alien8.de
State Accepted
Delegated to: Bjorn Helgaas
Headers show
Series
  • pci/aer: Get rid of aer_recover_work_func() forward declaration
Related show

Commit Message

Borislav Petkov May 11, 2018, 4:39 p.m.
From: Borislav Petkov <bp@suse.de>

Just move the actual function up so that it is visible to its user
aer_recover_queue().

No functional changes.

Signed-off-by: Borislav Petkov <bp@suse.de>
---
 drivers/pci/pcie/aer/aerdrv_core.c | 45 +++++++++++++++---------------
 1 file changed, 22 insertions(+), 23 deletions(-)

Comments

Bjorn Helgaas May 11, 2018, 7 p.m. | #1
On Fri, May 11, 2018 at 06:39:23PM +0200, Borislav Petkov wrote:
> From: Borislav Petkov <bp@suse.de>
> 
> Just move the actual function up so that it is visible to its user
> aer_recover_queue().

Good idea.

Not *directly* related, but I'm really tired of the clutter of all these
separate files, and I'm thinking of squashing

  drivers/pci/pcie/aer/*       => drivers/pci/pcie/aer.c
  drivers/pci/pcie/portdrv*    => drivers/pci/pcie/portdrv.c
  drivers/pci/hotplug/pciehp*  => drivers/pci/hotplug/pciehp.c
  drivers/pci/hotplug/shpchp*  => drivers/pci/hotplug/shpchp.c
  etc.

That would let us make many more things static and (more importantly,
IMO), make it easier to browse the code.

> No functional changes.
> 
> Signed-off-by: Borislav Petkov <bp@suse.de>
> ---
>  drivers/pci/pcie/aer/aerdrv_core.c | 45 +++++++++++++++---------------
>  1 file changed, 22 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
> index 0ea5acc40323..a9e575189571 100644
> --- a/drivers/pci/pcie/aer/aerdrv_core.c
> +++ b/drivers/pci/pcie/aer/aerdrv_core.c
> @@ -567,8 +567,6 @@ static void handle_error_source(struct pcie_device *aerdev,
>  }
>  
>  #ifdef CONFIG_ACPI_APEI_PCIEAER
> -static void aer_recover_work_func(struct work_struct *work);
> -
>  #define AER_RECOVER_RING_ORDER		4
>  #define AER_RECOVER_RING_SIZE		(1 << AER_RECOVER_RING_ORDER)
>  
> @@ -582,6 +580,28 @@ struct aer_recover_entry {
>  
>  static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry,
>  		    AER_RECOVER_RING_SIZE);
> +
> +static void aer_recover_work_func(struct work_struct *work)
> +{
> +	struct aer_recover_entry entry;
> +	struct pci_dev *pdev;
> +
> +	while (kfifo_get(&aer_recover_ring, &entry)) {
> +		pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
> +						   entry.devfn);
> +		if (!pdev) {
> +			pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
> +			       entry.domain, entry.bus,
> +			       PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
> +			continue;
> +		}
> +		cper_print_aer(pdev, entry.severity, entry.regs);
> +		if (entry.severity != AER_CORRECTABLE)
> +			do_recovery(pdev, entry.severity);
> +		pci_dev_put(pdev);
> +	}
> +}
> +
>  /*
>   * Mutual exclusion for writers of aer_recover_ring, reader side don't
>   * need lock, because there is only one reader and lock is not needed
> @@ -611,27 +631,6 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
>  	spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
>  }
>  EXPORT_SYMBOL_GPL(aer_recover_queue);
> -
> -static void aer_recover_work_func(struct work_struct *work)
> -{
> -	struct aer_recover_entry entry;
> -	struct pci_dev *pdev;
> -
> -	while (kfifo_get(&aer_recover_ring, &entry)) {
> -		pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
> -						   entry.devfn);
> -		if (!pdev) {
> -			pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
> -			       entry.domain, entry.bus,
> -			       PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
> -			continue;
> -		}
> -		cper_print_aer(pdev, entry.severity, entry.regs);
> -		if (entry.severity != AER_CORRECTABLE)
> -			do_recovery(pdev, entry.severity);
> -		pci_dev_put(pdev);
> -	}
> -}
>  #endif
>  
>  /**
> -- 
> 2.17.0.391.g1f1cddd558b5
>
Borislav Petkov May 11, 2018, 7:08 p.m. | #2
On Fri, May 11, 2018 at 02:00:13PM -0500, Bjorn Helgaas wrote:
> On Fri, May 11, 2018 at 06:39:23PM +0200, Borislav Petkov wrote:
> > From: Borislav Petkov <bp@suse.de>
> > 
> > Just move the actual function up so that it is visible to its user
> > aer_recover_queue().
> 
> Good idea.
> 
> Not *directly* related, but I'm really tired of the clutter of all these
> separate files, and I'm thinking of squashing
> 
>   drivers/pci/pcie/aer/*       => drivers/pci/pcie/aer.c
>   drivers/pci/pcie/portdrv*    => drivers/pci/pcie/portdrv.c
>   drivers/pci/hotplug/pciehp*  => drivers/pci/hotplug/pciehp.c
>   drivers/pci/hotplug/shpchp*  => drivers/pci/hotplug/shpchp.c
>   etc.
> 
> That would let us make many more things static and (more importantly,
> IMO), make it easier to browse the code.

Yeah, it probably is of no use to have separate compilation units like

aerdriver-objs := aerdrv_errprint.o aerdrv_core.o aerdrv.o

for example, which practically get always built together.
Bjorn Helgaas May 30, 2018, 4:56 p.m. | #3
On Fri, May 11, 2018 at 06:39:23PM +0200, Borislav Petkov wrote:
> From: Borislav Petkov <bp@suse.de>
> 
> Just move the actual function up so that it is visible to its user
> aer_recover_queue().
> 
> No functional changes.
> 
> Signed-off-by: Borislav Petkov <bp@suse.de>

Applied to pci/aer for v4.18, thanks!

> ---
>  drivers/pci/pcie/aer/aerdrv_core.c | 45 +++++++++++++++---------------
>  1 file changed, 22 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
> index 0ea5acc40323..a9e575189571 100644
> --- a/drivers/pci/pcie/aer/aerdrv_core.c
> +++ b/drivers/pci/pcie/aer/aerdrv_core.c
> @@ -567,8 +567,6 @@ static void handle_error_source(struct pcie_device *aerdev,
>  }
>  
>  #ifdef CONFIG_ACPI_APEI_PCIEAER
> -static void aer_recover_work_func(struct work_struct *work);
> -
>  #define AER_RECOVER_RING_ORDER		4
>  #define AER_RECOVER_RING_SIZE		(1 << AER_RECOVER_RING_ORDER)
>  
> @@ -582,6 +580,28 @@ struct aer_recover_entry {
>  
>  static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry,
>  		    AER_RECOVER_RING_SIZE);
> +
> +static void aer_recover_work_func(struct work_struct *work)
> +{
> +	struct aer_recover_entry entry;
> +	struct pci_dev *pdev;
> +
> +	while (kfifo_get(&aer_recover_ring, &entry)) {
> +		pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
> +						   entry.devfn);
> +		if (!pdev) {
> +			pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
> +			       entry.domain, entry.bus,
> +			       PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
> +			continue;
> +		}
> +		cper_print_aer(pdev, entry.severity, entry.regs);
> +		if (entry.severity != AER_CORRECTABLE)
> +			do_recovery(pdev, entry.severity);
> +		pci_dev_put(pdev);
> +	}
> +}
> +
>  /*
>   * Mutual exclusion for writers of aer_recover_ring, reader side don't
>   * need lock, because there is only one reader and lock is not needed
> @@ -611,27 +631,6 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
>  	spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
>  }
>  EXPORT_SYMBOL_GPL(aer_recover_queue);
> -
> -static void aer_recover_work_func(struct work_struct *work)
> -{
> -	struct aer_recover_entry entry;
> -	struct pci_dev *pdev;
> -
> -	while (kfifo_get(&aer_recover_ring, &entry)) {
> -		pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
> -						   entry.devfn);
> -		if (!pdev) {
> -			pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
> -			       entry.domain, entry.bus,
> -			       PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
> -			continue;
> -		}
> -		cper_print_aer(pdev, entry.severity, entry.regs);
> -		if (entry.severity != AER_CORRECTABLE)
> -			do_recovery(pdev, entry.severity);
> -		pci_dev_put(pdev);
> -	}
> -}
>  #endif
>  
>  /**
> -- 
> 2.17.0.391.g1f1cddd558b5
>

Patch

diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
index 0ea5acc40323..a9e575189571 100644
--- a/drivers/pci/pcie/aer/aerdrv_core.c
+++ b/drivers/pci/pcie/aer/aerdrv_core.c
@@ -567,8 +567,6 @@  static void handle_error_source(struct pcie_device *aerdev,
 }
 
 #ifdef CONFIG_ACPI_APEI_PCIEAER
-static void aer_recover_work_func(struct work_struct *work);
-
 #define AER_RECOVER_RING_ORDER		4
 #define AER_RECOVER_RING_SIZE		(1 << AER_RECOVER_RING_ORDER)
 
@@ -582,6 +580,28 @@  struct aer_recover_entry {
 
 static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry,
 		    AER_RECOVER_RING_SIZE);
+
+static void aer_recover_work_func(struct work_struct *work)
+{
+	struct aer_recover_entry entry;
+	struct pci_dev *pdev;
+
+	while (kfifo_get(&aer_recover_ring, &entry)) {
+		pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
+						   entry.devfn);
+		if (!pdev) {
+			pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
+			       entry.domain, entry.bus,
+			       PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
+			continue;
+		}
+		cper_print_aer(pdev, entry.severity, entry.regs);
+		if (entry.severity != AER_CORRECTABLE)
+			do_recovery(pdev, entry.severity);
+		pci_dev_put(pdev);
+	}
+}
+
 /*
  * Mutual exclusion for writers of aer_recover_ring, reader side don't
  * need lock, because there is only one reader and lock is not needed
@@ -611,27 +631,6 @@  void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
 	spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
 }
 EXPORT_SYMBOL_GPL(aer_recover_queue);
-
-static void aer_recover_work_func(struct work_struct *work)
-{
-	struct aer_recover_entry entry;
-	struct pci_dev *pdev;
-
-	while (kfifo_get(&aer_recover_ring, &entry)) {
-		pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
-						   entry.devfn);
-		if (!pdev) {
-			pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
-			       entry.domain, entry.bus,
-			       PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
-			continue;
-		}
-		cper_print_aer(pdev, entry.severity, entry.regs);
-		if (entry.severity != AER_CORRECTABLE)
-			do_recovery(pdev, entry.severity);
-		pci_dev_put(pdev);
-	}
-}
 #endif
 
 /**