Commit 8f5c335e authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Bjorn Helgaas

crypto: qat - simplify adf_enable_aer()

A struct pci_driver is shared across all device instances, so assigning
pci_driver.err_handler once per device isn't really sensible.

Set adf_driver.err_handler statically instead of in adf_enable_aer().
This removes a use of pci_dev->driver, which is a step toward removing
pci_dev->driver altogether.

Since adf_enable_aer() returns zero unconditionally, make it a void
function.

Link: https://lore.kernel.org/r/20211004125935.2300113-10-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent a534ff3f
...@@ -247,11 +247,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -247,11 +247,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_master(pdev); pci_set_master(pdev);
if (adf_enable_aer(accel_dev)) { adf_enable_aer(accel_dev);
dev_err(&pdev->dev, "Failed to enable aer.\n");
ret = -EFAULT;
goto out_err;
}
if (pci_save_state(pdev)) { if (pci_save_state(pdev)) {
dev_err(&pdev->dev, "Failed to save pci state.\n"); dev_err(&pdev->dev, "Failed to save pci state.\n");
...@@ -304,6 +300,7 @@ static struct pci_driver adf_driver = { ...@@ -304,6 +300,7 @@ static struct pci_driver adf_driver = {
.probe = adf_probe, .probe = adf_probe,
.remove = adf_remove, .remove = adf_remove,
.sriov_configure = adf_sriov_configure, .sriov_configure = adf_sriov_configure,
.err_handler = &adf_err_handler,
}; };
module_pci_driver(adf_driver); module_pci_driver(adf_driver);
......
...@@ -33,6 +33,7 @@ static struct pci_driver adf_driver = { ...@@ -33,6 +33,7 @@ static struct pci_driver adf_driver = {
.probe = adf_probe, .probe = adf_probe,
.remove = adf_remove, .remove = adf_remove,
.sriov_configure = adf_sriov_configure, .sriov_configure = adf_sriov_configure,
.err_handler = &adf_err_handler,
}; };
static void adf_cleanup_pci_dev(struct adf_accel_dev *accel_dev) static void adf_cleanup_pci_dev(struct adf_accel_dev *accel_dev)
...@@ -192,11 +193,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -192,11 +193,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
} }
pci_set_master(pdev); pci_set_master(pdev);
if (adf_enable_aer(accel_dev)) { adf_enable_aer(accel_dev);
dev_err(&pdev->dev, "Failed to enable aer\n");
ret = -EFAULT;
goto out_err_free_reg;
}
if (pci_save_state(pdev)) { if (pci_save_state(pdev)) {
dev_err(&pdev->dev, "Failed to save pci state\n"); dev_err(&pdev->dev, "Failed to save pci state\n");
......
...@@ -33,6 +33,7 @@ static struct pci_driver adf_driver = { ...@@ -33,6 +33,7 @@ static struct pci_driver adf_driver = {
.probe = adf_probe, .probe = adf_probe,
.remove = adf_remove, .remove = adf_remove,
.sriov_configure = adf_sriov_configure, .sriov_configure = adf_sriov_configure,
.err_handler = &adf_err_handler,
}; };
static void adf_cleanup_pci_dev(struct adf_accel_dev *accel_dev) static void adf_cleanup_pci_dev(struct adf_accel_dev *accel_dev)
...@@ -192,11 +193,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -192,11 +193,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
} }
pci_set_master(pdev); pci_set_master(pdev);
if (adf_enable_aer(accel_dev)) { adf_enable_aer(accel_dev);
dev_err(&pdev->dev, "Failed to enable aer\n");
ret = -EFAULT;
goto out_err_free_reg;
}
if (pci_save_state(pdev)) { if (pci_save_state(pdev)) {
dev_err(&pdev->dev, "Failed to save pci state\n"); dev_err(&pdev->dev, "Failed to save pci state\n");
......
...@@ -166,11 +166,12 @@ static void adf_resume(struct pci_dev *pdev) ...@@ -166,11 +166,12 @@ static void adf_resume(struct pci_dev *pdev)
dev_info(&pdev->dev, "Device is up and running\n"); dev_info(&pdev->dev, "Device is up and running\n");
} }
static const struct pci_error_handlers adf_err_handler = { const struct pci_error_handlers adf_err_handler = {
.error_detected = adf_error_detected, .error_detected = adf_error_detected,
.slot_reset = adf_slot_reset, .slot_reset = adf_slot_reset,
.resume = adf_resume, .resume = adf_resume,
}; };
EXPORT_SYMBOL_GPL(adf_err_handler);
/** /**
* adf_enable_aer() - Enable Advance Error Reporting for acceleration device * adf_enable_aer() - Enable Advance Error Reporting for acceleration device
...@@ -179,17 +180,12 @@ static const struct pci_error_handlers adf_err_handler = { ...@@ -179,17 +180,12 @@ static const struct pci_error_handlers adf_err_handler = {
* Function enables PCI Advance Error Reporting for the * Function enables PCI Advance Error Reporting for the
* QAT acceleration device accel_dev. * QAT acceleration device accel_dev.
* To be used by QAT device specific drivers. * To be used by QAT device specific drivers.
*
* Return: 0 on success, error code otherwise.
*/ */
int adf_enable_aer(struct adf_accel_dev *accel_dev) void adf_enable_aer(struct adf_accel_dev *accel_dev)
{ {
struct pci_dev *pdev = accel_to_pci_dev(accel_dev); struct pci_dev *pdev = accel_to_pci_dev(accel_dev);
struct pci_driver *pdrv = pdev->driver;
pdrv->err_handler = &adf_err_handler;
pci_enable_pcie_error_reporting(pdev); pci_enable_pcie_error_reporting(pdev);
return 0;
} }
EXPORT_SYMBOL_GPL(adf_enable_aer); EXPORT_SYMBOL_GPL(adf_enable_aer);
......
...@@ -95,7 +95,8 @@ void adf_ae_fw_release(struct adf_accel_dev *accel_dev); ...@@ -95,7 +95,8 @@ void adf_ae_fw_release(struct adf_accel_dev *accel_dev);
int adf_ae_start(struct adf_accel_dev *accel_dev); int adf_ae_start(struct adf_accel_dev *accel_dev);
int adf_ae_stop(struct adf_accel_dev *accel_dev); int adf_ae_stop(struct adf_accel_dev *accel_dev);
int adf_enable_aer(struct adf_accel_dev *accel_dev); extern const struct pci_error_handlers adf_err_handler;
void adf_enable_aer(struct adf_accel_dev *accel_dev);
void adf_disable_aer(struct adf_accel_dev *accel_dev); void adf_disable_aer(struct adf_accel_dev *accel_dev);
void adf_reset_sbr(struct adf_accel_dev *accel_dev); void adf_reset_sbr(struct adf_accel_dev *accel_dev);
void adf_reset_flr(struct adf_accel_dev *accel_dev); void adf_reset_flr(struct adf_accel_dev *accel_dev);
......
...@@ -33,6 +33,7 @@ static struct pci_driver adf_driver = { ...@@ -33,6 +33,7 @@ static struct pci_driver adf_driver = {
.probe = adf_probe, .probe = adf_probe,
.remove = adf_remove, .remove = adf_remove,
.sriov_configure = adf_sriov_configure, .sriov_configure = adf_sriov_configure,
.err_handler = &adf_err_handler,
}; };
static void adf_cleanup_pci_dev(struct adf_accel_dev *accel_dev) static void adf_cleanup_pci_dev(struct adf_accel_dev *accel_dev)
...@@ -192,11 +193,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -192,11 +193,7 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
} }
pci_set_master(pdev); pci_set_master(pdev);
if (adf_enable_aer(accel_dev)) { adf_enable_aer(accel_dev);
dev_err(&pdev->dev, "Failed to enable aer\n");
ret = -EFAULT;
goto out_err_free_reg;
}
if (pci_save_state(pdev)) { if (pci_save_state(pdev)) {
dev_err(&pdev->dev, "Failed to save pci state\n"); dev_err(&pdev->dev, "Failed to save pci state\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment