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.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
a534ff3f4d
commit
8f5c335e34
@ -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 = {
|
|||||||
.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 = {
|
|||||||
.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)
|
|||||||
}
|
}
|
||||||
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 = {
|
|||||||
.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)
|
|||||||
}
|
}
|
||||||
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)
|
|||||||
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 = {
|
|||||||
* 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);
|
|||||||
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 = {
|
|||||||
.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)
|
|||||||
}
|
}
|
||||||
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");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user