Skip to content

Commit cf74ff5

Browse files
npigginmpe
authored andcommitted
powerpc/time: Fix KVM host re-arming a timer beyond decrementer range
If the next host timer is beyond decrementer range, timer_rearm_host_dec will leave decrementer not programmed. This will not cause a problem for the host it will just set the decrementer correctly when the decrementer interrupt hits, it seems safer not to leave the next host decrementer interrupt timing able to be influenced by a guest. This code is only used in the P9 KVM paths so it's unlikely to be hit practically unless large decrementer is force disabled in the host. Fixes: 25aa145 ("powerpc/time: add API for KVM to re-arm the host timer/decrementer") Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220124143930.3923442-2-npiggin@gmail.com
1 parent 9d71165 commit cf74ff5

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

arch/powerpc/kernel/time.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,8 +582,9 @@ void timer_rearm_host_dec(u64 now)
582582
local_paca->irq_happened |= PACA_IRQ_DEC;
583583
} else {
584584
now = *next_tb - now;
585-
if (now <= decrementer_max)
586-
set_dec_or_work(now);
585+
if (now > decrementer_max)
586+
now = decrementer_max;
587+
set_dec_or_work(now);
587588
}
588589
}
589590
EXPORT_SYMBOL_GPL(timer_rearm_host_dec);

0 commit comments

Comments
 (0)