From ce81601181f741e0ab63a77405d2eddec98576e9 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 6 Dec 2016 07:36:33 +0000 Subject: [PATCH] [prefix] Remove impossible progress message The "progress" macro can be used only from within the .prefix section. At the point of calling relocate(), we are running in .text16 and so the near call to print_message() will end up calling a random function somewhere in .text16. Interestingly, this problem has remained unnoticed for some time. It is rare to build with DEBUG=libprefix. In the few cases that it has been used during development, the randomly selected function in .text16 seems to have been a harmless no-op with no visible side-effects (beyond the unnoticed failure to print the "relocate" progress message). Fix by removing the futile attempt to print a progress message before calling relocate(). Reported-by: Raed Salem Signed-off-by: Michael Brown --- src/arch/x86/prefix/libprefix.S | 1 - 1 file changed, 1 deletion(-) diff --git a/src/arch/x86/prefix/libprefix.S b/src/arch/x86/prefix/libprefix.S index 533be981..7c678fa8 100644 --- a/src/arch/x86/prefix/libprefix.S +++ b/src/arch/x86/prefix/libprefix.S @@ -873,7 +873,6 @@ install_prealloc: * relocate() will return with %esi, %edi and %ecx set up * ready for the copy to the new location. */ - progress " relocate\n" virtcall relocate /* Jump back to .prefix segment */