On Fri, May 23, 2025 at 02:13:52PM +0300, Ilpo Järvinen wrote: > On Thu, 22 May 2025, Bjorn Helgaas wrote: > > > From: Bjorn Helgaas <bhelg...@google.com> > > > > Previously aer_get_device_error_info() and aer_print_error() took a pointer > > to struct aer_err_info and a pointer to a pci_dev. Typically the pci_dev > > was one of the elements of the aer_err_info.dev[] array (DPC was an > > exception, where the dev[] array was unused).
> > -void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) > > +void aer_print_error(struct aer_err_info *info, int i) > > { > > - int layer, agent; > > - int id = pci_dev_id(dev); > > + struct pci_dev *dev; > > + int layer, agent, id; > > const char *level = info->level; > > > > + if (i >= AER_MAX_MULTI_ERR_DEVICES) > > + return; > > Are these OoB checks actually indication of a logic error in the caller > side which would perhaps warrant using > if (WARN_ON_ONCE(i >= AER_MAX_MULTI_ERR_DEVICES)) > ? Good idea, thanks! I hope we can someday get rid of this info->dev[] array and the headaches associated with it.