+++ Rusty Russell [26/10/16 11:24 +1030]:
Aaron Tomlin <atom...@redhat.com> writes:
In load_module() in the event of an error, for e.g. unknown module
parameter(s) specified we go to perform some module coming clean up
operations. At this point the module is still in a "formed" state
when it is actually going away.
This patch updates the module's state accordingly to ensure anyone on the
module_notify_list waiting for a module going away notification will be
notified accordingly.
I recall a similar proposal before.
I've audited all the subscribers to check they didn't look at
mod->state; they seem OK.
We actually do this in the init-failed path, so this should be OK.
We did discuss a similar proposal before:
https://lkml.kernel.org/r/87a8m7ko6j....@rustcorp.com.au
The complaint back then was that we need to be in the COMING state for
strong_try_module_get() to fail. But it will also correctly fail for GOING
modules in the module_is_live() check in the subsequent call to
try_module_get(), so I believe we are still OK here.
Jessica