Hi,

Since today for some reason (I've yet uncover) the initialization of my 
PVR500 fails with "Failed to register irq -16", and causes a kernel panic.

The panic() is triggered by videodev.c when ivtv calls 
video_unregister_device for a device that was not yet registered. This can 
happen because ivtv_streams_cleanup (in ivtv-streams) doesn't check if a 
device has been registered before calling video_unregister_device (it 
justs checks if the device has been created). And ivtv_probe calls 
ivtv_streams_cleanup when request_irq fails.

I've verified this by adding a field "registered" to the ivtv_stream 
struct, and setting this field after video_register_device has been 
called. That way I could confirm that ivtv_streams_cleanup was called 
before the streams had been registered (and stop it from calling 
video_unregister_device).

Since I doubt that this is actually the best way to fix the problem, I 
haven't included a patch. But if you like, I could make one.

I just hope that "Failed to register irq -16" doesn't simply mean "Your 
PVR is toast"... :-|

Cheers,
Jochem

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

Reply via email to