2017-08-09 19:42 GMT+09:00 Vitaly Kuznetsov <vkuzn...@redhat.com>: > What happens is: __netvsc_vf_setup() does dev_open() for the VF device and > the consecutive dev_change_name() fails with -EBUSY because of the > (dev->flags & IFF_UP) check. The history of this code predates git so I > wasn't able to figure out when and why the check was added, everything > seems to work fine without it. dev_change_name() has only two call sites, > both hold rtnl_lock. > > Signed-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com> > --- > RFC: I'm probably miossing something obvious and the check can't be just > dropped. Stephen suggested a different solution to the isuue: > https://www.spinics.net/lists/netdev/msg448243.html but it has its own > drawbacks. > --- > net/core/dev.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/net/core/dev.c b/net/core/dev.c > index 1d75499add72..c608e233a78a 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -1186,8 +1186,6 @@ int dev_change_name(struct net_device *dev, const char > *newname) > BUG_ON(!dev_net(dev)); > > net = dev_net(dev); > - if (dev->flags & IFF_UP) > - return -EBUSY; > > write_seqcount_begin(&devnet_rename_seq);
I think people expect the name won't change while up and I don't think it is a good idea to allow changing the name while the interface is up. --yoshfuji > > -- > 2.13.4 >