[...] On 10/15/2024 01:53, Zhuo, Qiuxu wrote: >> From: Avadhut Naik <avadhut.naik@xxxxxxx> >> [...] >> [...] >> static __always_inline int >> -__mc_scan_banks(struct mce *m, struct pt_regs *regs, struct mce *final, >> +__mc_scan_banks(struct mce_hw_err *err, struct pt_regs *regs, struct mce *final, > > The 'final' parameter should also be a pointer to this_cpu_ptr(&hw_errs_seen). > So, it's the final value with an entire 'mce_hw_err' structure stored to > ' hw_errs_seen ', not just a 'mce' structure got stored in 'hw_errs_seen'. > > So, > __mc_scan_banks(struct mce_hw_err *err, struct pt_regs *regs, struct mce_hw_err *final, ... > Thanks for pointing this out. This may require a few other changes too. Will address them in the next revision. >> unsigned long *toclear, unsigned long *valid_banks, int no_way_out, >> int *worst) >> [...] -- Thanks, Avadhut Naik