From 2f529f9b558ca1c1bd74be7437a84e4711743404 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 01 Nov 2024 02:11:33 +0000
Subject: [PATCH] add xenomai
---
kernel/arch/x86/kernel/smp.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/kernel/arch/x86/kernel/smp.c b/kernel/arch/x86/kernel/smp.c
index eff4ce3..c4684db 100644
--- a/kernel/arch/x86/kernel/smp.c
+++ b/kernel/arch/x86/kernel/smp.c
@@ -131,7 +131,7 @@
/*
* this function calls the 'stop' function on all other CPUs in the system.
*/
-DEFINE_IDTENTRY_SYSVEC(sysvec_reboot)
+DEFINE_IDTENTRY_SYSVEC_PIPELINED(REBOOT_VECTOR, sysvec_reboot)
{
ack_APIC_irq();
cpu_emergency_vmxoff();
@@ -212,17 +212,18 @@
udelay(1);
}
- local_irq_save(flags);
+ flags = hard_local_irq_save();
disable_local_APIC();
mcheck_cpu_clear(this_cpu_ptr(&cpu_info));
- local_irq_restore(flags);
+ hard_local_irq_restore(flags);
}
/*
* Reschedule call back. KVM uses this interrupt to force a cpu out of
* guest mode.
*/
-DEFINE_IDTENTRY_SYSVEC_SIMPLE(sysvec_reschedule_ipi)
+DEFINE_IDTENTRY_SYSVEC_SIMPLE_PIPELINED(RESCHEDULE_VECTOR,
+ sysvec_reschedule_ipi)
{
ack_APIC_irq();
trace_reschedule_entry(RESCHEDULE_VECTOR);
@@ -231,7 +232,8 @@
trace_reschedule_exit(RESCHEDULE_VECTOR);
}
-DEFINE_IDTENTRY_SYSVEC(sysvec_call_function)
+DEFINE_IDTENTRY_SYSVEC_PIPELINED(CALL_FUNCTION_VECTOR,
+ sysvec_call_function)
{
ack_APIC_irq();
trace_call_function_entry(CALL_FUNCTION_VECTOR);
@@ -240,7 +242,8 @@
trace_call_function_exit(CALL_FUNCTION_VECTOR);
}
-DEFINE_IDTENTRY_SYSVEC(sysvec_call_function_single)
+DEFINE_IDTENTRY_SYSVEC_PIPELINED(CALL_FUNCTION_SINGLE_VECTOR,
+ sysvec_call_function_single)
{
ack_APIC_irq();
trace_call_function_single_entry(CALL_FUNCTION_SINGLE_VECTOR);
--
Gitblit v1.6.2