PCI: aerdrv: rework do_recovery
Move dev_printks for debug into do_recovery(). This allows do_recovery() to return void. Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Reviewed-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
Родитель
88da13bfab
Коммит
17e21854bd
|
@ -465,8 +465,7 @@ static pci_ers_result_t reset_link(struct pcie_device *aerdev,
|
|||
* error detected message to all downstream drivers within a hierarchy in
|
||||
* question and return the returned code.
|
||||
*/
|
||||
static pci_ers_result_t do_recovery(struct pcie_device *aerdev,
|
||||
struct pci_dev *dev,
|
||||
static void do_recovery(struct pcie_device *aerdev, struct pci_dev *dev,
|
||||
int severity)
|
||||
{
|
||||
pci_ers_result_t status, result = PCI_ERS_RESULT_RECOVERED;
|
||||
|
@ -484,10 +483,8 @@ static pci_ers_result_t do_recovery(struct pcie_device *aerdev,
|
|||
|
||||
if (severity == AER_FATAL) {
|
||||
result = reset_link(aerdev, dev);
|
||||
if (result != PCI_ERS_RESULT_RECOVERED) {
|
||||
/* TODO: Should panic here? */
|
||||
return result;
|
||||
}
|
||||
if (result != PCI_ERS_RESULT_RECOVERED)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
if (status == PCI_ERS_RESULT_CAN_RECOVER)
|
||||
|
@ -508,13 +505,22 @@ static pci_ers_result_t do_recovery(struct pcie_device *aerdev,
|
|||
report_slot_reset);
|
||||
}
|
||||
|
||||
if (status == PCI_ERS_RESULT_RECOVERED)
|
||||
broadcast_error_message(dev,
|
||||
if (status != PCI_ERS_RESULT_RECOVERED)
|
||||
goto failed;
|
||||
|
||||
broadcast_error_message(dev,
|
||||
state,
|
||||
"resume",
|
||||
report_resume);
|
||||
|
||||
return status;
|
||||
dev_printk(KERN_DEBUG, &dev->dev,
|
||||
"AER driver successfully recovered\n");
|
||||
return;
|
||||
|
||||
failed:
|
||||
/* TODO: Should kernel panic here? */
|
||||
dev_printk(KERN_DEBUG, &dev->dev,
|
||||
"AER driver didn't recover\n");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -529,7 +535,6 @@ static void handle_error_source(struct pcie_device *aerdev,
|
|||
struct pci_dev *dev,
|
||||
struct aer_err_info *info)
|
||||
{
|
||||
pci_ers_result_t status = 0;
|
||||
int pos;
|
||||
|
||||
if (info->severity == AER_CORRECTABLE) {
|
||||
|
@ -541,17 +546,8 @@ static void handle_error_source(struct pcie_device *aerdev,
|
|||
if (pos)
|
||||
pci_write_config_dword(dev, pos + PCI_ERR_COR_STATUS,
|
||||
info->status);
|
||||
} else {
|
||||
status = do_recovery(aerdev, dev, info->severity);
|
||||
if (status == PCI_ERS_RESULT_RECOVERED) {
|
||||
dev_printk(KERN_DEBUG, &dev->dev, "AER driver "
|
||||
"successfully recovered\n");
|
||||
} else {
|
||||
/* TODO: Should kernel panic here? */
|
||||
dev_printk(KERN_DEBUG, &dev->dev, "AER driver didn't "
|
||||
"recover\n");
|
||||
}
|
||||
}
|
||||
} else
|
||||
do_recovery(aerdev, dev, info->severity);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Загрузка…
Ссылка в новой задаче