[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