Unverified Commit d4f6b526 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!6495 RDMA/srpt: Do not register event handler until srpt device is fully setup

parents a5e2feee dd52f1cd
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -3058,7 +3058,6 @@ static void 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];
@@ -3076,10 +3075,11 @@ static void srpt_add_one(struct ib_device *device)
		if (srpt_refresh_port(sport)) {
			pr_err("MAD registration failed for %s-%d.\n",
			       sdev->device->name, i);
			goto err_event;
			goto err_cm;
		}
	}

	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);
@@ -3089,8 +3089,6 @@ static void srpt_add_one(struct ib_device *device)
	pr_debug("added %s.\n", device->name);
	return;

err_event:
	ib_unregister_event_handler(&sdev->event_handler);
err_cm:
	if (sdev->cm_id)
		ib_destroy_cm_id(sdev->cm_id);