objtool: Add machine_real_restart() to the noreturn list [Linux 4.9.189]

This Linux kernel change "objtool: Add machine_real_restart() to the noreturn list" is included in the Linux 4.9.189 release. This change is authored by Josh Poimboeuf <jpoimboe [at] redhat.com> on Tue Jun 19 10:47:50 2018 -0500. The commit for this change in Linux stable tree is 495dace (patch) which is from upstream commit 684fb24. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream 684fb24.

objtool: Add machine_real_restart() to the noreturn list

commit 684fb246578b9e81fc7b4ca5c71eae22edb650b2 upstream.

machine_real_restart() is annotated as '__noreturn", so add it to the
objtool noreturn list.  This fixes the following warning with clang and
CONFIG_CC_OPTIMIZE_FOR_SIZE=y:

  arch/x86/kernel/reboot.o: warning: objtool: native_machine_emergency_restart() falls through to next function machine_power_off()

Reported-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Link: https://lkml.kernel.org/r/791712792aa4431bdd55bf1beb33a169ddf3b4a2.1529423255.git.jpoimboe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

There is one line of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 tools/objtool/check.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 95326c6..aabbd6f 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -165,6 +165,7 @@ static int __dead_end_function(struct objtool_file *file, struct symbol *func,
        "__reiserfs_panic",
        "lbug_with_loc",
        "fortify_panic",
+       "machine_real_restart",
    };

    if (func->bind == STB_WEAK)

Leave a Reply

Your email address will not be published. Required fields are marked *