Skip site navigation (1)Skip section navigation (2)
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>