net: introduce NETDEV_CHANGE_TX_QUEUE_LEN
This patch introduces a new event - NETDEV_CHANGE_TX_QUEUE_LEN, this will be triggered when tx_queue_len. It could be used by net device who want to do some processing at that time. An example is tun who may want to resize tx array when tx_queue_len is changed. Cc: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Acked-by: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
bf900b3dbe
commit
08294a26e1
@@ -1927,11 +1927,19 @@ static int do_setlink(const struct sk_buff *skb,
|
||||
|
||||
if (tb[IFLA_TXQLEN]) {
|
||||
unsigned long value = nla_get_u32(tb[IFLA_TXQLEN]);
|
||||
unsigned long orig_len = dev->tx_queue_len;
|
||||
|
||||
if (dev->tx_queue_len ^ value)
|
||||
if (dev->tx_queue_len ^ value) {
|
||||
dev->tx_queue_len = value;
|
||||
err = call_netdevice_notifiers(
|
||||
NETDEV_CHANGE_TX_QUEUE_LEN, dev);
|
||||
err = notifier_to_errno(err);
|
||||
if (err) {
|
||||
dev->tx_queue_len = orig_len;
|
||||
goto errout;
|
||||
}
|
||||
status |= DO_SETLINK_NOTIFY;
|
||||
|
||||
dev->tx_queue_len = value;
|
||||
}
|
||||
}
|
||||
|
||||
if (tb[IFLA_OPERSTATE])
|
||||
|
||||
Reference in New Issue
Block a user