mirror of https://gitee.com/openkylin/linux.git
[media] media: em28xx - fix i2c_xfer to return -ENODEV when dev is removed
In em28xx usb disconnect code path, some dvb fe and tuner drivers attempt i2c transfers from their release interfaces. When device is removed, return -ENODEV instead of attempting to transfer data over i2c. Signed-off-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
b89193e0b0
commit
cc5c5d20c3
|
@ -501,6 +501,12 @@ static int em28xx_i2c_xfer(struct i2c_adapter *i2c_adap,
|
|||
int addr, rc, i;
|
||||
u8 reg;
|
||||
|
||||
/* prevent i2c xfer attempts after device is disconnected
|
||||
some fe's try to do i2c writes/reads from their release
|
||||
interfaces when called in disconnect path */
|
||||
if (dev->disconnected)
|
||||
return -ENODEV;
|
||||
|
||||
rc = rt_mutex_trylock(&dev->i2c_bus_lock);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
|
Loading…
Reference in New Issue