android_kernel_xiaomi_sdm845/drivers/media/video
Andy Walls 6e0e12f15a V4L/DVB (10229): cx88-dvb: Fix order of frontend allocations
On Fri, 2009-01-09 at 15:40 +0300, Goga777 wrote:
> hI
>
> With today v4l-dvb I couldn't run my hvr4000 card on 2.6.27 kernel

> [   14.555162] cx88/2: cx2388x dvb driver version 0.0.6 loaded
> [   14.555231] cx88/2: registering cx8802 driver, type: dvb access: shared
> [   14.555303] cx88[0]/2: subsystem: 0070:6900, board: Hauppauge WinTV-HVR4000 DVB-S/S2/T/Hybrid [card=68]
> [   14.555374] cx88[0]/2: cx2388x based DVB/ATSC card
> [   14.555446] BUG: unable to handle kernel NULL pointer dereference at 00000000
> [   14.555560] IP: [<c02e6bff>] __mutex_lock_common+0x3c/0xe4
> [   14.555652] *pde = 00000000
> [   14.555735] Oops: 0002 [#1] SMP
> [   14.555851] Modules linked in: cx88_dvb(+) cx88_vp3054_i2c videobuf_dvb wm8775 dvb_core tuner_simple tuner_types snd_seq_dummy tda9887 snd_seq_oss(+) snd_intel8x0(+) tda8290 snd_seq_midi snd_seq_midi_event snd_ac97_codec cx88_alsa(+) snd_seq ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_rawmidi snd_timer tuner snd_seq_device psmouse snd serio_raw ivtv(+) cx8800 cx8802 cx88xx soundcore cx2341x ir_common ns558 i2c_i801 v4l2_common videodev i2c_algo_bit gameport v4l1_compat snd_page_alloc tveeprom pcspkr floppy videobuf_dma_sg videobuf_core btcx_risc i2c_core parport_pc parport button intel_agp agpgart shpchp pci_hotplug rng_core iTCO_wdt sd_mod evdev usbhid hid ff_memless ext3 jbd mbcache ide_cd_mod cdrom ide_disk ata_piix libata dock 8139too usb_storage scsi_mod piix 8139cp mii ide_core uhci_hcd ehci_hcd usbcore thermal processor fan thermal_sys
> [   14.557013]
> [   14.557013] Pid: 2310, comm: modprobe Not tainted (2.6.27.1-custom-default1 #1)
> [   14.557013] EIP: 0060:[<c02e6bff>] EFLAGS: 00010246 CPU: 1
> [   14.557013] EIP is at __mutex_lock_common+0x3c/0xe4
> [   14.557013] EAX: de653e98 EBX: de739118 ECX: de739120 EDX: 00000000
> [   14.557013] ESI: dd4209e0 EDI: de73911c EBP: de653eb0 ESP: de653e88
> [   14.557013]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> [   14.557013] Process modprobe (pid: 2310, ti=de652000 task=dd4209e0 task.ti=de652000)
> [   14.557013] Stack: 3535352e 5d343733 00000002 de739120 de739120 00000000 c044a6c0 de739110
> [   14.557013]        de739118 00000001 de653ebc c02e6d38 c02e6b88 de653ec4 c02e6b88 de653ed8
> [   14.557013]        e1ac7115 de6a9000 00000001 00000000 de653f0c e1aeca62 de739004 de739000
> [   14.557013] Call Trace:
> [   14.557013]  [<c02e6d38>] ? __mutex_lock_slowpath+0x17/0x1a
> [   14.557013]  [<c02e6b88>] ? mutex_lock+0x12/0x14
> [   14.557013]  [<c02e6b88>] ? mutex_lock+0x12/0x14
> [   14.557013]  [<e1ac7115>] ? videobuf_dvb_get_frontend+0x19/0x40 [videobuf_dvb]
> [   14.557013]  [<e1aeca62>] ? cx8802_dvb_probe+0xc9/0x1945 [cx88_dvb]
> [   14.557013]  [<e09ee41e>] ? cx8802_register_driver+0xbd/0x1ac [cx8802]
> [   14.557013]  [<e09ee467>] ? cx8802_register_driver+0x106/0x1ac [cx8802]
> [   14.557013]  [<e1aee37f>] ? dvb_init+0x22/0x27 [cx88_dvb]
> [   14.557013]  [<c0101132>] ? _stext+0x42/0x11a
> [   14.557013]  [<e1aee35d>] ? dvb_init+0x0/0x27 [cx88_dvb]
> [   14.557013]  [<c013d2ca>] ? __blocking_notifier_call_chain+0xe/0x51
> [   14.557013]  [<c014970b>] ? sys_init_module+0x8c/0x17d
> [   14.557013]  [<c0103b42>] ? syscall_call+0x7/0xb
> [   14.557013]  [<c013007b>] ? round_jiffies_relative+0x14/0x16
> [   14.557013]  =======================
> [   14.557013] Code: 78 04 89 f8 89 55 e0 64 8b 35 00 30 3f c0 e8 2e 0c 00 00 8d 43 08 89 45 e4 8b 53 0c 8d 45 e8 8b 4d e4 89 43 0c 89 4d e8 89 55 ec <89> 02 89 75 f0 83 c8 ff 87 03 48 74 55 8a 45 e0 8b 4d e0 83 e0
> [   14.557013] EIP: [<c02e6bff>] __mutex_lock_common+0x3c/0xe4 SS:ESP 0068:de653e88
> [   14.565211] ---[ end trace 94d8b014e067ac7b ]---

Tested and confirmed to work by several users at linux-media@vger.kernel.org

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-29 08:35:39 -02:00
..
au0828 V4L/DVB (9252): au0828: Checkpatch compliance 2008-10-17 17:27:26 -03:00
bt8xx V4L/DVB (10173): Missing v4l2_prio_close in radio_release 2009-01-03 10:50:38 -02:00
cpia2 V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
cx18 V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
cx88 V4L/DVB (10229): cx88-dvb: Fix order of frontend allocations 2009-01-29 08:35:39 -02:00
cx23885 V4L/DVB (10218): cx23885: Fix Oops for mixed install of analog and digital only cards 2009-01-29 08:35:38 -02:00
cx25840 V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
em28xx V4L/DVB (10228): em28xx: fix audio output PCM IN selection 2009-01-29 08:35:39 -02:00
et61x251 V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
gspca V4L/DVB (10180): drivers/media: Fix a number of sparse warnings 2009-01-07 22:18:55 -02:00
ivtv V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
ovcamchip i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
pvrusb2 USB: change interface to usb_lock_device_for_reset() 2009-01-07 09:59:52 -08:00
pwc V4L/DVB (10193): removed unused #include <version.h>'s 2009-01-29 08:35:36 -02:00
saa7134 V4L/DVB (10219): saa7134: Prevent Oops due to stale IRQ status when enabling interrupts 2009-01-29 08:35:38 -02:00
sn9c102 V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
usbvideo V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc 2009-01-07 22:18:56 -02:00
usbvision V4L/DVB (10185): Use negated usb_endpoint_xfer_control, etc 2009-01-07 22:18:56 -02:00
uvc V4L/DVB (10199): uvcvideo: Fix GET_DEF failure detection. 2009-01-29 08:35:37 -02:00
zc0301 V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
zoran V4L/DVB (10226): zoran: Get rid of extra module ref count 2009-01-29 08:35:38 -02:00
adv7170.c V4L/DVB (9198): adv7170: convert i2c driver for new i2c API 2008-10-17 17:15:58 -03:00
adv7175.c V4L/DVB (9199): adv7175: convert i2c driver for new i2c API 2008-10-17 17:16:08 -03:00
arv.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
bt819.c V4L/DVB (9200): bt819: convert i2c driver for new i2c API 2008-10-17 17:17:20 -03:00
bt856.c V4L/DVB (9201): bt856: convert i2c driver for new i2c API 2008-10-17 17:17:30 -03:00
bt866.c V4L/DVB (9202): bt866: convert i2c driver for new i2c API 2008-10-17 17:17:36 -03:00
btcx-risc.c V4L/DVB (8745): v4l2: fix a bunch of compile warnings. 2008-10-12 09:36:52 -02:00
btcx-risc.h V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings 2008-09-03 18:37:13 -03:00
bw-qcam.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
bw-qcam.h V4L/DVB (8780): v4l: replace the last uses of video_exclusive_open/release 2008-10-12 09:36:53 -02:00
c-qcam.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
cafe_ccic-regs.h
cafe_ccic.c i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
cpia_pp.c
cpia_usb.c
cpia.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
cpia.h V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h 2008-07-23 19:00:17 -03:00
cs53l32a.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
cs5345.c V4L/DVB (10193): removed unused #include <version.h>'s 2009-01-29 08:35:36 -02:00
cs8420.h
cx2341x.c V4L/DVB (8634): v4l2: extend MPEG Encoding API with AVC and AAC 2008-10-12 09:36:47 -02:00
dabusb.c USB: remove warn() macro from usb media drivers 2008-10-17 14:41:08 -07:00
dabusb.h
font.h
hexium_gemini.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
hexium_orion.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
ibmmpeg2.h
indycam.c
indycam.h
ir-kbd-i2c.c V4L/DVB (9521): V4L: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-29 17:53:26 -02:00
Kconfig V4L/DVB (10099): soc-camera: add support for MT9T031 CMOS camera sensor from Micron 2008-12-30 09:40:30 -02:00
ks0127.c V4L/DVB (9203): ks0127: convert i2c driver for new i2c API 2008-10-17 17:17:40 -03:00
ks0127.h
m52790.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
Makefile V4L/DVB (10137): v4l2-compat32: only build if needed 2009-01-02 17:11:25 -02:00
meye.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
meye.h V4L/DVB (8780): v4l: replace the last uses of video_exclusive_open/release 2008-10-12 09:36:53 -02:00
msp3400-driver.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
msp3400-driver.h V4L/DVB (9825): msp3400: convert to v4l2_subdev. 2008-12-30 09:38:39 -02:00
msp3400-kthreads.c V4L/DVB (9825): msp3400: convert to v4l2_subdev. 2008-12-30 09:38:39 -02:00
mt9m001.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
mt9m111.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
mt9t031.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
mt9v022.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
mxb.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
mxb.h
omap24xxcam-dma.c V4L/DVB (9815): omap2: add OMAP2 camera driver. 2008-12-30 09:38:35 -02:00
omap24xxcam.c V4L/DVB (10135): v4l2: introduce v4l2_file_operations. 2009-01-02 17:11:12 -02:00
omap24xxcam.h V4L/DVB (9815): omap2: add OMAP2 camera driver. 2008-12-30 09:38:35 -02:00
ov511.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
ov511.h V4L/DVB (9116): USB: remove info() macro from usb media drivers 2008-10-12 09:37:14 -02:00
ov772x.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
ov7670.c i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
pms.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
pxa_camera.c V4L/DVB (10176b): pxa-camera: fix redefinition warnings and missing DMA definitions 2009-01-07 22:18:55 -02:00
s2255drv.c V4L/DVB (10135): v4l2: introduce v4l2_file_operations. 2009-01-02 17:11:12 -02:00
saa711x_regs.h
saa717x.c V4L/DVB (10193): removed unused #include <version.h>'s 2009-01-29 08:35:36 -02:00
saa5246a.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
saa5249.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
saa6588.c v4l-dvb: remove legacy checks to allow support for kernels < 2.6.10 2008-07-20 07:17:52 -03:00
saa7110.c V4L/DVB (9372): Minor fixes to the saa7110 driver 2008-11-11 08:11:23 -02:00
saa7111.c V4L/DVB (9205): saa7111: convert i2c driver for new i2c API 2008-10-17 17:17:52 -03:00
saa7114.c V4L/DVB (9206): saa7114: convert i2c driver for new i2c API 2008-10-17 17:19:41 -03:00
saa7115.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
saa7121.h
saa7127.c V4L/DVB (10216): saa7127: fix broken S-Video with saa7129 2009-01-29 08:35:38 -02:00
saa7146.h
saa7146reg.h
saa7185.c V4L/DVB (9207): saa7185: convert i2c driver for new i2c API 2008-10-17 17:20:01 -03:00
saa7191.c
saa7191.h
se401.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
se401.h V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h 2008-07-23 19:00:17 -03:00
sh_mobile_ceu_camera.c V4L/DVB (10092): Change V4L2 field to ANY from NONE on sh_mobile_ceu_camera.c 2008-12-30 09:40:27 -02:00
soc_camera_platform.c V4L/DVB (10080): soc-camera: readability improvements, more strict operations checks 2008-12-30 09:40:21 -02:00
soc_camera.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
stk-sensor.c
stk-webcam.c V4L/DVB (10135): v4l2: introduce v4l2_file_operations. 2009-01-02 17:11:12 -02:00
stk-webcam.h V4L/DVB (9193): stk-webcam: minor cleanup 2008-10-17 17:14:57 -03:00
stradis.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
stv680.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
stv680.h
tcm825x.c V4L/DVB (7897): TCM825x: Include invertation of image mirroring in configuration 2008-07-20 07:06:01 -03:00
tcm825x.h V4L/DVB (7897): TCM825x: Include invertation of image mirroring in configuration 2008-07-20 07:06:01 -03:00
tda7432.c V4L/DVB (9964): tda7432: convert to v4l2_subdev. 2008-12-30 09:39:31 -02:00
tda9840.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
tda9840.h V4L/DVB (8941): mxb/tda9840: cleanups, use module saa7115 instead of saa7111. 2008-10-12 09:37:00 -02:00
tda9875.c V4L/DVB (9966): tda9875: convert to v4l2_subdev. 2008-12-30 09:39:32 -02:00
tea6415c.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
tea6415c.h
tea6420.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
tea6420.h
tlv320aic23b.c V4L/DVB (9963): tlv320aic23b: convert to v4l2_subdev. 2008-12-30 09:39:31 -02:00
tuner-core.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
tvaudio.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
tveeprom.c V4L/DVB (10209): tveeprom: Properly initialize tuner type (BZ#11367) 2009-01-29 08:35:37 -02:00
tvp514x_regs.h V4L/DVB (9817): v4l: add new tvp514x I2C video decoder driver 2008-12-30 09:38:36 -02:00
tvp514x.c V4L/DVB (10202): [PATCH] v4l/tvp514x: Don't write after line end 2009-01-29 08:35:37 -02:00
tvp5150_reg.h
tvp5150.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
tw9910.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
upd64031a.c V4L/DVB (10193): removed unused #include <version.h>'s 2009-01-29 08:35:36 -02:00
upd64083.c V4L/DVB (10193): removed unused #include <version.h>'s 2009-01-29 08:35:36 -02:00
v4l1-compat.c poll: allow f_op->poll to sleep 2009-01-06 15:59:12 -08:00
v4l2-common.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
v4l2-compat-ioctl32.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
v4l2-dev.c V4L/DVB (10139): v4l: rename v4l_compat_ioctl32 to v4l2_compat_ioctl32 2009-01-02 17:11:39 -02:00
v4l2-device.c V4L/DVB (10181): v4l2-device: Fix some sparse warnings 2009-01-07 22:18:55 -02:00
v4l2-int-device.c V4L/DVB (9322): v4l2-int-if: Export more interfaces to modules 2008-10-21 14:31:20 -02:00
v4l2-ioctl.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
v4l2-subdev.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
videobuf-core.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
videobuf-dma-contig.c V4L/DVB (8425): v4l: fix checkpatch errors introduced by recent commits 2008-07-23 08:09:21 -03:00
videobuf-dma-sg.c V4L/DVB (10176a): Switch remaining clear_user_page users over to clear_user_highpage 2009-01-07 22:18:54 -02:00
videobuf-dvb.c V4L/DVB (9335): videobuf: split unregister bus creating self-contained frontend de-allocator 2008-10-21 14:32:08 -02:00
videobuf-vmalloc.c V4L/DVB (8525): fix a few assorted spelling mistakes. 2008-07-27 11:07:13 -03:00
vino.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
vino.h
vivi.c V4L/DVB (10135): v4l2: introduce v4l2_file_operations. 2009-01-02 17:11:12 -02:00
vp27smpx.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
vpx3220.c V4L/DVB (9208): vpx3220: convert i2c driver for new i2c API 2008-10-17 17:20:13 -03:00
w9966.c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
w9968cf_decoder.h
w9968cf_vpp.h
w9968cf.c i2c: Drop I2C_CLASS_CAM_DIGITAL 2009-01-07 14:29:17 +01:00
w9968cf.h V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible 2008-07-26 13:11:36 -03:00
wm8739.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
wm8775.c V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID. 2009-01-02 17:11:52 -02:00
zr364xx.c V4L/DVB (10171): Use usb_set_intfdata 2009-01-03 10:50:26 -02:00