When PCI BUS is added, PCI_BUS domain ID is set. When PCI_BUS and a device
added to the bus is racing against each other, the first device tends to
overwrite the domain ID. In order to avoid the race, this patch make sure
when a device is added to a bus, it never updated the bus domain ID. Since
we have the transparent SRIOV mode now, the short VF device name is no
longer needed.

Fixes: 4a9b0933bdfc("PCI:hv:Use device serial number as PCI domain")
Cc: sta...@vger.kernel.org
Signed-off-by: Sridhar Pitchai <srpit...@microsoft.com>
---
 drivers/pci/host/pci-hyperv.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
index 2faf38e..ac67e56 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -1518,17 +1518,6 @@ static struct hv_pci_dev *new_pcichild_device(struct 
hv_pcibus_device *hbus,
        get_pcichild(hpdev, hv_pcidev_ref_childlist);
        spin_lock_irqsave(&hbus->device_list_lock, flags);
 
-       /*
-        * When a device is being added to the bus, we set the PCI domain
-        * number to be the device serial number, which is non-zero and
-        * unique on the same VM.  The serial numbers start with 1, and
-        * increase by 1 for each device.  So device names including this
-        * can have shorter names than based on the bus instance UUID.
-        * Only the first device serial number is used for domain, so the
-        * domain number will not change after the first device is added.
-        */
-       if (list_empty(&hbus->children))
-               hbus->sysdata.domain = desc->ser;
        list_add_tail(&hpdev->list_entry, &hbus->children);
        spin_unlock_irqrestore(&hbus->device_list_lock, flags);
        return hpdev;
-- 
2.7.4
 

Reply via email to