Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb043ade authored by Chris Lew's avatar Chris Lew
Browse files

rpmsg: glink: Fix rpmsg_register_device err handling



The device release function is set before registering with rpmsg. If
rpmsg registration fails, the framework will call device_put(), which
invokes the release function. The channel create logic does not need to
free rpdev if rpmsg_register_device() fails and release is called.

Change-Id: I66d3cc02eb5503130c6ad700a7e000054e8992f3
Signed-off-by: default avatarChris Lew <clew@codeaurora.org>
parent 711ee746
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -1614,7 +1614,7 @@ static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,

		ret = rpmsg_register_device(rpdev);
		if (ret)
			goto free_rpdev;
			goto rcid_remove;

		channel->rpdev = rpdev;
	}
@@ -1622,9 +1622,6 @@ static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,

	return 0;

free_rpdev:
	CH_INFO(channel, "free_rpdev\n");
	kfree(rpdev);
rcid_remove:
	CH_INFO(channel, "rcid_remove\n");
	spin_lock_irqsave(&glink->idr_lock, flags);