Livepatch is based on the dynamic ftrace, so functions that can be traced could be patched. Inlined functions aren't traced by the function tracer. Even if CONFIG_OPTIMIZE_INLINING is set, they aren't traced because of marked with "notrace". We can see it from the commit 45959ee7aa6 ("ftrace: Do not function trace inlined functions") Cc: Jiri Kosina <jkosina@xxxxxxx> Cc: Jessica Yu <jeyu@xxxxxxxxxx> Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> Cc: Miroslav Benes <mbenes@xxxxxxx> Cc: Petr Mladek <pmladek@xxxxxxxx> Signed-off-by: Taeung Song <treeze.taeung@xxxxxxxxx> --- Documentation/livepatch/livepatch.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/livepatch/livepatch.txt b/Documentation/livepatch/livepatch.txt index ecdb181..65f784a 100644 --- a/Documentation/livepatch/livepatch.txt +++ b/Documentation/livepatch/livepatch.txt @@ -475,6 +475,9 @@ The current Livepatch implementation has several limitations: potential mistake is prevented by marking the problematic functions by "notrace". + Besides, inlined functions could not be patched. Because they are + not traced by the function tracer and even if CONFIG_OPTIMIZE_INLINING + is set, they are marked with "notrace". + Livepatch works reliably only when the dynamic ftrace is located at -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html