[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221206180956.GA1361309@bhelgaas>
Date: Tue, 6 Dec 2022 12:09:56 -0600
From: Bjorn Helgaas <helgaas@...nel.org>
To: Serge Semin <fancer.lancer@...il.com>
Cc: Zhuo Chen <chenzhuo.1@...edance.com>,
sathyanarayanan.kuppuswamy@...ux.intel.com, bhelgaas@...gle.com,
ruscur@...sell.cc, oohall@...il.com, jdmason@...zu.us,
dave.jiang@...el.com, allenbh@...il.com, james.smart@...adcom.com,
dick.kennedy@...adcom.com, jejb@...ux.ibm.com,
martin.petersen@...cle.com, linuxppc-dev@...ts.ozlabs.org,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
ntb@...ts.linux.dev, linux-scsi@...r.kernel.org
Subject: Re: [PATCH v3 3/9] NTB: Remove pci_aer_clear_nonfatal_status() call
On Wed, Sep 28, 2022 at 02:03:55PM +0300, Serge Semin wrote:
> On Wed, Sep 28, 2022 at 06:59:40PM +0800, Zhuo Chen wrote:
> > There is no need to clear error status during init code, so remove it.
>
> Why do you think there isn't? Justify in more details.
Thanks for taking a look, Sergey! I agree we should leave it or add
the rationale here.
> > Signed-off-by: Zhuo Chen <chenzhuo.1@...edance.com>
> > ---
> > drivers/ntb/hw/idt/ntb_hw_idt.c | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/drivers/ntb/hw/idt/ntb_hw_idt.c b/drivers/ntb/hw/idt/ntb_hw_idt.c
> > index 0ed6f809ff2e..fed03217289d 100644
> > --- a/drivers/ntb/hw/idt/ntb_hw_idt.c
> > +++ b/drivers/ntb/hw/idt/ntb_hw_idt.c
> > @@ -2657,8 +2657,6 @@ static int idt_init_pci(struct idt_ntb_dev *ndev)
> > ret = pci_enable_pcie_error_reporting(pdev);
> > if (ret != 0)
> > dev_warn(&pdev->dev, "PCIe AER capability disabled\n");
> > - else /* Cleanup nonfatal error status before getting to init */
> > - pci_aer_clear_nonfatal_status(pdev);
I do think drivers should not need to clear errors; I think the PCI
core should be responsible for that.
And I think the core *does* do that in this path:
pci_init_capabilities
pci_aer_init
pci_aer_clear_status
pci_aer_raw_clear_status
pci_write_config_dword(pdev, aer + PCI_ERR_COR_STATUS)
pci_write_config_dword(pdev, aer + PCI_ERR_UNCOR_STATUS)
pci_aer_clear_nonfatal_status() clears only non-fatal uncorrectable
errors, while pci_aer_init() clears all correctable and all
uncorrectable errors, so the PCI core is already doing more than
idt_init_pci() does.
So I think this change is good because it removes some work from the
driver, but let me know if you think otherwise.
> >
> > /* First enable the PCI device */
> > ret = pcim_enable_device(pdev);
> > --
> > 2.30.1 (Apple Git-130)
> >
Powered by blists - more mailing lists