Spdk/lib
Konrad Sztyber eaeddb74d2 vmd: reset root port config before enumeration
The root ports might have been configured by some other driver (e.g.
Linux kernel) prior to loading the SPDK one, so we need to clear it.  We
need to before the scanning process, as it's depth-first, so when
scanning the initial root ports, the latter ones might still be using
stale configuration.  This can lead to two bridges having the same
secondary/subordinate bus configuration, meaning that their config space
would map to the same memory area, which, of course, isn't correct.

This has manifested in issue #2413, where two root ports were configured
to use the same secondary bus.  This caused an endpoint device to be
enumerated twice on two different root ports, with the first instance
being broken once the second port was configured by the SPDK driver.

Fixes #2413

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11863 (master)

(cherry picked from commit 6c3fdade83)
Change-Id: I5ce0931a84c1d23ccadb93fe39e8155ff1281474
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12478
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-06-30 13:32:31 -04:00
..
accel accel: Use vectored crc32 operations instead of chaining 2022-06-30 13:32:30 -04:00
bdev trace: add traces around io_device name 2022-06-30 13:32:31 -04:00
blob blob: avoid recursion when split IO immmediately complete 2022-06-30 13:32:31 -04:00
blobfs trace: move all trace definitions to a separate file 2022-06-30 13:32:26 -04:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2022-06-30 13:32:26 -04:00
env_dpdk env/memory: fix unregistration of memory after memory registration issue 2022-06-30 13:32:31 -04:00
env_ocf bdev/ocf: Improve OCF mpools 2022-06-30 13:32:31 -04:00
event app.c: respect all/0xffff argument 2022-06-30 13:32:31 -04:00
ftl spelling: lib 2022-06-30 13:32:28 -04:00
idxd idxd: fix bug with cancelling a batch 2022-06-30 13:32:31 -04:00
init rpc: add method for listing PCI devices 2022-06-30 13:32:29 -04:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi iscsi: fix a memory leak in error handling 2022-06-30 13:32:31 -04:00
json json: add spdk_json_write_bytearray 2022-06-30 13:32:29 -04:00
jsonrpc spelling: lib 2022-06-30 13:32:28 -04:00
log lib/log: move some log level function to log.c 2022-06-30 13:32:30 -04:00
lvol spelling: lib 2022-06-30 13:32:28 -04:00
nbd spelling: lib 2022-06-30 13:32:28 -04:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme: Set dnr to zero for abort_reqs() including a fix of degradation 2022-06-30 13:32:31 -04:00
nvmf nvmf: avoid a null dereference before null check 2022-06-30 13:32:31 -04:00
rdma rdma: Set REMOTE_WRITE permission for iWARP on target side 2022-06-30 13:32:28 -04:00
reduce spelling: lib 2022-06-30 13:32:28 -04:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc Initial changes. 2022-02-08 15:51:30 -05:00
scsi Lib/iSCSI: add the LUN Resize support 2022-06-30 13:32:31 -04:00
sock lib/sock: create common lookup for spdk_sock_group_impl 2022-06-30 13:32:28 -04:00
thread thread: fix double unlock in spdk_io_device_register 2022-06-30 13:32:31 -04:00
trace trace_flags.c: modify errorlog text for duplicate tgroups 2022-06-30 13:32:30 -04:00
trace_parser spelling: lib 2022-06-30 13:32:28 -04:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util util: Add spdk_ioviter for iterating iovecs 2022-06-30 13:32:29 -04:00
vfio_user spelling: lib 2022-06-30 13:32:28 -04:00
vhost lib/vhost: use contructor to initalize g_dpdk_sem 2022-06-30 13:32:31 -04:00
virtio spelling: lib 2022-06-30 13:32:28 -04:00
vmd vmd: reset root port config before enumeration 2022-06-30 13:32:31 -04:00
Makefile lib/trace_parser: add trace_parser library stubs 2022-06-30 13:32:25 -04:00