[Devel] [PATCH RK VZ9/VZ10] kpatch: pin current livepatch module
Vladimir Riabchun
vladimir.riabchun at virtuozzo.com
Tue Nov 3 23:24:07 MSK 2026
We want to avoid module unload without disabling unpatch functionality.
Do this by grabbing one extra reference to livepatch module.
RK_BUG: VSTOR-151484
RK_CHANGELOG: Pin livepatch module to prevent unloading
Signed-off-by: Vladimir Riabchun <vladimir.riabchun at virtuozzo.com>
---
kernel/time/namespace.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/kernel/time/namespace.c b/kernel/time/namespace.c
index e85f947d4063..bf57ce079d15 100644
--- a/kernel/time/namespace.c
+++ b/kernel/time/namespace.c
@@ -485,3 +485,14 @@ struct time_namespace init_time_ns = {
.ns.ops = &timens_operations,
.frozen_offsets = true,
};
+
+#include <linux/livepatch_helpers.h>
+
+static void kpatch_pin_self(struct klp_object *obj)
+{
+ struct module *mod = container_of(obj->kobj.parent, struct klp_patch, kobj)->mod;
+
+ __module_get(mod);
+ pr_warn("Livepatch module %s is pinned and cannot be unloaded\n", module_name(mod));
+}
+KLP_POST_PATCH_CALLBACK(kpatch_pin_self);
--
2.52.0
More information about the Devel
mailing list