diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2025-12-10 06:20:22 +0900 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2025-12-10 06:20:22 +0900 |
| commit | 7a3984bbd69055898add0fe22445f99435f33450 (patch) | |
| tree | 0e5d66db29b00a2e76e6020a3c6608b8bc5156c8 /arch/mips/kvm/interrupt.c | |
| parent | 12eef14bcbac77bd08dc5693ad5818e69993246f (diff) | |
| parent | 2b6d718c8dbe61aedffd7d12cf7bc60fab6f3d0e (diff) | |
Merge tag 'mips_6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS updates from Thomas Bogendoerfer:
"Just cleanups and fixes"
* tag 'mips_6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
MIPS: Fix whitespace damage in r4k_wait from VS timer fix
mips: kvm: simplify kvm_mips_deliver_interrupts()
MIPS: alchemy: mtx1: switch to static device properties
mips: Remove __GFP_HIGHMEM masking
MIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits
MIPS: dts: Always descend vendor subdirectories
mips: configs: loongson1: Update defconfig
MIPS: Fix HOTPLUG_PARALLEL dependency
Diffstat (limited to 'arch/mips/kvm/interrupt.c')
| -rw-r--r-- | arch/mips/kvm/interrupt.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/arch/mips/kvm/interrupt.c b/arch/mips/kvm/interrupt.c index 0277942279ea..895a6f1781fd 100644 --- a/arch/mips/kvm/interrupt.c +++ b/arch/mips/kvm/interrupt.c @@ -27,27 +27,11 @@ void kvm_mips_deliver_interrupts(struct kvm_vcpu *vcpu, u32 cause) unsigned long *pending_clr = &vcpu->arch.pending_exceptions_clr; unsigned int priority; - if (!(*pending) && !(*pending_clr)) - return; - - priority = __ffs(*pending_clr); - while (priority <= MIPS_EXC_MAX) { + for_each_set_bit(priority, pending_clr, MIPS_EXC_MAX + 1) kvm_mips_callbacks->irq_clear(vcpu, priority, cause); - priority = find_next_bit(pending_clr, - BITS_PER_BYTE * sizeof(*pending_clr), - priority + 1); - } - - priority = __ffs(*pending); - while (priority <= MIPS_EXC_MAX) { + for_each_set_bit(priority, pending, MIPS_EXC_MAX + 1) kvm_mips_callbacks->irq_deliver(vcpu, priority, cause); - - priority = find_next_bit(pending, - BITS_PER_BYTE * sizeof(*pending), - priority + 1); - } - } int kvm_mips_pending_timer(struct kvm_vcpu *vcpu) |
