• John Fastabend's avatar
    ixgbe: do not stop tx queues in ixgbe_set_tso · a922afb6
    John Fastabend authored
    Disabling TSO can cause the dev_watchdog timer to be triggered because
    when TSO is disabled netif_tx_stop_all_queues is called.  If the watchdog
    timer fires while the queues are stopped and traffic has not recently been
    sent on a paticular queue this is falsly identified as a hang and
    ndo_tx_timeout() is called.  This is ocossionally seen during testing.
    
    This removes the netif_tx_stop_all_queues() it is not needed.  The scheduler
    submits skb's with dev_hard_start_xmit(), this checks if netif_needs_gso and
    if so it calls dev_gso_segment.  Disabling TSO will cause dev_hard_start_xmit()
    to do the gso processing.   However ixgbe does not use the features flags to
    determine if it needs to use tso or not instead it uses skb->gso_size so
    ixgbe will process these frames correctly regardless of the netdev features
    flag.
    Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
    Acked-by: default avatarPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a922afb6
ixgbe_ethtool.c 73.2 KB