hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/arch/x86/kernel/smp.c
....@@ -131,7 +131,7 @@
131131 /*
132132 * this function calls the 'stop' function on all other CPUs in the system.
133133 */
134
-DEFINE_IDTENTRY_SYSVEC(sysvec_reboot)
134
+DEFINE_IDTENTRY_SYSVEC_PIPELINED(REBOOT_VECTOR, sysvec_reboot)
135135 {
136136 ack_APIC_irq();
137137 cpu_emergency_vmxoff();
....@@ -212,17 +212,18 @@
212212 udelay(1);
213213 }
214214
215
- local_irq_save(flags);
215
+ flags = hard_local_irq_save();
216216 disable_local_APIC();
217217 mcheck_cpu_clear(this_cpu_ptr(&cpu_info));
218
- local_irq_restore(flags);
218
+ hard_local_irq_restore(flags);
219219 }
220220
221221 /*
222222 * Reschedule call back. KVM uses this interrupt to force a cpu out of
223223 * guest mode.
224224 */
225
-DEFINE_IDTENTRY_SYSVEC_SIMPLE(sysvec_reschedule_ipi)
225
+DEFINE_IDTENTRY_SYSVEC_SIMPLE_PIPELINED(RESCHEDULE_VECTOR,
226
+ sysvec_reschedule_ipi)
226227 {
227228 ack_APIC_irq();
228229 trace_reschedule_entry(RESCHEDULE_VECTOR);
....@@ -231,7 +232,8 @@
231232 trace_reschedule_exit(RESCHEDULE_VECTOR);
232233 }
233234
234
-DEFINE_IDTENTRY_SYSVEC(sysvec_call_function)
235
+DEFINE_IDTENTRY_SYSVEC_PIPELINED(CALL_FUNCTION_VECTOR,
236
+ sysvec_call_function)
235237 {
236238 ack_APIC_irq();
237239 trace_call_function_entry(CALL_FUNCTION_VECTOR);
....@@ -240,7 +242,8 @@
240242 trace_call_function_exit(CALL_FUNCTION_VECTOR);
241243 }
242244
243
-DEFINE_IDTENTRY_SYSVEC(sysvec_call_function_single)
245
+DEFINE_IDTENTRY_SYSVEC_PIPELINED(CALL_FUNCTION_SINGLE_VECTOR,
246
+ sysvec_call_function_single)
244247 {
245248 ack_APIC_irq();
246249 trace_call_function_single_entry(CALL_FUNCTION_SINGLE_VECTOR);