rtnetlink: do not depend on RTNL for IFLA_TXQLEN output
[linux-2.6-block.git] / net / core / dev.c
index d6b24749eb2e27ca87609e31b0434c6c09f0e8d8..882ce6375b2e6ba7dfaee5df4e933463aa100e5b 100644 (file)
@@ -8959,7 +8959,7 @@ int dev_change_tx_queue_len(struct net_device *dev, unsigned long new_len)
                return -ERANGE;
 
        if (new_len != orig_len) {
-               dev->tx_queue_len = new_len;
+               WRITE_ONCE(dev->tx_queue_len, new_len);
                res = call_netdevice_notifiers(NETDEV_CHANGE_TX_QUEUE_LEN, dev);
                res = notifier_to_errno(res);
                if (res)
@@ -8973,7 +8973,7 @@ int dev_change_tx_queue_len(struct net_device *dev, unsigned long new_len)
 
 err_rollback:
        netdev_err(dev, "refused to change device tx_queue_len\n");
-       dev->tx_queue_len = orig_len;
+       WRITE_ONCE(dev->tx_queue_len, orig_len);
        return res;
 }