bus/pci: fix leak for unbound devices
Checks
Commit Message
For devices not bound to any Linux kernel module, we leak a pci object
since it is never added to the PCI bus device list.
Fixes: c79a1c67465d ("bus/pci: optimize bus scan")
Cc: stable@dpdk.org
Reported-by: Owen Hilyard <ohilyard@iol.unh.edu>
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
drivers/bus/pci/linux/pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Wed, Jun 16, 2021 at 8:53 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> For devices not bound to any Linux kernel module, we leak a pci object
> since it is never added to the PCI bus device list.
>
> Fixes: c79a1c67465d ("bus/pci: optimize bus scan")
> Cc: stable@dpdk.org
>
> Reported-by: Owen Hilyard <ohilyard@iol.unh.edu>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
No objection?
There is no dedicated maintainer, I'll merge this then.
On Wed, Jun 16, 2021 at 8:53 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> For devices not bound to any Linux kernel module, we leak a pci object
> since it is never added to the PCI bus device list.
>
> Fixes: c79a1c67465d ("bus/pci: optimize bus scan")
> Cc: stable@dpdk.org
>
> Reported-by: Owen Hilyard <ohilyard@iol.unh.edu>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
Applied.
@@ -331,7 +331,7 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr)
else
dev->kdrv = RTE_PCI_KDRV_UNKNOWN;
} else {
- dev->kdrv = RTE_PCI_KDRV_NONE;
+ free(dev);
return 0;
}
/* device is valid, add in list (sorted) */