[linux-dvb] Oops in tda10023

Antti Palosaari crope at iki.fi
Fri May 30 22:30:25 CEST 2008


Antti Palosaari wrote:
> e9hack wrote:
>> Antti Palosaari schrieb:
>>>> I think the oops occurs, because tda10023_writereg() fails in tda10023_attach(). If 
>>>> tda10023_writereg fails, an error message is printed. In this case, 
>>>> state->frontend.dvb->num is accessed, but it isn't initialized yet.
>>> hmm, I see the problem now. Originally state was initialized before 
>>> tda10023_writereg() was called but after I did some changes this is not 
>>> done anymore. And when writereg() fails in attach some reason it oops.
>> It wasn't introduced with your modifications. The frontend.dvb part is initialized after 
>> the attach call. tda10023_writereg() must check, if state->frontend.dvb is initialized or 
>> not.
> 
> yeah, you are correct. I looked through all frontend drivers and only 
> TDA10021 and TDA10023 was using dvb->num in writereg. Anyhow, TDA10021 
> is not affected because it does not write in attach.

TDA10023 uses writereg to wakeup from standby for reading chip id. I 
wonder if this is necessary at all. I will test that later.

Anyhow, I see there is two ways to fix that (only Oops from TDA10023, 
not issue why it actually fails):
1) remove state->frontend.dvb->num from tda10023_writereg()
2) remove wakeup if in standby from tda10023_attach()

Antti
-- 
http://palosaari.fi/



More information about the linux-dvb mailing list