aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMikael Olsson <mikael.olsson@arm.com>2023-06-22 15:13:35 +0200
committerMikael Olsson <mikael.olsson@arm.com>2023-07-31 14:08:33 +0200
commit08c42f58bd26680650271a349c76aeb2b521dd72 (patch)
tree071c21480d85505af80e5556d10c6856f8fde314 /kernel
parent229e12548da753c1e45f7d3c3b130a7c68ec0826 (diff)
downloadethos-u-linux-driver-stack-08c42f58bd26680650271a349c76aeb2b521dd72.tar.gz
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 <mikael.olsson@arm.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/ethosu_device.c5
1 files changed, 4 insertions, 1 deletions
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);