]> git.baikalelectronics.ru Git - kernel.git/commit
V4L/DVB (8108): Fix open/close race in saa7134
authorArjan van de Ven <arjan@linux.intel.com>
Sun, 22 Jun 2008 20:03:02 +0000 (17:03 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 26 Jun 2008 18:58:59 +0000 (15:58 -0300)
commit4e07bb3fbea114de97449f0dd9dd1451a1435789
treebbeba425693062ad38bc13f73ec8d0f5744f26e2
parent7951c789fda19a07da391cf010b5747bf2c0ccaf
V4L/DVB (8108): Fix open/close race in saa7134

The saa7134 driver uses a (non-atomic) variable in an attempt to
only allow one opener of the device (how it deals with sending
the fd over unix sockets I don't know).

Unfortunately, the release function first decrements this variable,
and THEN goes on to disable more of the device. This allows for
a race where another opener of the device comes in after the decrement of
the variable, configures the hardware just to then see the hardware
be disabled by the rest of the release function.

This patch makes the release function use the same lock as the open
function to protect the hardware as well as the variable (which now
at least has some locking to protect it).

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/saa7134/saa7134-empress.c