[Quantal][PATCH 19/29] be2net: Ignore physical link async event for Lancer
Jesse Sung
jesse.sung at canonical.com
Thu Dec 13 06:49:52 UTC 2012
From: Padmanabh Ratnakar <padmanabh.ratnakar at emulex.com>
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 <padmanabh.ratnakar at emulex.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit 2e177a5c6cc52d8a422c69ba87b8a7e00ecb6eac)
Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
---
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
--
1.7.10.4
More information about the kernel-team
mailing list