On 7/9/06, D. Hugh Redelmeier <[EMAIL PROTECTED]> wrote:
| From: Mr. Myth <[EMAIL PROTECTED]>

| I upgraded to 2.6.17-1.2141_FC4 this morning and ivtv will load fine now.  You
| might try updating to the latest FC5 kernel ( 2.6.17-1.2145_FC5 ) to see if it
| now works for you also.

Thanks.  Unfortunately, what I'm doing doesn't work:

- install new kernel (and other current FC5 updates)
        kernel-2.6.17-1.2145_FC5.i686.rpm
  Then reboot so that this becomes the running kernel.

- install the latest stable ATRPMS packages that I think I need:
    ivtv-0.7.0-117.fc5.at.i386.rpm
    ivtv-firmware-audio-0.0.1-5.at.noarch.rpm
    ivtv-firmware-dec-2.02.023-9.at.noarch.rpm
    ivtv-firmware-enc-2.04.024-9.at.noarch.rpm
    ivtv-kmdl-2.6.17-1.2145_FC5-0.7.0-117.fc5.at.i686.rpm
    perl-Video-Frequencies-0.03-3.rhfc5.at.noarch.rpm
     perl-Video-ivtv-0.13-7.rhfc5.at.i386.rpm
    video4linux-20060627-74.rhfc5.at.i386.rpm
    video4linux-kmdl-2.6.17-1.2145_FC5-20060627-74.rhfc5.at.i686.rpm
  Then /sbin/modprobe ivtv

I get an oops again (included at bottom of this message).

