lkml.org 
[lkml]   [2017]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.4 48/59] PCI: Create SR-IOV virtfn/physfn links before attaching driver
    Date
    From: Stuart Hayes <stuart.w.hayes@gmail.com>

    [ Upstream commit 27d6162944b9b34c32cd5841acd21786637ee743 ]

    When creating virtual functions, create the "virtfn%u" and "physfn" links
    in sysfs *before* attaching the driver instead of after. When we attach
    the driver to the new virtual network interface first, there is a race when
    the driver attaches to the new 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@gmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    ---
    drivers/pci/iov.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
    index 357527712539..7680fc0349fc 100644
    --- a/drivers/pci/iov.c
    +++ b/drivers/pci/iov.c
    @@ -161,7 +161,6 @@ static int virtfn_add(struct pci_dev *dev, int id, int reset)
    pci_device_add(virtfn, virtfn->bus);
    mutex_unlock(&iov->dev->sriov->lock);

    - pci_bus_add_device(virtfn);
    sprintf(buf, "virtfn%u", id);
    rc = sysfs_create_link(&dev->dev.kobj, &virtfn->dev.kobj, buf);
    if (rc)
    @@ -172,6 +171,8 @@ static int virtfn_add(struct pci_dev *dev, int id, int reset)

    kobject_uevent(&virtfn->dev.kobj, KOBJ_CHANGE);

    + pci_bus_add_device(virtfn);
    +
    return 0;

    failed2:
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-12-13 03:19    [W:4.042 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site