From 7e970c18f85f99acc678d90128b6e01dce1bf273 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 01 Nov 2024 02:40:12 +0000
Subject: [PATCH] gmac get mac form eeprom
---
kernel/arch/x86/kernel/process.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/kernel/arch/x86/kernel/process.c b/kernel/arch/x86/kernel/process.c
index 5e17c39..a78266b 100644
--- a/kernel/arch/x86/kernel/process.c
+++ b/kernel/arch/x86/kernel/process.c
@@ -598,9 +598,9 @@
unsigned long flags;
/* Forced update. Make sure all relevant TIF flags are different */
- local_irq_save(flags);
+ flags = hard_local_irq_save();
__speculation_ctrl_update(~tif, tif);
- local_irq_restore(flags);
+ hard_local_irq_restore(flags);
}
/* Called from seccomp/prctl update */
@@ -700,6 +700,9 @@
/*
* We use this if we don't have any better idle routine..
+ *
+ * IRQ pipeline: safe_halt() returns with hard irqs on, caller does
+ * not need to force enable.
*/
void __cpuidle default_idle(void)
{
@@ -722,7 +725,7 @@
void stop_this_cpu(void *dummy)
{
- local_irq_disable();
+ hard_local_irq_disable();
/*
* Remove this CPU:
*/
@@ -822,11 +825,14 @@
}
__monitor((void *)¤t_thread_info()->flags, 0, 0);
- if (!need_resched())
+ if (!need_resched()) {
__sti_mwait(0, 0);
- else
+ } else {
+ hard_cond_local_irq_enable();
raw_local_irq_enable();
+ }
} else {
+ hard_cond_local_irq_enable();
raw_local_irq_enable();
}
__current_clr_polling();
--
Gitblit v1.6.2