linux-xiaomi-chiron/drivers/media/usb/dvb-usb-v2
Pavel Skripkin 44870a9e7a media: mxl111sf: change mutex_init() location
Syzbot reported, that mxl111sf_ctrl_msg() uses uninitialized
mutex. The problem was in wrong mutex_init() location.

Previous mutex_init(&state->msg_lock) call was in ->init() function, but
dvb_usbv2_init() has this order of calls:

	dvb_usbv2_init()
	  dvb_usbv2_adapter_init()
	    dvb_usbv2_adapter_frontend_init()
	      props->frontend_attach()

	  props->init()

Since mxl111sf_* devices call mxl111sf_ctrl_msg() in ->frontend_attach()
internally we need to initialize state->msg_lock before
frontend_attach(). To achieve it, ->probe() call added to all mxl111sf_*
devices, which will simply initiaize mutex.

Reported-and-tested-by: syzbot+5ca0bf339f13c4243001@syzkaller.appspotmail.com

Fixes: 8572211842 ("[media] mxl111sf: convert to new DVB USB")
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2021-09-30 10:08:01 +02:00
..
af9015.c
af9015.h
af9035.c
af9035.h
anysee.c
anysee.h
au6610.c
au6610.h
az6007.c
ce6230.c
ce6230.h
dvb_usb.h
dvb_usb_common.h
dvb_usb_core.c
dvb_usb_urb.c
dvbsky.c
ec168.c
ec168.h
gl861.c
Kconfig
lmedm04.c
lmedm04.h
Makefile
mxl111sf-demod.c
mxl111sf-demod.h
mxl111sf-gpio.c
mxl111sf-gpio.h
mxl111sf-i2c.c
mxl111sf-i2c.h
mxl111sf-phy.c
mxl111sf-phy.h
mxl111sf-reg.h
mxl111sf-tuner.c
mxl111sf-tuner.h
mxl111sf.c
mxl111sf.h
rtl28xxu.c
rtl28xxu.h
usb_urb.c
zd1301.c