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

Reply via email to