[PATCH v3 0/2] Livepatch module notifier cleanup

From: Jessica Yu
Date: Wed Mar 16 2016 - 20:55:55 EST


These are the remaining 2 patches that came from the original ftrace/livepatch
module notifier patchset found here: https://lkml.org/lkml/2016/2/8/1180

Basically, the patchset does a bit of module.c cleanup (patch 1) in
preparation for the klp_module_{coming,going} calls (patch 2). We decided
to stop relying on the module notifier callchain in favor of hard-coding
the appropriate livepatch function calls that handle coming and going
modules. Hard-coding these calls will guarantee that ftrace and livepatch
exit/initialization routines are called in the correct order without
relying on module notifiers.

The patches should be nearly exactly the same as those from the previous
discussion, except in patch 2 I've added back the #if IS_ENABLED(CONFIG_LIVEPATCH)
guard in livepatch.h.

Patches based on linux-next.

v2 discussion found here:
https://lkml.kernel.org/g/1457726628-9171-1-git-send-email-jeyu@xxxxxxxxxx

v3:
- Remove confusing comment above klp_module_going()
- Place prepare_coming_module() after complete_formation()
- Fix small race in klp_module_coming() by setting mod->klp_alive
to false in the error path

v2:
- we don't need to change mod->state to GOING when cleaning up during
failed module load
- modify mod->state check to allow klp_module_going() to be called in
both COMING and GOING states

Jessica Yu (2):
modules: split part of complete_formation() into
prepare_coming_module()
livepatch/module: remove livepatch module notifier

include/linux/livepatch.h | 13 ++++
kernel/livepatch/core.c | 147 ++++++++++++++++++++++------------------------
kernel/module.c | 36 +++++++++---
3 files changed, 112 insertions(+), 84 deletions(-)

--
2.4.3