Loading arch/loongarch/kvm/csr.c +0 −5 Original line number Diff line number Diff line Loading @@ -347,8 +347,6 @@ static int kvm_iocsr_common_set(struct kvm_run *run, struct kvm_vcpu *vcpu, static int kvm_misc_set(struct kvm_run *run, struct kvm_vcpu *vcpu, u32 addr, u64 val) { if ((val & KVM_IOCSRF_MISC_FUNC_EXT_IOI_EN) && vcpu->vcpu_id == 0) kvm_setup_ls3a_extirq(vcpu->kvm); return kvm_iocsr_common_set(run, vcpu, addr, val); } Loading Loading @@ -653,9 +651,6 @@ int _kvm_set_iocsr(struct kvm *kvm, struct kvm_iocsr_entry *__user argp) } spin_unlock(&kvm->arch.iocsr_lock); if (tmp.addr == KVM_IOCSR_MISC_FUNC) kvm_enable_ls3a_extirq(kvm, tmp.data & KVM_IOCSRF_MISC_FUNC_EXT_IOI_EN); out: return r; } Loading arch/loongarch/kvm/intc/ls3a_ext_irq.c +2 −19 Original line number Diff line number Diff line Loading @@ -110,9 +110,6 @@ void msi_irq_handler(struct kvm *kvm, int irq, int level) struct ls3a_kvm_extirq *s = ls3a_ext_irqchip(kvm); struct kvm_ls3a_extirq_state *state = &(s->ls3a_ext_irq); if (!atomic64_read(&s->enabled)) return; kvm_debug("ext_irq_handler:irq = %d,level = %d\n", irq, level); ls3a_ext_irq_lock(s, flags); Loading Loading @@ -731,7 +728,6 @@ int kvm_create_ls3a_ext_irq(struct kvm *kvm) memset((void *)&s->ls3a_ext_irq, 0x0, sizeof(struct kvm_ls3a_extirq_state)); spin_lock_init(&s->lock); atomic64_set(&s->enabled, 0); s->kvm = kvm; /* Loading Loading @@ -872,18 +868,6 @@ int kvm_setup_ls3a_extirq(struct kvm *kvm) memset(extirq_state, 0, sizeof(struct kvm_ls3a_extirq_state)); ls3a_ext_irq_unlock(v_extirq, flags); atomic64_set(&v_extirq->enabled, 1); return 0; } int kvm_enable_ls3a_extirq(struct kvm *kvm, bool enable) { struct ls3a_kvm_extirq *v_extirq = ls3a_ext_irqchip(kvm); if (v_extirq) atomic64_set(&v_extirq->enabled, enable); return 0; } Loading @@ -891,7 +875,7 @@ void kvm_dump_ls3a_extirq_state(struct seq_file *s, struct ls3a_kvm_extirq *irqchip) { struct kvm_ls3a_extirq_state *extirq; int i = 0, j = 0; int i, j = 0; unsigned long flags; seq_puts(s, "LS3A ext irqchip state:\n"); Loading @@ -901,8 +885,7 @@ void kvm_dump_ls3a_extirq_state(struct seq_file *s, extirq = &(irqchip->ls3a_ext_irq); ls3a_ext_irq_lock(irqchip, flags); i = (int)atomic64_read(&irqchip->enabled); seq_printf(s, "ext irq enabled:%d", i); seq_puts(s, "ext irq enabled"); seq_puts(s, "\nenabled:(Not Enabled)"); for (i = 0; i < EXTIOI_IRQS; i++) { if (!test_bit(i, (void *)&extirq->ext_en)) Loading arch/loongarch/kvm/intc/ls3a_ext_irq.h +0 −2 Original line number Diff line number Diff line Loading @@ -98,7 +98,6 @@ typedef struct kvm_ls3a_extirq_state { struct ls3a_kvm_extirq { spinlock_t lock; struct kvm *kvm; atomic64_t enabled; struct kvm_io_device device; struct kvm_ls3a_extirq_state ls3a_ext_irq; }; Loading Loading @@ -126,6 +125,5 @@ int kvm_set_ls3a_extirq(struct kvm *kvm, void kvm_destroy_ls3a_ext_irq(struct kvm *kvm); void msi_irq_handler(struct kvm *kvm, int irq, int level); int kvm_setup_ls3a_extirq(struct kvm *kvm); int kvm_enable_ls3a_extirq(struct kvm *kvm, bool enable); void kvm_dump_ls3a_extirq_state(struct seq_file *m, struct ls3a_kvm_extirq *irqchip); #endif arch/loongarch/kvm/loongarch.c +1 −1 Original line number Diff line number Diff line Loading @@ -973,7 +973,7 @@ static int _kvm_set_one_reg(struct kvm_vcpu *vcpu, case KVM_REG_LOONGARCH_VCPU_RESET: kvm_reset_timer(vcpu); if (vcpu->vcpu_id == 0) kvm_enable_ls3a_extirq(vcpu->kvm, false); kvm_setup_ls3a_extirq(vcpu->kvm); memset(&vcpu->arch.irq_pending, 0, sizeof(vcpu->arch.irq_pending)); memset(&vcpu->arch.irq_clear, 0, sizeof(vcpu->arch.irq_clear)); Loading Loading
arch/loongarch/kvm/csr.c +0 −5 Original line number Diff line number Diff line Loading @@ -347,8 +347,6 @@ static int kvm_iocsr_common_set(struct kvm_run *run, struct kvm_vcpu *vcpu, static int kvm_misc_set(struct kvm_run *run, struct kvm_vcpu *vcpu, u32 addr, u64 val) { if ((val & KVM_IOCSRF_MISC_FUNC_EXT_IOI_EN) && vcpu->vcpu_id == 0) kvm_setup_ls3a_extirq(vcpu->kvm); return kvm_iocsr_common_set(run, vcpu, addr, val); } Loading Loading @@ -653,9 +651,6 @@ int _kvm_set_iocsr(struct kvm *kvm, struct kvm_iocsr_entry *__user argp) } spin_unlock(&kvm->arch.iocsr_lock); if (tmp.addr == KVM_IOCSR_MISC_FUNC) kvm_enable_ls3a_extirq(kvm, tmp.data & KVM_IOCSRF_MISC_FUNC_EXT_IOI_EN); out: return r; } Loading
arch/loongarch/kvm/intc/ls3a_ext_irq.c +2 −19 Original line number Diff line number Diff line Loading @@ -110,9 +110,6 @@ void msi_irq_handler(struct kvm *kvm, int irq, int level) struct ls3a_kvm_extirq *s = ls3a_ext_irqchip(kvm); struct kvm_ls3a_extirq_state *state = &(s->ls3a_ext_irq); if (!atomic64_read(&s->enabled)) return; kvm_debug("ext_irq_handler:irq = %d,level = %d\n", irq, level); ls3a_ext_irq_lock(s, flags); Loading Loading @@ -731,7 +728,6 @@ int kvm_create_ls3a_ext_irq(struct kvm *kvm) memset((void *)&s->ls3a_ext_irq, 0x0, sizeof(struct kvm_ls3a_extirq_state)); spin_lock_init(&s->lock); atomic64_set(&s->enabled, 0); s->kvm = kvm; /* Loading Loading @@ -872,18 +868,6 @@ int kvm_setup_ls3a_extirq(struct kvm *kvm) memset(extirq_state, 0, sizeof(struct kvm_ls3a_extirq_state)); ls3a_ext_irq_unlock(v_extirq, flags); atomic64_set(&v_extirq->enabled, 1); return 0; } int kvm_enable_ls3a_extirq(struct kvm *kvm, bool enable) { struct ls3a_kvm_extirq *v_extirq = ls3a_ext_irqchip(kvm); if (v_extirq) atomic64_set(&v_extirq->enabled, enable); return 0; } Loading @@ -891,7 +875,7 @@ void kvm_dump_ls3a_extirq_state(struct seq_file *s, struct ls3a_kvm_extirq *irqchip) { struct kvm_ls3a_extirq_state *extirq; int i = 0, j = 0; int i, j = 0; unsigned long flags; seq_puts(s, "LS3A ext irqchip state:\n"); Loading @@ -901,8 +885,7 @@ void kvm_dump_ls3a_extirq_state(struct seq_file *s, extirq = &(irqchip->ls3a_ext_irq); ls3a_ext_irq_lock(irqchip, flags); i = (int)atomic64_read(&irqchip->enabled); seq_printf(s, "ext irq enabled:%d", i); seq_puts(s, "ext irq enabled"); seq_puts(s, "\nenabled:(Not Enabled)"); for (i = 0; i < EXTIOI_IRQS; i++) { if (!test_bit(i, (void *)&extirq->ext_en)) Loading
arch/loongarch/kvm/intc/ls3a_ext_irq.h +0 −2 Original line number Diff line number Diff line Loading @@ -98,7 +98,6 @@ typedef struct kvm_ls3a_extirq_state { struct ls3a_kvm_extirq { spinlock_t lock; struct kvm *kvm; atomic64_t enabled; struct kvm_io_device device; struct kvm_ls3a_extirq_state ls3a_ext_irq; }; Loading Loading @@ -126,6 +125,5 @@ int kvm_set_ls3a_extirq(struct kvm *kvm, void kvm_destroy_ls3a_ext_irq(struct kvm *kvm); void msi_irq_handler(struct kvm *kvm, int irq, int level); int kvm_setup_ls3a_extirq(struct kvm *kvm); int kvm_enable_ls3a_extirq(struct kvm *kvm, bool enable); void kvm_dump_ls3a_extirq_state(struct seq_file *m, struct ls3a_kvm_extirq *irqchip); #endif
arch/loongarch/kvm/loongarch.c +1 −1 Original line number Diff line number Diff line Loading @@ -973,7 +973,7 @@ static int _kvm_set_one_reg(struct kvm_vcpu *vcpu, case KVM_REG_LOONGARCH_VCPU_RESET: kvm_reset_timer(vcpu); if (vcpu->vcpu_id == 0) kvm_enable_ls3a_extirq(vcpu->kvm, false); kvm_setup_ls3a_extirq(vcpu->kvm); memset(&vcpu->arch.irq_pending, 0, sizeof(vcpu->arch.irq_pending)); memset(&vcpu->arch.irq_clear, 0, sizeof(vcpu->arch.irq_clear)); Loading