Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[linux-2.6-microblaze.git] / drivers / infiniband / ulp / srpt / ib_srpt.c
index 040234c..9632afb 100644 (file)
@@ -3209,7 +3209,6 @@ static int srpt_add_one(struct ib_device *device)
 
        INIT_IB_EVENT_HANDLER(&sdev->event_handler, sdev->device,
                              srpt_event_handler);
-       ib_register_event_handler(&sdev->event_handler);
 
        for (i = 1; i <= sdev->device->phys_port_cnt; i++) {
                sport = &sdev->port[i - 1];
@@ -3232,6 +3231,7 @@ static int srpt_add_one(struct ib_device *device)
                }
        }
 
+       ib_register_event_handler(&sdev->event_handler);
        spin_lock(&srpt_dev_lock);
        list_add_tail(&sdev->list, &srpt_dev_list);
        spin_unlock(&srpt_dev_lock);
@@ -3242,7 +3242,6 @@ static int srpt_add_one(struct ib_device *device)
 
 err_port:
        srpt_unregister_mad_agent(sdev, i);
-       ib_unregister_event_handler(&sdev->event_handler);
 err_cm:
        if (sdev->cm_id)
                ib_destroy_cm_id(sdev->cm_id);