On Sat, 4 Feb 2012 22:55:01 -0800 Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > During recent strick checking about sysfs_remove from Eric. > it will spit more bitter warning. > > For SRIOV hotplug, we are calling pci_stop_dev() for VF at first. > (after we update pci_stop_bus_devices). > > that pci_stop_dev will calling device_unregiste for that VF, so that directory > in VF is removed already. > > We double checking if that VF dir in /sys is there, before try removing that > physfn link. > > Signed-of-by: Yinghai Lu <yinghai@xxxxxxxxxx> > --- > drivers/pci/iov.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c > index 0321fa3..dfc7d65 100644 > --- a/drivers/pci/iov.c > +++ b/drivers/pci/iov.c > @@ -173,7 +173,12 @@ static void virtfn_remove(struct pci_dev *dev, int id, int reset) > > sprintf(buf, "virtfn%u", id); > sysfs_remove_link(&dev->dev.kobj, buf); > - sysfs_remove_link(&virtfn->dev.kobj, "physfn"); > + /* > + * pci_stop_dev() could be called for this virtfn before already > + * so directory for the virtfn is removed before. > + */ > + if (virtfn->dev.kobj.sd) > + sysfs_remove_link(&virtfn->dev.kobj, "physfn"); > > mutex_lock(&iov->dev->sriov->lock); > pci_remove_bus_device(virtfn); Cleaned up the commit & comment text a bit and put into -next. Please check it out. Thanks, -- Jesse Barnes, Intel Open Source Technology Center
Attachment:
signature.asc
Description: PGP signature