From 08c42f58bd26680650271a349c76aeb2b521dd72 Mon Sep 17 00:00:00 2001 From: Mikael Olsson Date: Thu, 22 Jun 2023 15:13:35 +0200 Subject: Fix kernel driver probe not freeing endpoint If an error occurs after the kernel driver probe has created a rpmsg endpoint, the endpoint is not freed during the clean up. Clean up code for the endpoint has now been added to resolve this. Change-Id: I9259713f2b7dcf4926e6f317c57f2791ab3463de Signed-off-by: Mikael Olsson --- kernel/ethosu_device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'kernel') diff --git a/kernel/ethosu_device.c b/kernel/ethosu_device.c index 6987215..1a2e7f7 100644 --- a/kernel/ethosu_device.c +++ b/kernel/ethosu_device.c @@ -459,7 +459,7 @@ int ethosu_dev_init(struct rpmsg_device *rpdev, ret = ethosu_mailbox_init(&edev->mailbox, dev, edev->ept); if (ret) - goto device_unregister; + goto free_rpmsg_ept; ethosu_mailbox_ping(&edev->mailbox); @@ -506,6 +506,9 @@ del_cdev: deinit_mailbox: ethosu_mailbox_deinit(&edev->mailbox); +free_rpmsg_ept: + rpmsg_destroy_ept(edev->ept); + device_unregister: device_unregister(dev); -- cgit v1.2.1