Subject: kern/6269: ym_isapnp.c crashes during attach
To: None <gnats-bugs@gnats.netbsd.org>
From: John F. Woods <jfw@jfwhome.funhouse.com>
List: netbsd-bugs
Date: 10/09/1998 21:08:08
>Number:         6269
>Category:       kern
>Synopsis:       ym_isapnp.c crashes during attach
>Confidential:   no
>Severity:       critical
>Priority:       low
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Oct  9 18:20:00 1998
>Last-Modified:
>Originator:     John F. Woods
>Organization:
Misanthropes-R-Us
>Release:        netbsd-current october 8
>Environment:
	
System: NetBSD 1.3H (GENERIC) #4: Tue Oct  6 23:45:26 MEST 1998


>Description:
	I have a PC with an OPL-SA3 based audio card (ISA plug-n-pray).
When I boot the 9/30 snapshot provided by Havard Eidnes, it crashes
when trying to attach the sound card; it calls ym_attach, which calls
ad1848_attach, which calls a null function pointer.  (Which then causes
a kernel page fault in DDB's disassembler, by the way.)

	The null function pointer was the sc_writereg function pointer in
struct ad1848_softc, which was probably added to ad1848.c on Aug 28, but
was not added to any of the ym drivers (isapnp or isa).  I think the key
is that the other drivers which borrow the ad1848 functionality also call
ad1848_*_probe() which sets the functions pointers, but ym_attach skips
that step.

>How-To-Repeat:
	"Just do it."

>Fix:
	If no one gets to this by Monday, I'll submit a fix.  Presumably
it's a matter of either calling ad1848_*_probe or duplicating an appropriate
amount of its functionality, but I've spent no time on anything other than
spotting the problem.
>Audit-Trail:
>Unformatted: