Michael S. Tsirkin wrote:
@@ -260,7 +249,6 @@ void ipoib_event(struct ib_event_handler
                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   ||
@@ -268,5 +256,9 @@ void ipoib_event(struct ib_event_handler
            record->element.port_num == priv->port) {
                ipoib_dbg(priv, "Port state change event\n");
                queue_work(ipoib_workqueue, &priv->flush_task);
+       } else if (record->event == IB_EVENT_PKEY_CHANGE &&
+                  record->element.port_num == priv->port) {
+               ipoib_dbg(priv, "pkey change event on port:%d\n", priv->port);
+               queue_work(ipoib_workqueue, &priv->pkey_event_task);
        }
 }

BTW, should we maybe do:
if (record->element.port_num != priv->port)
        return;

and then we won't have to do this test for each event type?

Just make sure that all the events covered by this check are port affiliated, ie don't have a wider scope.

Or.



_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to