bnx2x: Correct asymmetric flow-control
authorYuval Mintz <Yuval.Mintz@qlogic.com>
Thu, 25 Jun 2015 12:19:21 +0000 (15:19 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 Jun 2015 13:30:33 +0000 (06:30 -0700)
commit1359d73c1d6fa737545d946f9bcb4b9a6b13a6ea
treefa29dc8742c83df1cde02c1bdf5f5881771cfe4f
parentb175c3a44fab06e1eccc793e3dadccbf6afc54cf
bnx2x: Correct asymmetric flow-control

This fixes several issues relating to asymmetric configuration:
 1. When user requests to disable TX, the local-device needs to
    advertise both PAUSE and ASM_DIR, but to avoid transmitting pause
    frames. In the 578xx, it would ignore the TX disable.

 2. When user advertises RX-only, ASM_DIR was advertised instead of
    PAUSE/ASM_DIR.

 3. When changing mode, the advertised PAUSE/ASM_DIR was not cleared
    before setting new one, so disabling RX or TX had no impact on the
    'advertised' as appeared in the 'ethtool -a' output.

Signed-off-by: Yaniv Rosner <Yaniv.Rosner@qlogic.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c