David Marchand db4092276a bus/pci: fix leak with multiple bus scan
The addition of the bus_info field did not account for the fact that the
PCI bus can be scanned multiple times (like for device hotplug and other
uses in SPDK).
Indeed, during pci_scan_one() for devices that were already registered,
the pci_common_set() overwrites the bus_info field, leaking the
previously allocated memory.

Since the bus_info content is fixed for a PCI device, we can simply skip
allocation if dev->bus_info is already set.

Fixes: 8f4de2dba9b9 ("bus/pci: fill bus specific information")

Reported-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
2022-11-22 16:07:56 +01:00
2022-11-09 18:07:56 +01:00
2016-11-13 15:25:12 +01:00
2022-11-09 18:07:56 +01:00
2022-07-21 12:13:48 +02:00
2022-07-21 12:13:48 +02:00
2020-09-07 23:51:57 +02:00
2022-11-14 11:30:02 +01:00
2018-01-04 22:41:38 +01:00
2022-11-15 18:21:34 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org
Description
No description provided
Readme 128 MiB
Languages
C 99.1%
Meson 0.5%
Python 0.2%
Shell 0.1%