Re: Rusty's module talk at the Kernel Summit

bill davidsen
2002-07-17T18:19:20Z

In article <Pine.LNX.4.44.0207111158160.3582-100000@hawkeye.luckynet.adm>,
Thunder from the hill <thunder@ngforever.de> wrote:
| Hi,
|
| On Thu, 11 Jul 2002, Roman Zippel wrote:
| > On Thu, 11 Jul 2002, Daniel Phillips wrote:
| > > Closing the rmmod race with this interface is easy. We can for example just
| > > keep a state variable in the module struct (protected by a lock) to say the
| > > module is in the process of being deregistered.
| >
| > Please check try_inc_mod_count(). It's already done.
|
| Btw, couldn't the module/non-module issue be solved like this:
|
| int module_do_blah(struct blah *blah, didel_t dei)
| #ifdef __MODULE__
| {
| locking_code();
| pure_module_do_blah(blah, dei)
| unlocking_code();
| }
|
| int pure_module_do_blah(struct blah *blah, didel_t dei)
| #endif /* __MODULE__ */
|
| Just an idea...

Other than a thought that the locking_code() might be a non-trivial
effort to get right if preempt and smp are present, I like it. I guess
efficient is not a big concern for module ins/rm since it's not likely
to be a high rate issue.

I might write the un/lock code as a macro rather than use the ifdef, but
that's a style thing.
--
bill davidsen <davidsen@tmr.com>
CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.