PCI/AER: Remove aer_recover_work_func() forward declaration
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> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
b09803b5e5
commit
ad4050dcda
@ -258,7 +258,6 @@ static void handle_error_source(struct pcie_device *aerdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_APEI_PCIEAER
|
#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_ORDER 4
|
||||||
#define AER_RECOVER_RING_SIZE (1 << AER_RECOVER_RING_ORDER)
|
#define AER_RECOVER_RING_SIZE (1 << AER_RECOVER_RING_ORDER)
|
||||||
@ -273,6 +272,30 @@ struct aer_recover_entry {
|
|||||||
|
|
||||||
static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry,
|
static DEFINE_KFIFO(aer_recover_ring, struct aer_recover_entry,
|
||||||
AER_RECOVER_RING_SIZE);
|
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_NONFATAL)
|
||||||
|
pcie_do_nonfatal_recovery(pdev);
|
||||||
|
else if (entry.severity == AER_FATAL)
|
||||||
|
pcie_do_fatal_recovery(pdev, PCIE_PORT_SERVICE_AER);
|
||||||
|
pci_dev_put(pdev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mutual exclusion for writers of aer_recover_ring, reader side don't
|
* 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
|
* need lock, because there is only one reader and lock is not needed
|
||||||
@ -302,29 +325,6 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
|
|||||||
spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
|
spin_unlock_irqrestore(&aer_recover_ring_lock, flags);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(aer_recover_queue);
|
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_NONFATAL)
|
|
||||||
pcie_do_nonfatal_recovery(pdev);
|
|
||||||
else if (entry.severity == AER_FATAL)
|
|
||||||
pcie_do_fatal_recovery(pdev, PCIE_PORT_SERVICE_AER);
|
|
||||||
pci_dev_put(pdev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user