summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2024-03-11 13:13:08 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2025-09-09 15:59:16 +0200
commit6a79e9c91e9e0fb9d4fdcdb288952f62333fa5dc (patch)
tree11d73beede4dab83580bd0ccb308517d2e66f409
parentfc2aaf2d93a6379e26e7b2cbbf3c6b69b98dc37b (diff)
media: mc: Clear minor number reservation at unregistration time
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>
-rw-r--r--drivers/media/mc/mc-devnode.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/media/mc/mc-devnode.c b/drivers/media/mc/mc-devnode.c
index 56444edaf136..0d01cbae98f2 100644
--- a/drivers/media/mc/mc-devnode.c
+++ b/drivers/media/mc/mc-devnode.c
@@ -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);
}
/*