From patchwork Thu Dec 13 06:49:52 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Quantal,19/29] be2net: Ignore physical link async event for Lancer Date: Wed, 12 Dec 2012 20:49:52 -0000 From: Jesse Sung X-Patchwork-Id: 205761 Message-Id: <1355381402-10497-19-git-send-email-jesse.sung@canonical.com> To: kernel-team@lists.ubuntu.com Cc: Padmanabh Ratnakar , Sarveshwar Bandi From: Padmanabh Ratnakar BugLink: https://launchpad.net/bugs/1083088 The ability of driver to transmit packets depends on logical state of the link. Ignore physical link status. Signed-off-by: Padmanabh Ratnakar Signed-off-by: David S. Miller (cherry picked from commit 2e177a5c6cc52d8a422c69ba87b8a7e00ecb6eac) Signed-off-by: Wen-chien Jesse Sung --- drivers/net/ethernet/emulex/benet/be_cmds.c | 5 +++++ drivers/net/ethernet/emulex/benet/be_cmds.h | 1 + 2 files changed, 6 insertions(+) diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index c78551b..b6748da 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c @@ -141,6 +141,11 @@ static void be_async_link_state_process(struct be_adapter *adapter, /* When link status changes, link speed must be re-queried from FW */ adapter->phy.link_speed = -1; + /* Ignore physical link event */ + if (lancer_chip(adapter) && + !(evt->port_link_status & LOGICAL_LINK_STATUS_MASK)) + return; + /* For the initial link status do not rely on the ASYNC event as * it may not be received in some cases. */ diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index 600e8d6..e1e919c 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h @@ -93,6 +93,7 @@ enum { LINK_UP = 0x1 }; #define LINK_STATUS_MASK 0x1 +#define LOGICAL_LINK_STATUS_MASK 0x2 /* When the event code of an async trailer is link-state, the mcc_compl * must be interpreted as follows