summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/qib/qib_intr.c
diff options
context:
space:
mode:
authorRoland Dreier <roland@purestorage.com>2011-06-17 11:57:55 -0700
committerRoland Dreier <roland@purestorage.com>2011-06-17 11:57:55 -0700
commitc7d74b090913102e7917dd02bb574ef060e1e930 (patch)
tree2e08d32ec397034e5dde80d62684bf78b2aab384 /drivers/infiniband/hw/qib/qib_intr.c
parent8da7e7a55231543b84ac84e93ad5ca9d340773d7 (diff)
parent3126448451105fae59de0058c68692aa09aa4c37 (diff)
downloadop-kernel-dev-c7d74b090913102e7917dd02bb574ef060e1e930.zip
op-kernel-dev-c7d74b090913102e7917dd02bb574ef060e1e930.tar.gz
Merge branches 'cxgb4' and 'qib' into for-next
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_intr.c')
-rw-r--r--drivers/infiniband/hw/qib/qib_intr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/qib/qib_intr.c b/drivers/infiniband/hw/qib/qib_intr.c
index a693c56..6ae57d2 100644
--- a/drivers/infiniband/hw/qib/qib_intr.c
+++ b/drivers/infiniband/hw/qib/qib_intr.c
@@ -96,8 +96,12 @@ void qib_handle_e_ibstatuschanged(struct qib_pportdata *ppd, u64 ibcs)
* states, or if it transitions from any of the up (INIT or better)
* states into any of the down states (except link recovery), then
* call the chip-specific code to take appropriate actions.
+ *
+ * ppd->lflags could be 0 if this is the first time the interrupt
+ * handlers has been called but the link is already up.
*/
- if (lstate >= IB_PORT_INIT && (ppd->lflags & QIBL_LINKDOWN) &&
+ if (lstate >= IB_PORT_INIT &&
+ (!ppd->lflags || (ppd->lflags & QIBL_LINKDOWN)) &&
ltstate == IB_PHYSPORTSTATE_LINKUP) {
/* transitioned to UP */
if (dd->f_ib_updown(ppd, 1, ibcs))
OpenPOWER on IntegriCloud