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