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
[email protected]
To Unsubscribe: send mail to [email protected]
with "unsubscribe freebsd-current" in the body of the message