On Mon, 18 Jun 2012, Chen Gong wrote:ä 2012/6/18 16:00, Thomas Gleixner åé:On Mon, 18 Jun 2012, Chen Gong wrote:index 92d8b5c..0493525 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel.c
@@ -40,6 +40,7 @@ static DEFINE_RAW_SPINLOCK(cmci_discover_lock);
static DEFINE_PER_CPU(unsigned long, cmci_time_stamp);
static DEFINE_PER_CPU(unsigned int, cmci_storm_cnt);
static DEFINE_PER_CPU(unsigned int, cmci_storm_state);
+static DEFINE_PER_CPU(unsigned long, cmci_storm_hcpu_status);
Why do you insist on having another status variable, which does
actually nothing than obfuscate the code?
Look at the usage sites:
__this_cpu_write(cmci_storm_state, CMCI_STORM_SUBSIDED);
+ __this_cpu_write(cmci_storm_hcpu_status,
CMCI_STORM_HCPU_NONE);
Because here I can't substitute CMCI_STORM_HCPU_NONE with
CMCI_STORM_SUBSIDED. If so, the status is chaos.
Have you actually read what I wrote later? You do not neeed that extra
state, period.