• Shahed Shaikh's avatar
    qlcnic: fix Tx descriptor corruption on 82xx devices · 2f04cacd
    Shahed Shaikh authored
    [ Upstream commit c333fa0c4f220f8f7ea5acd6b0ebf3bf13fd684d ]
    
    In regular NIC transmission flow, driver always configures MAC using
    Tx queue zero descriptor as a part of MAC learning flow.
    But with multi Tx queue supported NIC, regular transmission can occur on
    any non-zero Tx queue and from that context it uses
    Tx queue zero descriptor to configure MAC, at the same time TX queue
    zero could be used by another CPU for regular transmission
    which could lead to Tx queue zero descriptor corruption and cause FW
    abort.
    
    This patch fixes this in such a way that driver always configures
    learned MAC address from the same Tx queue which is used for
    regular transmission.
    
    Fixes: 7e2cf4fe ("qlcnic: change driver hardware interface mechanism")
    Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    2f04cacd
qlcnic_83xx_hw.c 112 KB