]> git.baikalelectronics.ru Git - kernel.git/commit
media: v4l2-ctrls: improve media_request_(un)lock_for_update
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 27 Aug 2018 15:23:41 +0000 (11:23 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Tue, 11 Sep 2018 13:55:39 +0000 (09:55 -0400)
commita48a4f6a3c1931a075c9ec471d4d54e89f33affb
tree828fdfd532676a7f0b61b889614fa0d2b617ba56
parent206e260dd2042010bcb7820485c445a183f222d0
media: v4l2-ctrls: improve media_request_(un)lock_for_update

The request reference count was decreased again once a reference to the
request object was taken. Postpone this until we finished using the object.

In theory I think it is possible that the request_fd can be closed by
the application from another thread. In that case when request_put is
called the whole request would be freed.

It's highly unlikely, but let's just be safe and fix this potential
race condition.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/v4l2-core/v4l2-ctrls.c