diff --git a/arch/arm64/kernel/livepatch.c b/arch/arm64/kernel/livepatch.c index a21c3f79d3cc1e20138a4cfd93344017e9446ccb..71b99400c388f14bea35fe4e7dd3a84c6b2716a3 100644 --- a/arch/arm64/kernel/livepatch.c +++ b/arch/arm64/kernel/livepatch.c @@ -77,6 +77,8 @@ static int klp_check_activeness_func(struct stackframe *frame, void *data) for (obj = patch->objs; obj->funcs; obj++) { for (func = obj->funcs; func->old_name; func++) { if (args->enable) { + if (func->force) + continue; func_addr = func->old_addr; func_size = func->old_size; } else { diff --git a/include/linux/livepatch.h b/include/linux/livepatch.h index 70b081a691e44a469ac86539bf98b7473b3953b6..2863ab1183210edcf8bf8fbf271ed0d6f4b42c30 100644 --- a/include/linux/livepatch.h +++ b/include/linux/livepatch.h @@ -75,6 +75,7 @@ struct klp_func { * in kallsyms for the given object is used. */ unsigned long old_sympos; + int force; /* internal */ unsigned long old_addr;