2023-03-07 20:27:47

by Bjorn Helgaas

[permalink] [raw]
Subject: [PATCH] habanalabs: Drop redundant pci_enable_pcie_error_reporting()

From: Bjorn Helgaas <[email protected]>

pci_enable_pcie_error_reporting() enables the device to send ERR_*
Messages. Since f26e58bf6f54 ("PCI/AER: Enable error reporting when AER is
native"), the PCI core does this for all devices during enumeration, so the
driver doesn't need to do it itself.

Remove the redundant pci_enable_pcie_error_reporting() call from the
driver. Also remove the corresponding pci_disable_pcie_error_reporting()
from the driver .remove() path.

Note that this only controls ERR_* Messages from the device. An ERR_*
Message may cause the Root Port to generate an interrupt, depending on the
AER Root Error Command register managed by the AER service driver.

Signed-off-by: Bjorn Helgaas <[email protected]>
---
drivers/accel/habanalabs/common/habanalabs_drv.c | 5 -----
1 file changed, 5 deletions(-)

diff --git a/drivers/accel/habanalabs/common/habanalabs_drv.c b/drivers/accel/habanalabs/common/habanalabs_drv.c
index 03dae57dc838..26f65aa21079 100644
--- a/drivers/accel/habanalabs/common/habanalabs_drv.c
+++ b/drivers/accel/habanalabs/common/habanalabs_drv.c
@@ -12,7 +12,6 @@
#include "../include/hw_ip/pci/pci_general.h"

#include <linux/pci.h>
-#include <linux/aer.h>
#include <linux/module.h>

#define CREATE_TRACE_POINTS
@@ -550,8 +549,6 @@ static int hl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)

pci_set_drvdata(pdev, hdev);

- pci_enable_pcie_error_reporting(pdev);
-
rc = hl_device_init(hdev, hl_class);
if (rc) {
dev_err(&pdev->dev, "Fatal error during habanalabs device init\n");
@@ -562,7 +559,6 @@ static int hl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
return 0;

disable_device:
- pci_disable_pcie_error_reporting(pdev);
pci_set_drvdata(pdev, NULL);
destroy_hdev(hdev);

@@ -585,7 +581,6 @@ static void hl_pci_remove(struct pci_dev *pdev)
return;

hl_device_fini(hdev);
- pci_disable_pcie_error_reporting(pdev);
pci_set_drvdata(pdev, NULL);
destroy_hdev(hdev);
}
--
2.25.1



2023-03-08 12:37:46

by Oded Gabbay

[permalink] [raw]
Subject: Re: [PATCH] habanalabs: Drop redundant pci_enable_pcie_error_reporting()

On Tue, Mar 7, 2023 at 10:27 PM Bjorn Helgaas <[email protected]> wrote:
>
> From: Bjorn Helgaas <[email protected]>
>
> pci_enable_pcie_error_reporting() enables the device to send ERR_*
> Messages. Since f26e58bf6f54 ("PCI/AER: Enable error reporting when AER is
> native"), the PCI core does this for all devices during enumeration, so the
> driver doesn't need to do it itself.
>
> Remove the redundant pci_enable_pcie_error_reporting() call from the
> driver. Also remove the corresponding pci_disable_pcie_error_reporting()
> from the driver .remove() path.
>
> Note that this only controls ERR_* Messages from the device. An ERR_*
> Message may cause the Root Port to generate an interrupt, depending on the
> AER Root Error Command register managed by the AER service driver.
>
> Signed-off-by: Bjorn Helgaas <[email protected]>
> ---
> drivers/accel/habanalabs/common/habanalabs_drv.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/drivers/accel/habanalabs/common/habanalabs_drv.c b/drivers/accel/habanalabs/common/habanalabs_drv.c
> index 03dae57dc838..26f65aa21079 100644
> --- a/drivers/accel/habanalabs/common/habanalabs_drv.c
> +++ b/drivers/accel/habanalabs/common/habanalabs_drv.c
> @@ -12,7 +12,6 @@
> #include "../include/hw_ip/pci/pci_general.h"
>
> #include <linux/pci.h>
> -#include <linux/aer.h>
> #include <linux/module.h>
>
> #define CREATE_TRACE_POINTS
> @@ -550,8 +549,6 @@ static int hl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>
> pci_set_drvdata(pdev, hdev);
>
> - pci_enable_pcie_error_reporting(pdev);
> -
> rc = hl_device_init(hdev, hl_class);
> if (rc) {
> dev_err(&pdev->dev, "Fatal error during habanalabs device init\n");
> @@ -562,7 +559,6 @@ static int hl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> return 0;
>
> disable_device:
> - pci_disable_pcie_error_reporting(pdev);
> pci_set_drvdata(pdev, NULL);
> destroy_hdev(hdev);
>
> @@ -585,7 +581,6 @@ static void hl_pci_remove(struct pci_dev *pdev)
> return;
>
> hl_device_fini(hdev);
> - pci_disable_pcie_error_reporting(pdev);
> pci_set_drvdata(pdev, NULL);
> destroy_hdev(hdev);
> }
> --
> 2.25.1
>
Reviewed-by: Oded Gabbay <[email protected]>

Applied to -next
Thanks,
Oded