Re: [Bugme-new] [Bug 8957] New: Exported functions and variablesshould not be reachable by the outside of the module until module_init finishes

From: Robert Hancock
Date: Wed Aug 29 2007 - 21:34:20 EST


Andrew Morton wrote:
On Wed, 29 Aug 2007 11:33:06 -0700 (PDT) bugme-daemon@xxxxxxxxxxxxxxxxxxx wrote:

http://bugzilla.kernel.org/show_bug.cgi?id=8957

Summary: Exported functions and variables should not be reachable
by the outside of the module until module_init finishes
Product: Other
Version: 2.5
KernelVersion: 2.6.23-rc4
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Modules
AssignedTo: other_modules@xxxxxxxxxxxxxxxxxxxx
ReportedBy: mattilinnanvuori@xxxxxxxxx


Problem Description: a module's exported functions can be called before before
they are properly initialized by the module_init function.

Steps to reproduce: write a module that exports functions that require
initialization by the module_init function to work correctly.

E.g. spin lock variables are no longer allowed to be initialized by C
initializers of the module but only by spin_lock_init that can be called by the
module_init function. If an exported function calls spin_lock before it is
initialized, it deadlocks.


ooh, nice bug ;)

Under what circumstances is this actually happening? What are these functions that are being called?

Normally things are set up such that this isn't a problem, i.e. if module A depends on module B, module A can't load until module B is finished loading.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/