PCI: Finish SR-IOV VF setup before adding the device
authorXudong Hao <xudong.hao@intel.com>
Fri, 31 May 2013 04:21:29 +0000 (12:21 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 31 May 2013 21:30:02 +0000 (15:30 -0600)
commitfbf33f516bdbcc2ab1ba1e54dfb720b0cfaa6874
treee9fae8a71b38e6cb5bf27d1ccef89a11e7bb3b9c
parentf722406faae2d073cc1d01063d1123c35425939e
PCI: Finish SR-IOV VF setup before adding the device

Commit 4f535093cf "PCI: Put pci_dev in device tree as early as possible"
moves device registering from pci_bus_add_devices() to pci_device_add().
That causes problems for virtual functions because device_add(&virtfn->dev)
is called before setting the virtfn->is_virtfn flag, which then causes Xen
to report PCI virtual functions as PCI physical functions.

Fix it by setting virtfn->is_virtfn before calling pci_device_add().

[Jiang Liu]: Move the setting of virtfn->is_virtfn ahead further for better
readability and modify changelog.

Signed-off-by: Xudong Hao <xudong.hao@intel.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: stable@vger.kernel.org # v3.9+
drivers/pci/iov.c