diff options
author | Mikael Olsson <mikael.olsson@arm.com> | 2023-06-22 15:13:35 +0200 |
---|---|---|
committer | Mikael Olsson <mikael.olsson@arm.com> | 2023-07-31 14:08:33 +0200 |
commit | 08c42f58bd26680650271a349c76aeb2b521dd72 (patch) | |
tree | 071c21480d85505af80e5556d10c6856f8fde314 /kernel | |
parent | 229e12548da753c1e45f7d3c3b130a7c68ec0826 (diff) | |
download | ethos-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.c | 5 |
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); |