On Sun, Aug 30, 2026 at 08:28:28PM +0000, Priyank Rathod wrote:
> When an AER error occurs, candidate error-source devices are identified
> and recorded into e_info->dev[] via add_error_device(), which increments
> each device's reference count with pci_dev_get().
> 
> If is_error_source() matches a device purely by Requester/Completer ID
> match (e_info->id == pci_dev_id(dev)), the device is added to e_info->dev[]
> even if it lacks the AER extended capability (dev->aer_cap == 0).
> 
> Later, during aer_process_err_devices(), aer_get_device_error_info()
> returns 0 when dev->aer_cap is 0 (or if no active error status is read),
> causing aer_process_err_devices() to skip handle_error_source().
> Previously, handle_error_source() was responsible for calling
> pci_dev_put(dev). When handle_error_source() was skipped, pci_dev_put()
> was never invoked, permanently leaking the struct pci_dev reference.

The problem is real and the fix looks fine...

> Fixes: 1ab4a3c80508 ("PCI/AER: Stop ruling out unbound devices as error 
> source")

... but the Fixes tag seems to be a hallucination.

Thanks,

Lukas

Reply via email to