On 01/19/2018 03:09 PM, Cong Wang wrote: > This patch promotes the local change_tx_queue_len() to a core > helper function, dev_change_tx_queue_len(), so that rtnetlink > and net-sysfs could share the code. This also prepares for the > following patch. > > Note, the -EFAULT in the original code doesn't make sense, > we should propagate the errno from notifiers. > > Cc: John Fastabend <john.fastab...@gmail.com> > Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com> > ---
[...] > static ssize_t tx_queue_len_store(struct device *dev, > struct device_attribute *attr, > const char *buf, size_t len) > @@ -355,7 +332,7 @@ static ssize_t tx_queue_len_store(struct device *dev, > if (!capable(CAP_NET_ADMIN)) > return -EPERM; > > - return netdev_store(dev, attr, buf, len, change_tx_queue_len); > + return netdev_store(dev, attr, buf, len, dev_change_tx_queue_len); > } Is this protected by RTNL lock? If not what happens if this and do_setlink both try to change tx queue length at the same time? Seems we could get a race with multiple dev_deactivate/dev_activate sequences in-flight in the following 2/3 patch. Thanks, John > NETDEVICE_SHOW_RW(tx_queue_len, fmt_dec); >