Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] More thoughts on coldboot driver crash



I've been doing some more investigation... still ongoing, but I'm
posting my interim results in case something rings a bell with someone
with more experience with the av7110/saa7146 code.

I modified my test program so that it created a section filter, but did
not set DMX_IMMEDIATE_START. The filter was created fine.

I then set the filter going with DMX_START.. which caused the oops

Next, I added trace statements all over the relevant filter code in
dmxdev.c. I found that this code executed perfectly; my trace statements
show that the driver instantiates and starts the filter without a
problem. 

Therefore, has to be something in the IRQ handler (as the Ooops traces
show). I checked out CI_Handle first... but there wasn't much to it, and
I noticed from the oops the error was actually coming from
saa7146_core.c/saa7146_irq().

From disassembling the code, the error seems to come from an attempted
jump to an invalid location... The only place this can occur in
saa7146_irq() is in the loop which lets "extensions handle the
interrupt" (about line 431).

I temporarily commented out the following line:
	saa7146_ext[i]->irq_handler(saa, isr, saa->data[i]);

Sure enough, I no longer get the oopses.... but, of course, I receive no
data in userspace because the IRQs ain't being handled any more :)

I will keep going; hope this helps shed light on the problem.


By the way, I find I have to leave the machine off for 2 or 3 minutes to
reliably get this affect, which agrees with what Chris Pitchford said.





-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index