Ah, thanks, good catch. I changed it to "This prevents you".
> > Q: But modules call my register() routine which wants to call back
> > into one of the function pointers immediately, and so
> > try_module_get() fails!
> > A: You're being called from the module, so someone already has a
> > reference (unless there's a bug), so you don't need a
> > try_module_get().
>
> Hmm, I haven't really looked at your new code, but this sounds as
> if try_module_get gets an exclusive lock. Is this true ? Doesn't
> seem to make sense to me.
No, it doesn't. The question is badly phrased. How about:
Q: But the modules' init routine calls my register() routine which
wants to call back into one of the function pointers immediately,
and so try_module_get() fails! (because the module is not finished
initializing yet)
A: You're being called from the module, so someone already has a
reference (unless there's a bug), so you don't need a
try_module_get().
This does mean that if you were to register a structure for
*another* module (does anyone do this?) you'd need to have a
reference to it.
> > Hope that helps?
>
> Don't you want to repeat the golden rule at the end, just as a
> polite reminder ? :-) (Just kidding.)
Heh.
Well, if we continue to start modules unisolated, I need to rewrite
the FAQ anyway...
Thanks,
Rusty.
-- Anyone who quotes me in their sig is an idiot. -- Rusty Russell. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/