Messages in this thread |  | | Date | Fri, 26 Oct 2001 10:56:31 +0900 | From | Tachino Nobuhiro <> | Subject | Re: SiS/Trident 4DWave sound driver oops |
| |
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/
|  |