Dear PCI Developers, We are curious whether the function `pci_bus_set_aer_ops` might have a memory leak. The function is https://elixir.bootlin.com/linux/v6.8/source/drivers/pci/pcie/aer_inject.c#L297 and the relevant code is ``` static int pci_bus_set_aer_ops(struct pci_bus *bus) { struct pci_ops *ops; struct pci_bus_ops *bus_ops; unsigned long flags; bus_ops = kmalloc(sizeof(*bus_ops), GFP_KERNEL); if (!bus_ops) return -ENOMEM; ops = pci_bus_set_ops(bus, &aer_inj_pci_ops); spin_lock_irqsave(&inject_lock, flags); if (ops == &aer_inj_pci_ops) goto out; pci_bus_ops_init(bus_ops, bus, ops); list_add(&bus_ops->list, &pci_bus_ops_list); bus_ops = NULL; out: spin_unlock_irqrestore(&inject_lock, flags); kfree(bus_ops); return 0; } ``` Here if the goto statement does not jump to `out`, the `bus_ops` will be assigned with `NULL` and then `kfree(bus_ops)` will not free the allocated memory. Please kindly correct us if we missed any key information. Looking forward to your response! Best, Zijie