Joachim Worringen wrote:
> Garrett D'Amore wrote:
>
>> To address that concern, there are at least three different approaches:
>>
>> 1) use a layered driver open (see ldi_open_xxx) and keep D's /dev entry
>> open from A while in use.
>>
>> 2) use a ddi-forceattach and ddi-no-autodetach properties in D's
>> driver.conf file.
>>
>
> Tried #2 as a quick solution and added these two lines to
> /usr/kernel/drv/dis_irm.conf (the driver is /usr/kernel/drv/amd64/dis_irm):
> "
> ddi-forceattach=1;
> ddi-no-autodetach=1;
> "
>
> This works, thanks. Will try #1 lateron.
>
> Two follow-up questions:
> - This only worked after I rebooted (driver was then loaded and
> attached), but not after I changed dis_irm.conf and then loaded the
> driver module manually. This is expected behaviour?
>
Dunno. I would have thought update_drv() would be sufficient. Maybe not.
> - I noted that once a minute, _fini() of this driver is called, but
> mod_remove() then fails with EBUSY. This is probably o.k. and expected?
> (no problem for me).
>
Yes. You are probably running a debug kernel, which periodically tries
to reap kernel modules. If you run a non-debug kernel then you won't
see this behavior.
The _fini() tries to detach your driver, but passes in a flag indicating
that this is in response to "auto-detach", which the DDI intercepts and
now (thanks to the new property) rejects (without ever calling your
driver's detach routine).
You should still be able to manually do modunload -i <major number> to
unload your driver manually.
-- Garrett
> Joachim
> _______________________________________________
> opensolaris-code mailing list
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
>
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code