]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
LoongArch: KVM: Add delay until timer interrupt injected
authorBibo Mao <maobibo@loongson.cn>
Sun, 9 Nov 2025 08:02:09 +0000 (16:02 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Mon, 10 Nov 2025 00:37:07 +0000 (08:37 +0800)
commitd3c9515e4f9d10ccb113adb4809db5cc31e7ef65
treeae8df28a54da8f061ca4862d3eeb1a4a6e361fe7
parent37e9d1a91382661c2d1f656b54c5d22dfe7a8606
LoongArch: KVM: Add delay until timer interrupt injected

When timer is fired in oneshot mode, CSR.TVAL will stop with value -1
rather than 0. However when the register CSR.TVAL is restored, it will
continue to count down rather than stop there.

Now the method is to write 0 to CSR.TVAL, wait to count down for 1 cycle
at least, which is 10ns with a timer freq 100MHz, and then retore timer
interrupt status. Here add 2 cycles delay to assure that timer interrupt
is injected.

With this patch, timer selftest case passes to run always.

Cc: stable@vger.kernel.org
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kvm/timer.c