[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