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: 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 3ddb28f90d70..3cb9f6a68316 100644 --- a/arch/x86/kernel/cpu/mce/amd.c +++ b/arch/x86/kernel/cpu/mce/amd.c @@ -830,29 +830,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 @@ -862,8 +844,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.49.0