Date: Mon, 19 Apr 1999 14:57:31 -0500 From: Russell Cattelan <cattelan@thebarn.com> To: freebsd-current@FreeBSD.ORG Subject: Re: pcm sound driver crashes at boot time. Message-ID: <371B8AAA.E359696@thebarn.com> References: <199904190633.BAA01439@fun.thebarn.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Russell Cattelan wrote:
> I haven't been able to track down exactly where this
> is occuring, but disabling pcm allows eliminates the crash.
>
> The build is current as of Sun 18th.
>
> The one strange thing about this box, it has
> two sounds cards. A build in Yamaha OPL-3 (really really crappy)
> and Ensoniq AudioPCI 1371 (very hacked driver, So the problem may be my fault).
> But I guessing it has more to do with the newbus stuff.
>
Ok I finally tracked down what was going wrong, I'm not saying I found the problem
of how to fix it correctly.
The cause:
pcmprobe gets called after es_pci_attach (which has setup the snddev_info structure),
the first thing pcmprobe does is bzero that structure. Which of course cause a page fault
the next time that structure is access. (by es_intr in this case)
The really Q&D fix was to just return from pcmprobe.
int
pcmprobe(struct isa_device * dev)
{
DEB(printf("pcmprobe dev:0x%x name:%s\n",dev,
&(pcm_info[dev->id_unit]).name));
/* The AudioPCI probe stuff was done already */
if(!(strncmp (&(pcm_info[dev->id_unit]).name,
"ES1371",strlen("ES1371")))){
return 1;
}
bzero(&pcm_info[dev->id_unit], sizeof(pcm_info[dev->id_unit]) );
return generic_snd_probe(dev, pcm_devslist, "pcm") ? 1 : 0 ;
}
--
Russell Cattelan
cattelan@thebarn.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?371B8AAA.E359696>
