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