On Wed 2015-11-11 13:27:18, Jessica Yu wrote: > Basically, the patch module code is expected to build the reloc_secs > list for each object that is being patched. For example in kpatch, the > patch module generates this list in patch_init(). Like you guessed, it > does go through all the elf sections of the patch module to find the > reloc sections marked SHF_RELA_LIVEPATCH. We are able to access these > sections through module->info, which is set up for livepatch modules > before the module loader calls do_init_module() (and hence before > patch_init(), See patch 2/5). > See below for an example of how the reloc_secs list might be built: https://github.com/flaming-toast/kpatch/blob/no_dynrela_redux/kmod/patch/livepatch-patch-hook.c#L213 Thanks a lot for the link and explanation. I think that it would be nice to incorporate this into the patchset. I would put it into a separate function, e.g. klp_reloc_secs_init(). It can be called either from klp_register_patch() or from klp_init_patch(). > Once the patch module has built this list, it is good to go for use in > livepatch core. All livepatch has to do then is to iterate though the > list, resolve any outstanding symbols, and call apply_relocate_add(), > as shown in this patch. > > Miroslav mentioned in another email that we should start thinking > about including documentation about this, including the expected patch > module format. So perhaps v2 should include some documentation about > this whole process somewhere. That would be cool. Thank you, Petr -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html