diff options
author | Joachim Fenkes <fenkes@de.ibm.com> | 2008-07-22 14:18:07 -0700 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-07-22 14:18:07 -0700 |
commit | 5b673b71c8ca0fbdb99dc1b1434cfb554212d6ff (patch) | |
tree | 6ef6d830a63e9fe417f6f05e819e5af56979d422 /drivers/infiniband/hw/ehca/ehca_irq.c | |
parent | d35cb360c29956510b2fe1a953bd4968536f7216 (diff) |
IB/ehca: Filter PATH_MIG events if QP was never armed
Certain firmware versions sometimes cause spurious PATH_MIG events to
occur during QP creation. Filter these events by making sure PATH_MIG
events are only handed down when they actually make sense (i.e. when
the QP has been armed at least once).
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ehca/ehca_irq.c')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_irq.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c index 0792d930c48..99642a6e17c 100644 --- a/drivers/infiniband/hw/ehca/ehca_irq.c +++ b/drivers/infiniband/hw/ehca/ehca_irq.c @@ -178,6 +178,10 @@ static void dispatch_qp_event(struct ehca_shca *shca, struct ehca_qp *qp, { struct ib_event event; + /* PATH_MIG without the QP ever having been armed is false alarm */ + if (event_type == IB_EVENT_PATH_MIG && !qp->mig_armed) + return; + event.device = &shca->ib_device; event.event = event_type; |