• Arjan van de Ven's avatar
    V4L/DVB (8108): Fix open/close race in saa7134 · a1789873
    Arjan van de Ven authored
    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: default avatarArjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    a1789873
saa7134-empress.c 11.3 KB