Many of the checks in reset_block() are done again in the block reset function. So drop the redundant checks. Signed-off-by: Yazen Ghannam <yazen.ghannam@xxxxxxx> --- Notes: Link: https://lore.kernel.org/r/20250624-wip-mca-updates-v4-19-236dd74f645f@xxxxxxx v4->v5: * No change. v3->v4: * New in v4. arch/x86/kernel/cpu/mce/amd.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c index 559ad5ddb7a0..b929b09dd7eb 100644 --- a/arch/x86/kernel/cpu/mce/amd.c +++ b/arch/x86/kernel/cpu/mce/amd.c @@ -814,29 +814,11 @@ static void amd_deferred_error_interrupt(void) machine_check_poll(MCP_TIMESTAMP, &this_cpu_ptr(&mce_amd_data)->dfr_intr_banks); } -static void reset_block(struct threshold_block *block) -{ - struct thresh_restart tr; - u32 low = 0, high = 0; - - if (!block) - return; - - if (rdmsr_safe(block->address, &low, &high)) - return; - - if (!(high & MASK_OVERFLOW_HI)) - return; - - memset(&tr, 0, sizeof(tr)); - tr.b = block; - threshold_restart_block(&tr); -} - void amd_reset_thr_limit(unsigned int bank) { struct threshold_bank **bp = this_cpu_read(threshold_banks); struct threshold_block *block, *tmp; + struct thresh_restart tr; /* * Validate that the threshold bank has been initialized already. The @@ -846,8 +828,12 @@ void amd_reset_thr_limit(unsigned int bank) if (!bp || !bp[bank]) return; - list_for_each_entry_safe(block, tmp, &bp[bank]->miscj, miscj) - reset_block(block); + memset(&tr, 0, sizeof(tr)); + + list_for_each_entry_safe(block, tmp, &bp[bank]->miscj, miscj) { + tr.b = block; + threshold_restart_block(&tr); + } } /* -- 2.51.0