Re: SiS/Trident 4DWave sound driver oops

From: Tachino Nobuhiro (tachino@open.nm.fujitsu.co.jp)
Date: Thu Oct 25 2001 - 20:56:31 EST


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/



This archive was generated by hypermail 2b29 : Wed Oct 31 2001 - 21:00:29 EST