module: layout_and_allocate
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 5 Aug 2010 18:59:08 +0000 (12:59 -0600)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 5 Aug 2010 03:29:09 +0000 (12:59 +0930)
commitd913188c75191114051cf0bac75dad444c6080fa
tree1c32e48b3524f775ef9998f71b016d325205697b
parent511ca6ae43fbe0a7c9e0b50ad275f7ef24ef3b58
module: layout_and_allocate

layout_and_allocate() does everything up to and including the final
struct module placement inside the allocated module memory.  We have
to store the symbol layout information in our struct load_info though.

This avoids the nasty code we had before where 'mod' pointed first
to the version inside the temporary allocation containing the entire
file, then later was moved to point to the real struct module: now
the main code only ever sees the final module address.

(Includes fix for the Tony Luck-found Linus-diagnosed failure path
 error).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
kernel/module.c