Re: SiS/Trident 4DWave sound driver oops

Tachino Nobuhiro (tachino@open.nm.fujitsu.co.jp)
Fri, 26 Oct 2001 10:56:31 +0900


Hello,

At 25 Oct 2001 21:45:58 -0400,
Robert Love wrote:
>
> On Thu, 2001-10-25 at 21:37, Tachino Nobuhiro wrote:
> > Following patch may fix your oops. Please try.
>
> Hm, I don't think so. The last area is marked zero so code can know
> when it ends. This is common practice.

But the code does not use the last area. this is the code in
ac97_probe_codec().

id1 = codec->codec_read(codec, AC97_VENDOR_ID1);
id2 = codec->codec_read(codec, AC97_VENDOR_ID2);
for (i = 0; i < ARRAY_SIZE(ac97_codec_ids); i++) {
if (ac97_codec_ids[i].id == ((id1 << 16) | id2)) {
codec->type = ac97_codec_ids[i].id;
codec->name = ac97_codec_ids[i].name;
codec->codec_ops = ac97_codec_ids[i].ops;
break;
}
}

If id1 and id2 happen to be 0, it matches the last entry and codec_ops
is set to uncertain value(maybe 0). it may cause the oops in ac97_init_mixer().
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/