[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <21fbec11-94dc-4189-b9a8-041840ebf913@amd.com>
Date: Fri, 15 Nov 2024 13:46:01 -0600
From: "Bowman, Terry" <terry.bowman@....com>
To: Li Ming <ming4.li@...look.com>, Lukas Wunner <lukas@...ner.de>
Cc: linux-cxl@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org, nifan.cxl@...il.com, ming4.li@...el.com,
dave@...olabs.net, jonathan.cameron@...wei.com, dave.jiang@...el.com,
alison.schofield@...el.com, vishal.l.verma@...el.com,
dan.j.williams@...el.com, bhelgaas@...gle.com, mahesh@...ux.ibm.com,
ira.weiny@...el.com, oohall@...il.com, Benjamin.Cheatham@....com,
rrichter@....com, nathan.fontenot@....com,
Smita.KoralahalliChannabasappa@....com
Subject: Re: [PATCH v3 05/15] PCI/AER: Add CXL PCIe port correctable error
support in AER service driver
On 11/15/2024 8:49 AM, Li Ming wrote:
>
> On 2024/11/15 2:41, Bowman, Terry wrote:
>> Hi Lukas,
>>
>> I added comments below.
>>
>> On 11/14/2024 10:44 AM, Lukas Wunner wrote:
>>> On Wed, Nov 13, 2024 at 03:54:19PM -0600, Terry Bowman wrote:
>>>> @@ -1115,8 +1131,11 @@ static void pci_aer_handle_error(struct pci_dev *dev, struct aer_err_info *info)
>>>>
>>>> static void handle_error_source(struct pci_dev *dev, struct aer_err_info *info)
>>>> {
>>>> - cxl_handle_error(dev, info);
>>>> - pci_aer_handle_error(dev, info);
>>>> + if (is_internal_error(info) && handles_cxl_errors(dev))
>>>> + cxl_handle_error(dev, info);
>>>> + else
>>>> + pci_aer_handle_error(dev, info);
>>>> +
>>>> pci_dev_put(dev);
>>>> }
>>> If you just do this at the top of cxl_handle_error()...
>>>
>>> if (!is_internal_error(info))
>>> return;
>>>
>>> ...you avoid the need to move is_internal_error() around and the
>>> patch becomes simpler and easier to review.
>> If is_internal_error()==0, then pci_aer_handle_error() should be called to process the PCIe error. Your suggestion would require returning a value from cxl_handle_error(). And then more "if" logic would be required for the cxl_handle_error() return value. Should both is_internal_error() and handles_cxl_errors()be moved into cxl_handle_error()? Would give this:
>>
>> static void handle_error_source(struct pci_dev *dev, struct aer_err_info *info)
>> {
>> - cxl_handle_error(dev, info);
>> - pci_aer_handle_error(dev, info);
>> + if (!cxl_handle_error(dev, info))
>> + pci_aer_handle_error(dev, info);
>> +
>> pci_dev_put(dev);
>> }
>>
We could do that. And with that change it might need handles_cxl_errors() renamed
to something more correct, like handle_cxl_error()?
Regards,
Terry
Powered by blists - more mailing lists