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