Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / net / core / dev.c
index a5aa1c7..559a912 100644 (file)
@@ -7149,16 +7149,19 @@ int dev_change_tx_queue_len(struct net_device *dev, unsigned long new_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 dev_qdisc_change_tx_queue_len(dev);
+               if (res)
+                       goto err_rollback;
+               res = dev_qdisc_change_tx_queue_len(dev);
+               if (res)
+                       goto err_rollback;
        }
 
        return 0;
+
+err_rollback:
+       netdev_err(dev, "refused to change device tx_queue_len\n");
+       dev->tx_queue_len = orig_len;
+       return res;
 }
 
 /**