* [PATCH v3 0/5] x86: Cleanups around slow_down_io() @ 2026-01-15 8:48 Juergen Gross 2026-01-15 8:48 ` [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool Juergen Gross 0 siblings, 1 reply; 4+ messages in thread From: Juergen Gross @ 2026-01-15 8:48 UTC (permalink / raw) To: linux-kernel, x86, virtualization, kvm, linux-block Cc: Juergen Gross, Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, H. Peter Anvin, Ajay Kaher, Alexey Makhalov, Broadcom internal kernel review list, Paolo Bonzini, Vitaly Kuznetsov, Boris Ostrovsky, xen-devel, Denis Efremov, Jens Axboe While looking at paravirt cleanups I stumbled over slow_down_io() and the related REALLY_SLOW_IO define. Do several cleanups, resulting in a deletion of REALLY_SLOW_IO and the io_delay() paravirt function hook. Patch 4 is removing the config options for selecting the default delay mechanism and sets the default to "no delay". This is in preparation of removing the io_delay() functionality completely, as suggested by Ingo Molnar. Patch 5 is adding an additional config option allowing to avoid building io_delay.c (default is still to build it). Changes in V2: - patches 2 and 3 of V1 have been applied - new patches 4 and 5 Changes in V3: - rebase to tip/master kernel branch Juergen Gross (5): x86/paravirt: Replace io_delay() hook with a bool block/floppy: Don't use REALLY_SLOW_IO for delays x86/io: Remove REALLY_SLOW_IO handling x86/io_delay: Switch io_delay() default mechanism to "none" x86/io_delay: Add config option for controlling build of io_delay. arch/x86/Kconfig | 8 +++ arch/x86/Kconfig.debug | 30 ---------- arch/x86/include/asm/floppy.h | 31 ++++++++-- arch/x86/include/asm/io.h | 19 ++++--- arch/x86/include/asm/paravirt-base.h | 6 ++ arch/x86/include/asm/paravirt.h | 11 ---- arch/x86/include/asm/paravirt_types.h | 2 - arch/x86/kernel/Makefile | 3 +- arch/x86/kernel/cpu/vmware.c | 2 +- arch/x86/kernel/io_delay.c | 81 +-------------------------- arch/x86/kernel/kvm.c | 8 +-- arch/x86/kernel/paravirt.c | 3 +- arch/x86/kernel/setup.c | 4 +- arch/x86/xen/enlighten_pv.c | 6 +- drivers/block/floppy.c | 2 - 15 files changed, 60 insertions(+), 156 deletions(-) -- 2.51.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool 2026-01-15 8:48 [PATCH v3 0/5] x86: Cleanups around slow_down_io() Juergen Gross @ 2026-01-15 8:48 ` Juergen Gross 2026-01-15 14:43 ` kernel test robot 2026-01-15 16:10 ` kernel test robot 0 siblings, 2 replies; 4+ messages in thread From: Juergen Gross @ 2026-01-15 8:48 UTC (permalink / raw) To: linux-kernel, x86, virtualization, kvm Cc: Juergen Gross, Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, H. Peter Anvin, Ajay Kaher, Alexey Makhalov, Broadcom internal kernel review list, Paolo Bonzini, Vitaly Kuznetsov, Boris Ostrovsky, xen-devel The io_delay() paravirt hook is in no way performance critical and all users setting it to a different function than native_io_delay() are using an empty function as replacement. This enables to replace the hook with a bool indicating whether native_io_delay() should be called. Signed-off-by: Juergen Gross <jgross@suse.com> --- V3: - rebase to tip/master kernel branch --- arch/x86/include/asm/io.h | 9 ++++++--- arch/x86/include/asm/paravirt-base.h | 6 ++++++ arch/x86/include/asm/paravirt.h | 11 ----------- arch/x86/include/asm/paravirt_types.h | 2 -- arch/x86/kernel/cpu/vmware.c | 2 +- arch/x86/kernel/kvm.c | 8 +------- arch/x86/kernel/paravirt.c | 3 +-- arch/x86/xen/enlighten_pv.c | 6 +----- 8 files changed, 16 insertions(+), 31 deletions(-) diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h index ca309a3227c7..8a9292ce7d2d 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h @@ -243,11 +243,16 @@ extern int io_delay_type; extern void io_delay_init(void); #if defined(CONFIG_PARAVIRT) -#include <asm/paravirt.h> +#include <asm/paravirt-base.h> #else +#define call_io_delay() true +#endif static inline void slow_down_io(void) { + if (!call_io_delay()) + return; + native_io_delay(); #ifdef REALLY_SLOW_IO native_io_delay(); @@ -256,8 +261,6 @@ static inline void slow_down_io(void) #endif } -#endif - #define BUILDIO(bwl, type) \ static inline void out##bwl##_p(type value, u16 port) \ { \ diff --git a/arch/x86/include/asm/paravirt-base.h b/arch/x86/include/asm/paravirt-base.h index 982a0b93bc76..3b9e7772d196 100644 --- a/arch/x86/include/asm/paravirt-base.h +++ b/arch/x86/include/asm/paravirt-base.h @@ -15,6 +15,8 @@ struct pv_info { #ifdef CONFIG_PARAVIRT_XXL u16 extra_user_64bit_cs; /* __USER_CS if none */ #endif + bool io_delay; + const char *name; }; @@ -26,6 +28,10 @@ u64 _paravirt_ident_64(u64); #endif #define paravirt_nop ((void *)nop_func) +#ifdef CONFIG_PARAVIRT +#define call_io_delay() pv_info.io_delay +#endif + #ifdef CONFIG_PARAVIRT_SPINLOCKS void paravirt_set_cap(void); #else diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index b21072af731d..f4885bd98a18 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -19,17 +19,6 @@ #include <linux/cpumask.h> #include <asm/frame.h> -/* The paravirtualized I/O functions */ -static inline void slow_down_io(void) -{ - PVOP_VCALL0(pv_ops, cpu.io_delay); -#ifdef REALLY_SLOW_IO - PVOP_VCALL0(pv_ops, cpu.io_delay); - PVOP_VCALL0(pv_ops, cpu.io_delay); - PVOP_VCALL0(pv_ops, cpu.io_delay); -#endif -} - void native_flush_tlb_local(void); void native_flush_tlb_global(void); void native_flush_tlb_one_user(unsigned long addr); diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 7ccd41628d36..3946d0f69921 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -30,8 +30,6 @@ struct pv_lazy_ops { struct pv_cpu_ops { /* hooks for various privileged instructions */ - void (*io_delay)(void); - #ifdef CONFIG_PARAVIRT_XXL unsigned long (*get_debugreg)(int regno); void (*set_debugreg)(int regno, unsigned long value); diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c index a3e6936839b1..eee0d1a48802 100644 --- a/arch/x86/kernel/cpu/vmware.c +++ b/arch/x86/kernel/cpu/vmware.c @@ -339,7 +339,7 @@ arch_initcall(activate_jump_labels); static void __init vmware_paravirt_ops_setup(void) { pv_info.name = "VMware hypervisor"; - pv_ops.cpu.io_delay = paravirt_nop; + pv_info.io_delay = false; if (vmware_tsc_khz == 0) return; diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index de550b12d9ab..8c3221048d9f 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -75,12 +75,6 @@ DEFINE_PER_CPU_DECRYPTED(struct kvm_steal_time, steal_time) __aligned(64) __visi static int has_steal_clock = 0; static int has_guest_poll = 0; -/* - * No need for any "IO delay" on KVM - */ -static void kvm_io_delay(void) -{ -} #define KVM_TASK_SLEEP_HASHBITS 8 #define KVM_TASK_SLEEP_HASHSIZE (1<<KVM_TASK_SLEEP_HASHBITS) @@ -314,7 +308,7 @@ static void __init paravirt_ops_setup(void) pv_info.name = "KVM"; if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY)) - pv_ops.cpu.io_delay = kvm_io_delay; + pv_info.io_delay = false; #ifdef CONFIG_X86_IO_APIC no_timer_check = 1; diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index a6ed52cae003..792fa96b3233 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c @@ -94,6 +94,7 @@ struct pv_info pv_info = { #ifdef CONFIG_PARAVIRT_XXL .extra_user_64bit_cs = __USER_CS, #endif + .io_delay = true, }; /* 64-bit pagetable entries */ @@ -101,8 +102,6 @@ struct pv_info pv_info = { struct paravirt_patch_template pv_ops = { /* Cpu ops. */ - .cpu.io_delay = native_io_delay, - #ifdef CONFIG_PARAVIRT_XXL .cpu.cpuid = native_cpuid, .cpu.get_debugreg = pv_native_get_debugreg, diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c index 8a19a88190ee..9c9695f5d158 100644 --- a/arch/x86/xen/enlighten_pv.c +++ b/arch/x86/xen/enlighten_pv.c @@ -1046,10 +1046,6 @@ static void xen_update_io_bitmap(void) } #endif -static void xen_io_delay(void) -{ -} - static DEFINE_PER_CPU(unsigned long, xen_cr0_value); static unsigned long xen_read_cr0(void) @@ -1209,6 +1205,7 @@ void __init xen_setup_vcpu_info_placement(void) static const struct pv_info xen_info __initconst = { .extra_user_64bit_cs = FLAT_USER_CS64, + .io_delay = false, .name = "Xen", }; @@ -1392,7 +1389,6 @@ asmlinkage __visible void __init xen_start_kernel(struct start_info *si) pv_ops.cpu.invalidate_io_bitmap = xen_invalidate_io_bitmap; pv_ops.cpu.update_io_bitmap = xen_update_io_bitmap; #endif - pv_ops.cpu.io_delay = xen_io_delay; pv_ops.cpu.start_context_switch = xen_start_context_switch; pv_ops.cpu.end_context_switch = xen_end_context_switch; -- 2.51.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool 2026-01-15 8:48 ` [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool Juergen Gross @ 2026-01-15 14:43 ` kernel test robot 2026-01-15 16:10 ` kernel test robot 1 sibling, 0 replies; 4+ messages in thread From: kernel test robot @ 2026-01-15 14:43 UTC (permalink / raw) To: Juergen Gross, linux-kernel, x86, virtualization, kvm Cc: llvm, oe-kbuild-all, Juergen Gross, Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, H. Peter Anvin, Ajay Kaher, Alexey Makhalov, Broadcom internal kernel review list, Paolo Bonzini, Vitaly Kuznetsov, Boris Ostrovsky, xen-devel [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset=utf-8, Size: 6690 bytes --] Hi Juergen, kernel test robot noticed the following build errors: [auto build test ERROR on tip/master] [also build test ERROR on next-20260115] [cannot apply to kvm/queue kvm/next tip/x86/core kvm/linux-next tip/auto-latest linus/master v6.19-rc5] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Juergen-Gross/x86-paravirt-Replace-io_delay-hook-with-a-bool/20260115-165320 base: tip/master patch link: https://lore.kernel.org/r/20260115084849.31502-2-jgross%40suse.com patch subject: [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool config: i386-randconfig-011-20260115 (https://download.01.org/0day-ci/archive/20260115/202601152203.plJOoOEF-lkp@intel.com/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152203.plJOoOEF-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202601152203.plJOoOEF-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/cpufreq/longhaul.c:145:2: error: call to undeclared function 'arch_safe_halt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 145 | safe_halt(); | ^ include/linux/irqflags.h:231:3: note: expanded from macro 'safe_halt' 231 | raw_safe_halt(); \ | ^ include/linux/irqflags.h:192:27: note: expanded from macro 'raw_safe_halt' 192 | #define raw_safe_halt() arch_safe_halt() | ^ >> drivers/cpufreq/longhaul.c:150:2: error: call to undeclared function 'halt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 150 | halt(); | ^ drivers/cpufreq/longhaul.c:179:2: error: call to undeclared function 'arch_safe_halt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 179 | safe_halt(); | ^ include/linux/irqflags.h:231:3: note: expanded from macro 'safe_halt' 231 | raw_safe_halt(); \ | ^ include/linux/irqflags.h:192:27: note: expanded from macro 'raw_safe_halt' 192 | #define raw_safe_halt() arch_safe_halt() | ^ drivers/cpufreq/longhaul.c:187:4: error: call to undeclared function 'halt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 187 | halt(); | ^ drivers/cpufreq/longhaul.c:205:3: error: call to undeclared function 'halt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 205 | halt(); | ^ drivers/cpufreq/longhaul.c:224:4: error: call to undeclared function 'halt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 224 | halt(); | ^ drivers/cpufreq/longhaul.c:165:6: warning: variable 't' set but not used [-Wunused-but-set-variable] 165 | u32 t; | ^ 1 warning and 6 errors generated. vim +/arch_safe_halt +145 drivers/cpufreq/longhaul.c ^1da177e4c3f41 arch/i386/kernel/cpu/cpufreq/longhaul.c Linus Torvalds 2005-04-16 134 ac617bd0f7b959 arch/x86/kernel/cpu/cpufreq/longhaul.c Dave Jones 2009-01-17 135 static void do_longhaul1(unsigned int mults_index) ^1da177e4c3f41 arch/i386/kernel/cpu/cpufreq/longhaul.c Linus Torvalds 2005-04-16 136 { dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 137 union msr_bcr2 bcr2; ^1da177e4c3f41 arch/i386/kernel/cpu/cpufreq/longhaul.c Linus Torvalds 2005-04-16 138 c435e608cf59ff drivers/cpufreq/longhaul.c Ingo Molnar 2025-04-09 139 rdmsrq(MSR_VIA_BCR2, bcr2.val); dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 140 /* Enable software clock multiplier */ dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 141 bcr2.bits.ESOFTBF = 1; ac617bd0f7b959 arch/x86/kernel/cpu/cpufreq/longhaul.c Dave Jones 2009-01-17 142 bcr2.bits.CLOCKMUL = mults_index & 0xff; dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 143 dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 144 /* Sync to timer tick */ dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 @145 safe_halt(); dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 146 /* Change frequency on next halt or sleep */ 78255eb2397332 drivers/cpufreq/longhaul.c Ingo Molnar 2025-04-09 147 wrmsrq(MSR_VIA_BCR2, bcr2.val); 179da8e6e8903a arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-08-08 148 /* Invoke transition */ 179da8e6e8903a arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-08-08 149 ACPI_FLUSH_CPU_CACHE(); 179da8e6e8903a arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-08-08 @150 halt(); dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 151 dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 152 /* Disable software clock multiplier */ dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 153 local_irq_disable(); c435e608cf59ff drivers/cpufreq/longhaul.c Ingo Molnar 2025-04-09 154 rdmsrq(MSR_VIA_BCR2, bcr2.val); dadb49d8746bc4 arch/i386/kernel/cpu/cpufreq/longhaul.c Rafa³ Bilski 2006-07-03 155 bcr2.bits.ESOFTBF = 0; 78255eb2397332 drivers/cpufreq/longhaul.c Ingo Molnar 2025-04-09 156 wrmsrq(MSR_VIA_BCR2, bcr2.val); ^1da177e4c3f41 arch/i386/kernel/cpu/cpufreq/longhaul.c Linus Torvalds 2005-04-16 157 } ^1da177e4c3f41 arch/i386/kernel/cpu/cpufreq/longhaul.c Linus Torvalds 2005-04-16 158 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool 2026-01-15 8:48 ` [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool Juergen Gross 2026-01-15 14:43 ` kernel test robot @ 2026-01-15 16:10 ` kernel test robot 1 sibling, 0 replies; 4+ messages in thread From: kernel test robot @ 2026-01-15 16:10 UTC (permalink / raw) To: Juergen Gross, linux-kernel, x86, virtualization, kvm Cc: oe-kbuild-all, Juergen Gross, Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, H. Peter Anvin, Ajay Kaher, Alexey Makhalov, Broadcom internal kernel review list, Paolo Bonzini, Vitaly Kuznetsov, Boris Ostrovsky, xen-devel Hi Juergen, kernel test robot noticed the following build errors: [auto build test ERROR on tip/master] [also build test ERROR on next-20260115] [cannot apply to kvm/queue kvm/next tip/x86/core kvm/linux-next tip/auto-latest linus/master v6.19-rc5] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Juergen-Gross/x86-paravirt-Replace-io_delay-hook-with-a-bool/20260115-165320 base: tip/master patch link: https://lore.kernel.org/r/20260115084849.31502-2-jgross%40suse.com patch subject: [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool config: x86_64-randconfig-006-20260115 (https://download.01.org/0day-ci/archive/20260115/202601152321.kJ6D4yKM-lkp@intel.com/config) compiler: gcc-12 (Debian 12.4.0-5) 12.4.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601152321.kJ6D4yKM-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202601152321.kJ6D4yKM-lkp@intel.com/ All errors (new ones prefixed by >>): arch/x86/kernel/tboot.c: In function 'tboot_shutdown': >> arch/x86/kernel/tboot.c:255:17: error: implicit declaration of function 'halt' [-Werror=implicit-function-declaration] 255 | halt(); | ^~~~ cc1: some warnings being treated as errors vim +/halt +255 arch/x86/kernel/tboot.c 58c41d28259c24 H. Peter Anvin 2009-08-14 225 3162534069597e Joseph Cihula 2009-06-30 226 void tboot_shutdown(u32 shutdown_type) 3162534069597e Joseph Cihula 2009-06-30 227 { 3162534069597e Joseph Cihula 2009-06-30 228 void (*shutdown)(void); 3162534069597e Joseph Cihula 2009-06-30 229 3162534069597e Joseph Cihula 2009-06-30 230 if (!tboot_enabled()) 3162534069597e Joseph Cihula 2009-06-30 231 return; 3162534069597e Joseph Cihula 2009-06-30 232 11520e5e7c1855 Linus Torvalds 2012-12-15 233 /* 11520e5e7c1855 Linus Torvalds 2012-12-15 234 * if we're being called before the 1:1 mapping is set up then just 11520e5e7c1855 Linus Torvalds 2012-12-15 235 * return and let the normal shutdown happen; this should only be 11520e5e7c1855 Linus Torvalds 2012-12-15 236 * due to very early panic() 11520e5e7c1855 Linus Torvalds 2012-12-15 237 */ 11520e5e7c1855 Linus Torvalds 2012-12-15 238 if (!tboot_pg_dir) 11520e5e7c1855 Linus Torvalds 2012-12-15 239 return; 11520e5e7c1855 Linus Torvalds 2012-12-15 240 3162534069597e Joseph Cihula 2009-06-30 241 /* if this is S3 then set regions to MAC */ 3162534069597e Joseph Cihula 2009-06-30 242 if (shutdown_type == TB_SHUTDOWN_S3) 58c41d28259c24 H. Peter Anvin 2009-08-14 243 if (tboot_setup_sleep()) 58c41d28259c24 H. Peter Anvin 2009-08-14 244 return; 3162534069597e Joseph Cihula 2009-06-30 245 3162534069597e Joseph Cihula 2009-06-30 246 tboot->shutdown_type = shutdown_type; 3162534069597e Joseph Cihula 2009-06-30 247 3162534069597e Joseph Cihula 2009-06-30 248 switch_to_tboot_pt(); 3162534069597e Joseph Cihula 2009-06-30 249 3162534069597e Joseph Cihula 2009-06-30 250 shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry; 3162534069597e Joseph Cihula 2009-06-30 251 shutdown(); 3162534069597e Joseph Cihula 2009-06-30 252 3162534069597e Joseph Cihula 2009-06-30 253 /* should not reach here */ 3162534069597e Joseph Cihula 2009-06-30 254 while (1) 3162534069597e Joseph Cihula 2009-06-30 @255 halt(); 3162534069597e Joseph Cihula 2009-06-30 256 } 3162534069597e Joseph Cihula 2009-06-30 257 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-01-15 16:11 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-01-15 8:48 [PATCH v3 0/5] x86: Cleanups around slow_down_io() Juergen Gross 2026-01-15 8:48 ` [PATCH v3 1/5] x86/paravirt: Replace io_delay() hook with a bool Juergen Gross 2026-01-15 14:43 ` kernel test robot 2026-01-15 16:10 ` kernel test robot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox