media: dvb-frontends/stv0910: release lock on gate_ctrl() failure
authorDaniel Scheller <d.scheller@gmx.net>
Wed, 23 Aug 2017 16:09:58 +0000 (12:09 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Sun, 27 Aug 2017 10:35:13 +0000 (06:35 -0400)
commit6b852620fa75d3137929538b4a9aec2f953ff03c
treecba4ee9ccc44b17acfe77d73505ec92709cd74f7
parente59eb4adf0d79fe7692c08c07445ec9efc8ddc1c
media: dvb-frontends/stv0910: release lock on gate_ctrl() failure

Whenever write_reg() fails to open/close the demod's I2C gate, release the
lock to avoid deadlocking situations. If I2c gate open failed, there's no
need to hold a lock, and if close fails, the mutex_unlock() at the end of
the function is never reached, leaving the mutex_lock in locked state,
which in turn will cause potential for deadlocks. Thus, release the lock
on failure.

While we're touching gate_ctrl(), add some explanation about the need for
locking and the shared I2C bus/gate.

Cc: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Daniel Scheller <d.scheller@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/dvb-frontends/stv0910.c