Joachim Worringen wrote:
Which mechanism decides that m2 should be busy, although this actually is not the case (at least, should not be)? The calls from m3 into m2 are not seen by the kernel, how could (and why should) it decide that m2 is still busy?Here's how we link m2: static struct modldrv modldrv = { &mod_miscops, MBOX_INFO, /* a string */ NULL }; static struct modlinkage modlinkage = { MODREV_1, /* MODREV_1 indicated by manl */ (void *)&modldrv, NULL /* termination of list of linkage structures */ };
Is this a misc module or a drv module? You're using modldrv but specifying mod_miscops. Not sure what effect that has without looking at the code but, if m2 is a driver (rather than a misc module) then there will be a detach(9e) routine which will need to succeed to allow an unload.
Paul -- =================================== Paul Durrant http://www.linkedin.com/in/pdurrant =================================== _______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
