]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: mc: Clear minor number reservation at unregistration time
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 11 Mar 2024 11:13:08 +0000 (13:13 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 9 Sep 2025 13:59:16 +0000 (15:59 +0200)
Clear the media device's minor number reservation at unregister time as
there's no need to keep it reserved for longer. This makes it possible to
reserve the same minor right after unregistration.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/mc/mc-devnode.c

index 56444edaf13651874331e7c04e86b0a585067d38..0d01cbae98f272fd77476a61d997c4bf6e674bb5 100644 (file)
@@ -50,11 +50,6 @@ static void media_devnode_release(struct device *cd)
 {
        struct media_devnode *devnode = to_media_devnode(cd);
 
-       mutex_lock(&media_devnode_lock);
-       /* Mark device node number as free */
-       clear_bit(devnode->minor, media_devnode_nums);
-       mutex_unlock(&media_devnode_lock);
-
        /* Release media_devnode and perform other cleanups as needed. */
        if (devnode->release)
                devnode->release(devnode);
@@ -284,6 +279,10 @@ void media_devnode_unregister(struct media_devnode *devnode)
        mutex_unlock(&media_devnode_lock);
 
        put_device(&devnode->dev);
+
+       mutex_lock(&media_devnode_lock);
+       clear_bit(devnode->minor, media_devnode_nums);
+       mutex_unlock(&media_devnode_lock);
 }
 
 /*