diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 38b0c414d780..36e994519488 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -7607,16 +7607,19 @@ int dev_change_tx_queue_len(struct net_device *dev, unsigned long new_len) | |||
7607 | dev->tx_queue_len = new_len; | 7607 | dev->tx_queue_len = new_len; |
7608 | res = call_netdevice_notifiers(NETDEV_CHANGE_TX_QUEUE_LEN, dev); | 7608 | res = call_netdevice_notifiers(NETDEV_CHANGE_TX_QUEUE_LEN, dev); |
7609 | res = notifier_to_errno(res); | 7609 | res = notifier_to_errno(res); |
7610 | if (res) { | 7610 | if (res) |
7611 | netdev_err(dev, | 7611 | goto err_rollback; |
7612 | "refused to change device tx_queue_len\n"); | 7612 | res = dev_qdisc_change_tx_queue_len(dev); |
7613 | dev->tx_queue_len = orig_len; | 7613 | if (res) |
7614 | return res; | 7614 | goto err_rollback; |
7615 | } | ||
7616 | return dev_qdisc_change_tx_queue_len(dev); | ||
7617 | } | 7615 | } |
7618 | 7616 | ||
7619 | return 0; | 7617 | return 0; |
7618 | |||
7619 | err_rollback: | ||
7620 | netdev_err(dev, "refused to change device tx_queue_len\n"); | ||
7621 | dev->tx_queue_len = orig_len; | ||
7622 | return res; | ||
7620 | } | 7623 | } |
7621 | 7624 | ||
7622 | /** | 7625 | /** |