[PATCH] PCI: Create iov virtfn/physfn links before attaching driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When creating virtual functions, create the "virtfn%u" and "physfn" links 
in sysfs before attaching the driver.  Without this, there is a race when 
the driver attaches to the new virtual network interface and sends out an 
"add" udev event, and the network interface naming software (biosdevname
or systemd, for example) tries to look at these links.

Signed-off-by: Stuart Hayes <stuart.w.hayes@xxxxxxxxx>
---

--- linux-4.14-rc1/drivers/pci/iov.c.orig	2017-09-18 15:00:43.168255665 -0500
+++ linux-4.14-rc1/drivers/pci/iov.c	2017-09-18 15:07:04.792280999 -0500
@@ -162,7 +162,6 @@ int pci_iov_add_virtfn(struct pci_dev *d
 
 	pci_device_add(virtfn, virtfn->bus);
 
-	pci_bus_add_device(virtfn);
 	sprintf(buf, "virtfn%u", id);
 	rc = sysfs_create_link(&dev->dev.kobj, &virtfn->dev.kobj, buf);
 	if (rc)
@@ -173,6 +172,8 @@ int pci_iov_add_virtfn(struct pci_dev *d
 
 	kobject_uevent(&virtfn->dev.kobj, KOBJ_CHANGE);
 
+	pci_bus_add_device(virtfn);
+
 	return 0;
 
 failed2:

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux