diff options
author | Cong Wang <xiyou.wangcong@gmail.com> | 2018-01-25 18:26:22 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-29 12:42:15 -0500 |
commit | 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 (patch) | |
tree | 2daa13ccb3dbe823770ca45732729dfa4a150ef8 /net/core/dev.c | |
parent | 4cd879515d686849eec5f718aeac62a70b067d82 (diff) | |
download | lwn-6a643ddb5624be7e0694d49f5765a8d41c1ab6d0.tar.gz lwn-6a643ddb5624be7e0694d49f5765a8d41c1ab6d0.zip |
net: introduce helper dev_change_tx_queue_len()
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.fastabend@gmail.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 858501b12869..520c24671bc5 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7048,6 +7048,34 @@ int dev_set_mtu(struct net_device *dev, int new_mtu) EXPORT_SYMBOL(dev_set_mtu); /** + * dev_change_tx_queue_len - Change TX queue length of a netdevice + * @dev: device + * @new_len: new tx queue length + */ +int dev_change_tx_queue_len(struct net_device *dev, unsigned long new_len) +{ + unsigned int orig_len = dev->tx_queue_len; + int res; + + if (new_len != (unsigned int)new_len) + return -ERANGE; + + if (new_len != orig_len) { + dev->tx_queue_len = new_len; + res = call_netdevice_notifiers(NETDEV_CHANGE_TX_QUEUE_LEN, dev); + res = notifier_to_errno(res); + if (res) { + netdev_err(dev, + "refused to change device tx_queue_len\n"); + dev->tx_queue_len = orig_len; + return res; + } + } + + return 0; +} + +/** * dev_set_group - Change group this device belongs to * @dev: device * @new_group: group this device should belong to |