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
catte...@thebarn.com





To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to