Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ixgbe: Fix usage of netif_*_all_queues() with netif_carrier_{off|on}()

netif_carrier_off() is sufficient to stop Tx into the driver. Stopping the Tx
queues is redundant and unnecessary. By the same token, netif_carrier_on()
will be sufficient to re-enable Tx, so waking the queues is unnecessary.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Peter P Waskiewicz Jr and committed by
David S. Miller
1da100bb 068c89b0

+3 -3
+3 -3
drivers/net/ixgbe/ixgbe_main.c
··· 2078 2078 2079 2079 ixgbe_irq_enable(adapter); 2080 2080 2081 + /* enable transmits */ 2082 + netif_tx_start_all_queues(netdev); 2083 + 2081 2084 /* bring the link up in the watchdog, this could race with our first 2082 2085 * link up interrupt but shouldn't be a problem */ 2083 2086 adapter->flags |= IXGBE_FLAG_NEED_LINK_UPDATE; ··· 3482 3479 (FLOW_TX ? "TX" : "None")))); 3483 3480 3484 3481 netif_carrier_on(netdev); 3485 - netif_tx_wake_all_queues(netdev); 3486 3482 } else { 3487 3483 /* Force detection of hung controller */ 3488 3484 adapter->detect_tx_hung = true; ··· 3493 3491 printk(KERN_INFO "ixgbe: %s NIC Link is Down\n", 3494 3492 netdev->name); 3495 3493 netif_carrier_off(netdev); 3496 - netif_tx_stop_all_queues(netdev); 3497 3494 } 3498 3495 } 3499 3496 ··· 4223 4222 } 4224 4223 4225 4224 netif_carrier_off(netdev); 4226 - netif_tx_stop_all_queues(netdev); 4227 4225 4228 4226 strcpy(netdev->name, "eth%d"); 4229 4227 err = register_netdev(netdev);