• Shannon Nelson's avatar
    sunvnet: xoff not needed when removing port link · 9c5a3a1f
    Shannon Nelson authored
    The sunvnet netdev is connected to the controlling ldom's vswitch
    for network bridging.  However, for higher performance between ldoms,
    there also is a channel between each client ldom.  These connections are
    represented in the sunvnet driver by a queue for each ldom.  The driver
    uses select_queue to tell the stack which queue to use by tracking the mac
    addresses on the other end of each port.  When a connected ldom shuts down,
    the driver receives an LDC_EVENT_RESET and the port is removed from the
    driver, thus a queue with no ldom on the other end will never be selected
    for Tx.
    
    The driver was trying to reinforce the "don't use this queue" notion with
    netif_tx_stop_queue() and netif_tx_wake_queue(), which really should only
    be used to signal a Tx queue is full (aka XOFF).  This misuse of queue
    state resulted in NETDEV WATCHDOG messages and lots of unnecessary calls
    into the driver's tx_timeout handler.  Simply removing these takes care
    of the problem.
    
    Orabug: 25190537
    Signed-off-by: default avatarShannon Nelson <shannon.nelson@oracle.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9c5a3a1f
sunvnet_common.c 43.5 KB