bus/pci: clear undefined bits in Windows segment parsing
authorTal Shnaiderman <talshn@nvidia.com>
Wed, 14 Oct 2020 19:30:01 +0000 (22:30 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 16 Oct 2020 12:41:32 +0000 (14:41 +0200)
When reading bus and segment values using SPDRP_BUSNUMBER
bits 24-31 are undefined.

They are cleared to verify we read the segment number correctly.

Fixes: c3adf8144a17 ("bus/pci: support segment as address domain on Windows")
Cc: stable@dpdk.org
Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Ranjit Menon <ranjit.menon@intel.com>
Acked-by: Narcisa Vasile <navasile@linux.microsoft.com>
drivers/bus/pci/windows/pci.c

index b77b1b6..10bb0e9 100644 (file)
@@ -195,7 +195,7 @@ get_device_pci_address(HDEVINFO dev_info,
                return -1;
        }
 
-       addr->domain = bus_num >> 8;
+       addr->domain = (bus_num >> 8) & 0xffff;
        addr->bus = bus_num & 0xff;
        addr->devid = dev_and_func >> 16;
        addr->function = dev_and_func & 0xffff;