The oops seems to be in kobject_get (assuming that the traceback is
reasonable).  This is a very simple routine.  The source code (in
the kernel's lib/kobject.c) is just:

/**
*      kobject_get - increment refcount for object.
*      @kobj:  object.
*/

struct kobject * kobject_get(struct kobject * kobj)
{
        if (kobj)
                kref_get(&kobj->kref);
        return kobj;
}

So it looks as if the bug/mismatch is in a caller and it isn't a simple null
pointer dereference since the kobj is tested for NULL.  All kref_get
is an atominc_inc on a field.

I'm a little puzzled because the program counter points into
kobject_get and yet there are no actual pointer dereferences there.

- yes, -> is a dereference, but the context is of &.  So no
  dereference actually happens within the code for kobject_get.

- the function defined after kobject_get is not static, so the program
  counter is not pointing there without ksymoops not knowing this.

- kref_get is not an inline function, so the dereference inside it
  would not show up as happening withing kobject_get

I don't know how to look the actual object code in the kernel.  gdb
doesn't like /boot/vmlinuz-2.6.17-1.2145_FC5.  gdb /dev/kmem appears
to do something, but it does not like the address of kobject_get
(0xc04d4d76).  I don't have a vmlinux.

Here's the dmesg output:

v4l2_common: no version for "struct_module" found: kernel tainted.
Linux video capture interface: v2.00
ivtv:  ==================== START INIT IVTV ====================
ivtv:  version 0.7.0 (tagged release) loading
ivtv:  Linux version: 2.6.17-1.2145_FC5 mod_unload 686 REGPARM 4KSTACKS gcc-4.1
ivtv:  In case of problems please include the debug info between
ivtv:  the START INIT IVTV and END INIT IVTV lines, along with
ivtv:  any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Hauppauge WinTV PVR-250 card (cx23416 based)
ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI 19 (level, low) -> IRQ 209
ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
tveeprom 1-0050: Hauppauge model 32032, rev B382, serial# 7260995
tveeprom 1-0050: tuner model is LG TAPC H791F (idx 82, type 39)
tveeprom 1-0050: TV standards NTSC(M) (eeprom 0x08)
tveeprom 1-0050: audio processor is MSP4448 (idx 27)
tveeprom 1-0050: decoder processor is SAA7115 (idx 19)
tveeprom 1-0050: has no radio, has IR remote
tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0)
saa7115 1-0021: saa7115 found @ 0x42 (ivtv i2c driver #0)
msp3400 1-0040: MSP4448G-B3 found @ 0x80 (ivtv i2c driver #0)
msp3400 1-0040: MSP4448G-B3 supports radio, mode is autodetect and autoselect
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
ivtv0: Encoder revision: 0x02040024
BUG: unable to handle kernel paging request at virtual address 76747729
printing eip:
c04d57f4
*pde = 00000000
Oops: 0000 [#1]
last sysfs file: /class/firmware/0000:00:0b.0/loading
Modules linked in: msp3400(U) saa7115(U) tda9887 tuner(U) ivtv(U) i2c_algo_bit tveeprom(U) videodev(U) v4l1_compat(U) v4l2_common(U) autofs4 hidp rfcomm l2cap bluetooth sunrpc acpi_cpufreq dm_mirror dm_mod video button battery ac radeon drm ipv6 lp parport_pc parport ohci1394 floppy ieee1394 ehci_hcd snd_via82xx gameport snd_ac97_codec snd_ac97_bus snd_seq_dummy snd_seq_oss uhci_hcd via_ircc snd_seq_midi_event irda 8139cp snd_seq 8139too snd_pcm_oss snd_mixer_oss snd_pcm crc_ccitt mii i2c_viapro snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore i2c_core ext3 jbd
CPU:    0
EIP:    0060:[<c04d57f4>]    Tainted: GF     VLI
EFLAGS: 00010286   (2.6.17-1.2145_FC5 #1)
EIP is at kref_get+0x6/0x46
eax: 76747729   ebx: 76747729   ecx: 00000000   edx: f7ff8400
esi: c0644fc0   edi: e6637667   ebp: fffffff4   esp: e9275bb8
ds: 007b   es: 007b   ss: 0068
Process modprobe (pid: 2562, threadinfo=e9275000 task=eacbd000)
Stack: 00000246 f7ffe180 f7ffe180 fffffff4 00000246 76747711 c04d4d85 e66376c0
       c0497061 00000246 ffffffff 00000000 76747711 e65c9d5c e662f928 e6b8220c
       f8cd9a80 e66376e0 00000000 c053e43f e6b82214 c063eec6 e6b82298 f8cd9a80
Call Trace:
<c04d4d85> kobject_get+0xf/0x13  <c0497061> sysfs_create_link+0xa6/0xfd
<c053e43f> class_device_add+0x1b6/0x30d  <f8cd526c> video_register_device+0x166/0x197 [videodev]
<f8e41139> ivtv_reg_dev+0xe5/0x181 [ivtv]  <f8e4146e> ivtv_streams_setup+0x254/0x3f7 [ivtv]
<f8e3bf68> ivtv_probe+0x1778/0x1b74 [ivtv]  <c042e707> __mutex_init+0x30/0x49
<c0472fed> init_once+0x0/0xc  <c0472fc3> inode_init_once+0x1a3/0x1cd
<c04dfb37> pci_match_device+0x13/0xb3  <c053d801> __driver_attach+0x0/0x8b
<c04dfc23> pci_device_probe+0x36/0x57  <c053d73d> driver_probe_device+0x45/0x9a
<c053d864> __driver_attach+0x63/0x8b  <c053d1cf> bus_for_each_dev+0x37/0x59
<c053d69e> driver_attach+0x16/0x18  <c053d801> __driver_attach+0x0/0x8b
<c053ced5> bus_add_driver+0x6f/0x10d  <c04dfdc7> __pci_register_driver+0x5b/0x7d
<f8e3a55d> module_start+0xd4/0xfe [ivtv]  <c0433a61> sys_init_module+0x134f/0x14b2
<f8e02000> tuner_fixup_std+0x0/0x576 [tuner]  <c0420ddc> __request_region+0x0/0x7f
<c0402cb3> syscall_call+0x7/0xb
Code: bb eb f2 ff 8b 03 48 74 0b ff 0b 0f 94 c0 31 d2 84 c0 74 09 89 d8 ff d6 ba 01 00 00 00 83 c4 14 89 d0 5b 5e c3 53 89 c3 83 ec 14 <8b> 00 85 c0 75 32 e8 48 65 f4 ff 89 44 24 10 c7 44 24 0c 3d af
EIP: [<c04d57f4>] kref_get+0x6/0x46 SS:ESP 0068:e9275bb8
BUG: modprobe/2562, lock held at task exit time!
[e65ecc68] {inode_init_once}
.. held by:          modprobe: 2562 [eacbd000, 117]
... acquired at:               sysfs_create_link+0x3a/0xfd

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel


Try removing video4linux (and the part of rc.sysinit that modprobes it, if you've made the changes Jarod suggested way back when). I had the same problem, and removed ivtv and video4linux and the re-added ivtv and now everything is sweet. I think v4l is part of the kernel now.
 
Regards,

Chris
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to