struct mc_telem_cpu_ctl's processing field is used solely in mctelem_process_deferred(), where the local variable can as well be used directly when retrieving the head of the list to process. This then also eliminates the field holding a dangling pointer once the processing of the list finished, in particular when the entry is handed to mctelem_dismiss().
No functional change intended. Signed-off-by: Jan Beulich <jbeul...@suse.com> --- a/xen/arch/x86/cpu/mcheck/mctelem.c +++ b/xen/arch/x86/cpu/mcheck/mctelem.c @@ -122,7 +122,6 @@ struct mc_telem_cpu_ctl { * to guarantee the above mutual exclusivity. */ struct mctelem_ent *pending, *lmce_pending; - struct mctelem_ent *processing; }; static DEFINE_PER_CPU(struct mc_telem_cpu_ctl, mctctl); @@ -233,9 +232,7 @@ void mctelem_process_deferred(unsigned i * handled by another round of MCE softirq. */ mctelem_xchg_head(lmce ? &ctl->lmce_pending : &ctl->pending, - &this_cpu(mctctl.processing), NULL); - - head = this_cpu(mctctl.processing); + &head, NULL); /* * Then, fix up the list to include prev pointers, to make