[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<VI1PR10MB201646F611CAC37D90C7D1A2CE262@VI1PR10MB2016.EURPRD10.PROD.OUTLOOK.COM>
Date: Sun, 17 Nov 2024 15:38:42 +0800
From: Li Ming <ming4.li@...look.com>
To: "Bowman, Terry" <terry.bowman@....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 2024/11/16 3:46, Bowman, Terry wrote:
>
>
> 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()?
Yes, the name you mentioned is better.
Ming
>
> Regards,
> Terry
>
>
Powered by blists - more mailing lists