[ofa-general] [Bug 413] New: IPoIB passes async events to an unrelated devices.

bugzilla-daemon at lists.openfabrics.org bugzilla-daemon at lists.openfabrics.org
Tue Mar 6 06:14:29 PST 2007


https://bugs.openfabrics.org/show_bug.cgi?id=413

           Summary: IPoIB passes async events to an unrelated devices.
           Product: OpenFabrics Linux
           Version: 1.2alpha1
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P3
         Component: IPoIB
        AssignedTo: bugzilla at openib.org
        ReportedBy: monil at voltaire.com
                CC: mst at mellanox.co.il


For further information please look at:
"[RFC] IB/ipoib: Asynchronous events delivered without port parameter." thread
on open-fabrics.

The patch that solves the issue is (Please take the original one from the
thread above):

commit a27cbe878203076247c1b5287f5ab59ed143b560
Author: Roland Dreier <rolandd at cisco.com>
Date:   Tue Feb 27 07:37:49 2007 -0800

   IPoIB: Only handle async events for one port

   An asynchronous event carries the port number that the event occurred
   on, so there's no reason for an IPoIB interface to process an event
   associated with a different local HCA port.

   Signed-off-by: Roland Dreier <rolandd at cisco.com>

diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
index 3cb551b..7f3ec20 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
@@ -259,12 +259,13 @@ void ipoib_event(struct ib_event_handler *handler,
       struct ipoib_dev_priv *priv =
               container_of(handler, struct ipoib_dev_priv, event_handler);

-       if (record->event == IB_EVENT_PORT_ERR    ||
-           record->event == IB_EVENT_PKEY_CHANGE ||
-           record->event == IB_EVENT_PORT_ACTIVE ||
-           record->event == IB_EVENT_LID_CHANGE  ||
-           record->event == IB_EVENT_SM_CHANGE   ||
-           record->event == IB_EVENT_CLIENT_REREGISTER) {
+       if ((record->event == IB_EVENT_PORT_ERR    ||
+            record->event == IB_EVENT_PKEY_CHANGE ||
+            record->event == IB_EVENT_PORT_ACTIVE ||
+            record->event == IB_EVENT_LID_CHANGE  ||
+            record->event == IB_EVENT_SM_CHANGE   ||
+            record->event == IB_EVENT_CLIENT_REREGISTER) &&
+           record->element.port_num == priv->port) {
               ipoib_dbg(priv, "Port state change event\n");
               queue_work(ipoib_workqueue, &priv->flush_task);
       }


-- 
Configure bugmail: https://bugs.openfabrics.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.




More information about the general mailing list