[pvrusb2] driver oops [was: An Apology to the list]

JE Geiger james.e.geiger at gmail.com
Thu Apr 8 08:07:49 CDT 2010


I compiled 2.6.30.10 overnight and when I do modprobe and rmmod on
pvrusb2 it looks OK.

Last 4 lines are from the rmmod:

Linux video capture interface: v2.00
usbcore: registered new interface driver pvrusb2
pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner
pvrusb2: Debug mask is 31 (0x1f)
cx25840 2-0044: cx25843-24 found @ 0x88 (pvrusb2_a)
pvrusb2: Attached sub-driver cx25840
tuner 2-0042: chip found @ 0x84 (pvrusb2_a)
pvrusb2: Attached sub-driver tuner
cx25840 2-0044: firmware: requesting v4l-cx25840.fw
cx25840 2-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
tveeprom 2-00a2: Hauppauge model 75111, rev C3E9, serial# 5385612
tveeprom 2-00a2: MAC address is 00-0D-FE-52-2D-8C
tveeprom 2-00a2: tuner model is Philips 18271_8295 (idx 149, type 54)
tveeprom 2-00a2: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
tveeprom 2-00a2: audio processor is CX25843 (idx 37)
tveeprom 2-00a2: decoder processor is CX25843 (idx 30)
tveeprom 2-00a2: has radio, has IR receiver, has IR transmitter
pvrusb2: Supported video standard(s) reported available in hardware:
PAL-M/N/Nc;NTSC-M/Mj/Mk;ATSC-8VSB/16VSB
pvrusb2: Mapping standards mask=0x300b700
(PAL-M/N/Nc;NTSC-M/Mj/Mk;ATSC-8VSB/16VSB)
pvrusb2: Setting up 6 unique standard(s)
pvrusb2: Set up standard idx=0 name=PAL-M
pvrusb2: Set up standard idx=1 name=PAL-N
pvrusb2: Set up standard idx=2 name=PAL-Nc
pvrusb2: Set up standard idx=3 name=NTSC-M
pvrusb2: Set up standard idx=4 name=NTSC-Mj
pvrusb2: Set up standard idx=5 name=NTSC-Mk
pvrusb2: Initial video standard (determined by device type): NTSC-M
pvrusb2: Device initialization completed successfully.
pvrusb2: registered device video0 [mpeg]
cx25840 2-0044: firmware: requesting v4l-cx25840.fw
cx25840 2-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
tda829x 2-0042: setting tuner address to 60
tda18271 2-0060: creating new instance
TDA18271HD/C1 detected @ 2-0060
tda829x 2-0042: type set to tda8295+18271
usb 1-1: firmware: requesting v4l-cx2341x-enc.fw

modprobe above
rmmod below (space added for effect; not in original)

usbcore: deregistering interface driver pvrusb2
pvrusb2: Device being rendered inoperable
pvrusb2: unregistered device video0 [mpeg]
tda18271 2-0060: destroying instance

diff of 33.2 and 30.10 for pvrusb2 part of tree, I notice that the
oops occurred immediately before the last two lines of    video0 and
tda removal.

http://www.kd4ab.org/diff33.2to30.10.txt

I can diff others if it is needed.  Not a big developer, but I can
patch and compile.


Advise if you need more info.



>
> No, the pvrusb2 driver should never cause a kernel oops.  There is logic
> specifically in there to cleanly untangle itself from the kernel when it
> is removed - in particular when it is associated to active hardware.
>
> If you are talking about kobj structures, those are basic elements in
> the kernel for tracking specific kinds of resources.  The pvrusb2
> driver, like many other drivers, has to deal with those too.  If you
> have found a way to oops the kernel upon removal of the pvrusb2 driver
> then I need to chase it - if only at least to try to reproduce it here.
> Knowing that the problem only started with the 2.6.33.x kernel is a huge
> help.
>
> I'm sure the driver is working fine under normal circumstances.  What I
> am concerned about however are abnormal circumstances.  The pvrusb2
> driver works with hotpluggable hardware and has to be able to handle all
> manner of wierd crap that can happen if the hardware is yanked at ANY
> TIME during the driver's execution.  Similarly, if an attempt is made to
> remove the driver from the kernel at ANY TIME, the driver is supposed to
> be able to handle this.  It is entirely possible that there are corner
> cases still happening, but I try to hunt down and deal with these when
> they are spotted.  You just hit one, it seems.  I'm thinking it's
> something new with that later kernel, because the circumstance you are
> describing is very common - and I've done it a lot here without error
> many times while debugging the driver.


More information about the pvrusb2 mailing list