From: Ben Hutchings Date: Tue, 15 Feb 2011 19:39:21 +0000 (+0000) Subject: net: Adjust TX queue kobjects if number of queues changes during unregister X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=5c56580b74e57e56f30e3c5bbc9d7ab487858497;p=linux-beck.git net: Adjust TX queue kobjects if number of queues changes during unregister If the root qdisc for a net device is mqprio, and the driver's ndo_setup_tc() operation dynamically adds and remvoes TX queues, netif_set_real_num_tx_queues() will be called during device unregistration to remove the extra TX queues when the qdisc is destroyed. Currently this causes the corresponding kobjects to be leaked, and the device's reference count never drops to 0. Signed-off-by: Ben Hutchings --- diff --git a/net/core/dev.c b/net/core/dev.c index 6392ea0a5910..30c71f9b0419 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1648,7 +1648,8 @@ int netif_set_real_num_tx_queues(struct net_device *dev, unsigned int txq) if (txq < 1 || txq > dev->num_tx_queues) return -EINVAL; - if (dev->reg_state == NETREG_REGISTERED) { + if (dev->reg_state == NETREG_REGISTERED || + dev->reg_state == NETREG_UNREGISTERING) { ASSERT_RTNL(); rc = netdev_queue_update_kobjects(dev, dev->real_num_tx_queues,