• Bryan Whitehead's avatar
    lan743x: Fix TX Stall Issue · ab13fe32
    Bryan Whitehead authored
    [ Upstream commit deb6bfab ]
    
    It has been observed that tx queue may stall while downloading
    from certain web sites (example www.speedtest.net)
    
    The cause has been tracked down to a corner case where
    the tx interrupt vector was disabled automatically, but
    was not re enabled later.
    
    The lan743x has two mechanisms to enable/disable individual
    interrupts. Interrupts can be enabled/disabled by individual
    source, and they can also be enabled/disabled by individual
    vector which has been mapped to the source. Both must be
    enabled for interrupts to work properly.
    
    The TX code path, primarily uses the interrupt enable/disable of
    the TX source bit, while leaving the vector enabled all the time.
    
    However, while investigating this issue it was noticed that
    the driver requested the use of the vector auto clear feature.
    
    The test above revealed a case where the vector enable was
    cleared unintentionally.
    
    This patch fixes the issue by deleting the lines that request
    the vector auto clear feature to be used.
    
    Fixes: 23f0703c ("lan743x: Add main source files for new lan743x driver")
    Signed-off-by: default avatarBryan Whitehead <Bryan.Whitehead@microchip.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ab13fe32
lan743x_main.c 83.1 KB