[kvm-unit-tests PATCH] x86: Fix test failures as a result of using clang-18

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When building 'debug' test on clang-18 the compiler more aggressively
inlines helper functions.  This results in test failures because some
of the helpers are not intended to be inlined.  Fix this by marking
those functions with 'noinline'.

Reported-by: John Sperbeck <jsperbeck@xxxxxxxxxx>
Signed-off-by: Aaron Lewis <aaronlewis@xxxxxxxxxx>
---
 x86/debug.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/x86/debug.c b/x86/debug.c
index b66bf04..65784c5 100644
--- a/x86/debug.c
+++ b/x86/debug.c
@@ -128,7 +128,7 @@ static void report_singlestep_basic(unsigned long start, const char *usermode)
 	       "%sSingle-step #DB basic test", usermode);
 }
 
-static unsigned long singlestep_basic(void)
+static noinline unsigned long singlestep_basic(void)
 {
 	unsigned long start;
 
@@ -165,7 +165,7 @@ static void report_singlestep_emulated_instructions(unsigned long start,
 	       "%sSingle-step #DB on emulated instructions", usermode);
 }
 
-static unsigned long singlestep_emulated_instructions(void)
+static noinline unsigned long singlestep_emulated_instructions(void)
 {
 	unsigned long start;
 
@@ -204,7 +204,7 @@ static void report_singlestep_with_sti_blocking(unsigned long start,
 }
 
 
-static unsigned long singlestep_with_sti_blocking(void)
+static noinline unsigned long singlestep_with_sti_blocking(void)
 {
 	unsigned long start_rip;
 
@@ -239,7 +239,7 @@ static void report_singlestep_with_movss_blocking(unsigned long start,
 	       "%sSingle-step #DB w/ MOVSS blocking", usermode);
 }
 
-static unsigned long singlestep_with_movss_blocking(void)
+static noinline unsigned long singlestep_with_movss_blocking(void)
 {
 	unsigned long start_rip;
 
@@ -277,7 +277,7 @@ static void report_singlestep_with_movss_blocking_and_icebp(unsigned long start,
 	       "%sSingle-Step + ICEBP #DB w/ MOVSS blocking", usermode);
 }
 
-static unsigned long singlestep_with_movss_blocking_and_icebp(void)
+static noinline unsigned long singlestep_with_movss_blocking_and_icebp(void)
 {
 	unsigned long start;
 
@@ -320,7 +320,7 @@ static void report_singlestep_with_movss_blocking_and_dr7_gd(unsigned long start
 	       "Single-step #DB w/ MOVSS blocking and DR7.GD=1");
 }
 
-static unsigned long singlestep_with_movss_blocking_and_dr7_gd(void)
+static noinline unsigned long singlestep_with_movss_blocking_and_dr7_gd(void)
 {
 	unsigned long start_rip;
 
-- 
2.38.1.584.g0f3c55d4c2-goog




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux