linux/drivers/media/usb
Max Kellermann 48775cb73c [media] pctv452e: move buffer to heap, no mutex
commit 73d5c5c864 ("[media] pctv452e: don't do DMA on stack") caused
a NULL pointer dereference which occurs when dvb_usb_init()
calls dvb_usb_device_power_ctrl() for the first time, before the
frontend has been attached. It also caused a recursive deadlock because
tt3650_ci_msg_locked() has already locked the mutex.

So, partially revert it, but move the buffer to the heap
(DMA capable), not to the stack (may not be DMA capable).
Instead of sharing one buffer which needs mutex protection,
do a new heap allocation for each call.

Fixes: commit 73d5c5c864 ("[media] pctv452e: don't do DMA on stack")

Cc: stable@vger.kernel.org # For Kernel 4.9
Signed-off-by: Max Kellermann <max.kellermann@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-12-21 07:15:36 -02:00
..
airspy [media] usb: constify vb2_ops structures 2016-09-19 16:20:35 -03:00
as102 media: usb: as102: as102_usb_drv: don't print error when allocating urb fails 2016-08-30 19:13:53 +02:00
au0828 [media] au0828: don't break long lines 2016-10-21 09:38:09 -02:00
b2c2 [media] b2c2: don't break long lines 2016-10-21 09:38:31 -02:00
cpia2 [media] cpia2: don't break long lines 2016-10-21 09:38:51 -02:00
cx231xx [media] cx231xx: don't break long lines 2016-10-21 09:39:15 -02:00
dvb-usb [media] pctv452e: move buffer to heap, no mutex 2016-12-21 07:15:36 -02:00
dvb-usb-v2 [media] dvb_frontend: tuner_ops.release returns void 2016-11-18 15:07:26 -02:00
em28xx [media] em28xx: don't store usb_device at struct em28xx 2016-12-12 07:30:44 -02:00
go7007 [media] go7007: add MEDIA_CAMERA_SUPPORT dependency 2016-11-23 13:15:02 -02:00
gspca [media] squash lines for simple wrapper functions 2016-11-16 13:28:40 -02:00
hackrf [media] usb: constify vb2_ops structures 2016-09-19 16:20:35 -03:00
hdpvr [media] hdpvr: fix interrupted recording 2016-11-16 13:30:30 -02:00
msi2500 [media] usb: constify vb2_ops structures 2016-09-19 16:20:35 -03:00
pulse8-cec [media] cec: pass parent device in register(), not allocate() 2016-11-29 12:07:17 -02:00
pvrusb2 [media] pvrusb2: use KERNEL_CONT where needed 2016-11-18 09:37:49 -02:00
pwc [media] pwc: don't break long lines 2016-10-21 09:52:08 -02:00
s2255 [media] s2255drv: don't use stack for DMA 2016-10-14 12:52:28 -03:00
siano [media] siano: don't break long lines 2016-10-21 09:52:50 -02:00
stk1160 [media] constify i2c_algorithm structures 2016-09-19 16:27:02 -03:00
stkwebcam [media] stk-webcam: fix an endian bug in stk_camera_read_reg() 2016-11-22 16:29:01 -02:00
tm6000 [media] tm6000: don't break long lines 2016-10-21 09:53:59 -02:00
ttusb-budget [media] ttusb-budget: don't break long lines 2016-10-21 09:54:20 -02:00
ttusb-dec [media] dvb: make DVB frontend *_ops instances "const" 2016-11-18 15:00:22 -02:00
usbtv [media] usbtv: don't do DMA on stack 2016-11-16 13:16:22 -02:00
usbvision [media] usbvision: don't break long lines 2016-10-21 09:55:11 -02:00
uvc [media] uvcvideo: freeing an error pointer 2016-11-29 12:05:00 -02:00
zr364xx [media] zr364xx: don't break long lines 2016-10-21 09:55:35 -02:00
Kconfig [media] pulse8-cec: move out of staging 2016-11-16 15:47:12 -02:00
Makefile [media] pulse8-cec: move out of staging 2016-11-16 15:47:12 -02:00