Whenever a client is started, it registers with each device present on
the system. Every client is always registered exactly once (RFC part
here - so far no client registers itself twice but should we care for such
a scenario happening in future?), hence there is one context per client
and ib_unregister_client() can break on matching that client.

diff -ruNp a/core/device.c b/core/device.c
--- a/core/device.c     2006-05-04 10:49:03.000000000 +0530
+++ b/core/device.c     2006-05-04 10:51:50.000000000 +0530
@@ -349,6 +349,7 @@ void ib_unregister_client(struct ib_clie
                        if (context->client == client) {
                                list_del(&context->list);
                                kfree(context);
+                               break;
                        }
                spin_unlock_irqrestore(&device->client_data_lock, flags);
        }

Thanks,

- KK


Attachment: unregister_client.patch
Description: Binary data

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

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

Reply via email to