Merge tag 'rpmsg-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc...
[linux-2.6-microblaze.git] / drivers / rpmsg / rpmsg_ctrl.c
index 107da70..4332538 100644 (file)
@@ -194,10 +194,12 @@ static void rpmsg_ctrldev_remove(struct rpmsg_device *rpdev)
        struct rpmsg_ctrldev *ctrldev = dev_get_drvdata(&rpdev->dev);
        int ret;
 
+       mutex_lock(&ctrldev->ctrl_lock);
        /* Destroy all endpoints */
        ret = device_for_each_child(&ctrldev->dev, NULL, rpmsg_chrdev_eptdev_destroy);
        if (ret)
                dev_warn(&rpdev->dev, "failed to nuke endpoints: %d\n", ret);
+       mutex_unlock(&ctrldev->ctrl_lock);
 
        cdev_device_del(&ctrldev->cdev, &ctrldev->dev);
        put_device(&ctrldev->dev);