• Sathya Perla's avatar
    be2net: create/destroy rx-queues on interface open/close · 482c9e79
    Sathya Perla authored
    On some skews, the BE card sends pause frames (and not drop pkts) if there are
    no more posted buffers available for packet reception.  This behaviour has a
    side effect: When an interface is disabled, buffers are no longer posted on the
    corresponding RX rings. All broadcast and multicast traffic being received on
    the port will quickly fill up the PMEM and cause pause push back. As the PMEM
    is shared by both the ports, all traffic being received on the other (enabled)
    port also gets stalled.
    The fix is to destroy RX rings when the interface is disabled. If there is no
    RX ring match in the RXF lookup, the packets are discarded and so don't hog the
    PMEM.
    The RXQ creation cmd must now use MCC instead of MBOX as they are are called
    post MCC queue creation.
    Signed-off-by: default avatarSathya Perla <sathya.perla@emulex.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    482c9e79
be_main.c 92.7 KB