Messages in this thread | | | Date | Mon, 8 Feb 2016 15:34:42 -0500 | From | Jessica Yu <> | Subject | Re: module: preserve Elf information for livepatch modules |
| |
+++ Josh Poimboeuf [08/02/16 14:10 -0600]: >On Wed, Feb 03, 2016 at 08:11:07PM -0500, Jessica Yu wrote: >> For livepatch modules, copy Elf section, symbol, and string information >> from the load_info struct in the module loader. Persist copies of the >> original symbol table and string table. >> >> Livepatch manages its own relocation sections in order to reuse module >> loader code to write relocations. Livepatch modules must preserve Elf >> information such as section indices in order to apply livepatch relocation >> sections using the module loader's apply_relocate_add() function. >> >> In order to apply livepatch relocation sections, livepatch modules must >> keep a complete copy of their original symbol table in memory. Normally, a >> stripped down copy of a module's symbol table (containing only "core" >> symbols) is made available through module->core_symtab. But for livepatch >> modules, the symbol table copied into memory on module load must be exactly >> the same as the symbol table produced when the patch module was compiled. >> This is because the relocations in each livepatch relocation section refer >> to their respective symbols with their symbol indices, and the original >> symbol indices (and thus the symtab ordering) must be preserved in order >> for apply_relocate_add() to find the right symbol. > >This patch didn't apply clean to linux-next/master. I didn't >investigate why, but maybe it depends on the other patch set which >removes the notifiers? (If so, that should be mentioned in the cover >letter.)
A very recent commit (8244062ef) introduced some changes kernel/module.c that intersect with this patch, so I think this is why the patch didn't apply cleanly to today's tree...Anyhow I will rebase again before sending out v5. Thanks for the comments :-)
Jessica
| |