aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaiyang Zhang <haiyangz@microsoft.com>2017-02-13 13:10:11 -0500
committerBjorn Helgaas <bhelgaas@google.com>2017-02-17 14:53:29 -0500
commit4a9b0933bdfcd85da840284bf5a0eb17b654b9c2 (patch)
treed2baa099d1ae0695f0f3f63d85f3b36175ce9b0d
parent60e2e2fbafdd1285ae1b4ad39ded41603e0c74d0 (diff)
PCI: hv: Use device serial number as PCI domain
Use the device serial number as the PCI domain. The serial numbers start with 1 and are unique within a VM. So names, such as VF NIC names, that include domain number as part of the name, can be shorter than that based on part of bus UUID previously. The new names will also stay same for VMs created with copied VHD and same number of devices. Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
-rw-r--r--drivers/pci/host/pci-hyperv.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/pci/host/pci-hyperv.c b/drivers/pci/host/pci-hyperv.c
index cd114c6787be..ada98569b78e 100644
--- a/drivers/pci/host/pci-hyperv.c
+++ b/drivers/pci/host/pci-hyperv.c
@@ -1317,6 +1317,18 @@ static struct hv_pci_dev *new_pcichild_device(struct hv_pcibus_device *hbus,
1317 get_pcichild(hpdev, hv_pcidev_ref_initial); 1317 get_pcichild(hpdev, hv_pcidev_ref_initial);
1318 get_pcichild(hpdev, hv_pcidev_ref_childlist); 1318 get_pcichild(hpdev, hv_pcidev_ref_childlist);
1319 spin_lock_irqsave(&hbus->device_list_lock, flags); 1319 spin_lock_irqsave(&hbus->device_list_lock, flags);
1320
1321 /*
1322 * When a device is being added to the bus, we set the PCI domain
1323 * number to be the device serial number, which is non-zero and
1324 * unique on the same VM. The serial numbers start with 1, and
1325 * increase by 1 for each device. So device names including this
1326 * can have shorter names than based on the bus instance UUID.
1327 * Only the first device serial number is used for domain, so the
1328 * domain number will not change after the first device is added.
1329 */
1330 if (list_empty(&hbus->children))
1331 hbus->sysdata.domain = desc->ser;
1320 list_add_tail(&hpdev->list_entry, &hbus->children); 1332 list_add_tail(&hpdev->list_entry, &hbus->children);
1321 spin_unlock_irqrestore(&hbus->device_list_lock, flags); 1333 spin_unlock_irqrestore(&hbus->device_list_lock, flags);
1322 return hpdev; 1334 return hpdev;