On Wed, 27 Feb 2008 20:51:14 -0800, Garrett D'Amore
<[EMAIL PROTECTED]> wrote: 
> First off, _info has nothing to do with the gld_getinfo.   You
> definitely do not a getinfo(9e) entry point with a GLDv2 or v3 driver.
> (GLDv2 should do qassociate on your behalf, obviating the need for a
> non-NULL getinfo(9e) -- note that this is only true for Solaris 9 (?)
> and later -- earlier Solaris 8 still needed a getinfo(9e).)
> 
> Your driver is also a GLDv3 driver.  For that, it would be informative
> to post your _init().  My guess is that that this is where the problem
> lies.

That was my first assumption, however the breakpoint for dnet`_init was
never reached (using dnet`_init:b) - dnet`_info and dnet`_fini worked fine.
. I thought this was exceptionally odd, I thought _init was always called
first? Is _init not called again when update_drv is called? If not, what
would be the correct approach to catch that breakpoint from within kmdb?

> Note that if _init is not getting called, then something is very very
> wrong.  This should be the very first routine called in any kernel
module.

_init posted below:

 349 int
 350 _init(void)
 351 {
 352         int i;
 353 
 354         /* Configure fake sroms for legacy cards */
 355         mutex_init(&dnet_rbuf_lock, NULL, MUTEX_DRIVER, NULL);
 356         setup_legacy_blocks();
 357 
 358         mac_init_ops(&dnet_ops, "dnet");
 359 
 360         if ((i = mod_install(&modlinkage)) != 0) {
 361                 mutex_destroy(&dnet_rbuf_lock);
 362                 mac_fini_ops(&dnet_ops);
 363         }
 364         return (i);
 365 }

Steve

-- 
Yet magic and hierarchy
arise from the same source,
and this source has a null pointer.

Reference the NULL within NULL,
it is the gateway to all wizardry.

_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to