Loading arch/x86/kvm/ioapic.c +0 −7 Original line number Original line Diff line number Diff line Loading @@ -270,7 +270,6 @@ void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap, spin_unlock(&ioapic->lock); spin_unlock(&ioapic->lock); } } #ifdef CONFIG_X86 void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) { { struct kvm_ioapic *ioapic = kvm->arch.vioapic; struct kvm_ioapic *ioapic = kvm->arch.vioapic; Loading @@ -279,12 +278,6 @@ void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) return; return; kvm_make_scan_ioapic_request(kvm); kvm_make_scan_ioapic_request(kvm); } } #else void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) { return; } #endif static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) { { Loading arch/x86/kvm/irq_comm.c +2 −17 Original line number Original line Diff line number Diff line Loading @@ -35,12 +35,8 @@ static int kvm_set_pic_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, struct kvm *kvm, int irq_source_id, int level, bool line_status) bool line_status) { { #ifdef CONFIG_X86 struct kvm_pic *pic = pic_irqchip(kvm); struct kvm_pic *pic = pic_irqchip(kvm); return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level); return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level); #else return -1; #endif } } static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, Loading Loading @@ -194,9 +190,7 @@ int kvm_request_irq_source_id(struct kvm *kvm) } } ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); #ifdef CONFIG_X86 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); #endif set_bit(irq_source_id, bitmap); set_bit(irq_source_id, bitmap); unlock: unlock: mutex_unlock(&kvm->irq_lock); mutex_unlock(&kvm->irq_lock); Loading @@ -207,9 +201,7 @@ int kvm_request_irq_source_id(struct kvm *kvm) void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) { { ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); #ifdef CONFIG_X86 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); #endif mutex_lock(&kvm->irq_lock); mutex_lock(&kvm->irq_lock); if (irq_source_id < 0 || if (irq_source_id < 0 || Loading @@ -222,9 +214,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) goto unlock; goto unlock; kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id); kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id); #ifdef CONFIG_X86 kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id); kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id); #endif unlock: unlock: mutex_unlock(&kvm->irq_lock); mutex_unlock(&kvm->irq_lock); } } Loading Loading @@ -314,16 +304,11 @@ int kvm_set_routing_entry(struct kvm_kernel_irq_routing_entry *e, .u.irqchip = { .irqchip = KVM_IRQCHIP_IOAPIC, .pin = (irq) } } .u.irqchip = { .irqchip = KVM_IRQCHIP_IOAPIC, .pin = (irq) } } #define ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq) #define ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq) #ifdef CONFIG_X86 #define PIC_ROUTING_ENTRY(irq) \ #define PIC_ROUTING_ENTRY(irq) \ { .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \ { .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \ .u.irqchip = { .irqchip = SELECT_PIC(irq), .pin = (irq) % 8 } } .u.irqchip = { .irqchip = SELECT_PIC(irq), .pin = (irq) % 8 } } #define ROUTING_ENTRY2(irq) \ #define ROUTING_ENTRY2(irq) \ IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) #else # define ROUTING_ENTRY2(irq) \ IOAPIC_ROUTING_ENTRY(irq) #endif static const struct kvm_irq_routing_entry default_routing[] = { static const struct kvm_irq_routing_entry default_routing[] = { ROUTING_ENTRY2(0), ROUTING_ENTRY2(1), ROUTING_ENTRY2(0), ROUTING_ENTRY2(1), Loading Loading
arch/x86/kvm/ioapic.c +0 −7 Original line number Original line Diff line number Diff line Loading @@ -270,7 +270,6 @@ void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap, spin_unlock(&ioapic->lock); spin_unlock(&ioapic->lock); } } #ifdef CONFIG_X86 void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) { { struct kvm_ioapic *ioapic = kvm->arch.vioapic; struct kvm_ioapic *ioapic = kvm->arch.vioapic; Loading @@ -279,12 +278,6 @@ void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) return; return; kvm_make_scan_ioapic_request(kvm); kvm_make_scan_ioapic_request(kvm); } } #else void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) { return; } #endif static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) { { Loading
arch/x86/kvm/irq_comm.c +2 −17 Original line number Original line Diff line number Diff line Loading @@ -35,12 +35,8 @@ static int kvm_set_pic_irq(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int irq_source_id, int level, struct kvm *kvm, int irq_source_id, int level, bool line_status) bool line_status) { { #ifdef CONFIG_X86 struct kvm_pic *pic = pic_irqchip(kvm); struct kvm_pic *pic = pic_irqchip(kvm); return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level); return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level); #else return -1; #endif } } static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, Loading Loading @@ -194,9 +190,7 @@ int kvm_request_irq_source_id(struct kvm *kvm) } } ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); #ifdef CONFIG_X86 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); #endif set_bit(irq_source_id, bitmap); set_bit(irq_source_id, bitmap); unlock: unlock: mutex_unlock(&kvm->irq_lock); mutex_unlock(&kvm->irq_lock); Loading @@ -207,9 +201,7 @@ int kvm_request_irq_source_id(struct kvm *kvm) void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) { { ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); #ifdef CONFIG_X86 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); #endif mutex_lock(&kvm->irq_lock); mutex_lock(&kvm->irq_lock); if (irq_source_id < 0 || if (irq_source_id < 0 || Loading @@ -222,9 +214,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) goto unlock; goto unlock; kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id); kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id); #ifdef CONFIG_X86 kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id); kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id); #endif unlock: unlock: mutex_unlock(&kvm->irq_lock); mutex_unlock(&kvm->irq_lock); } } Loading Loading @@ -314,16 +304,11 @@ int kvm_set_routing_entry(struct kvm_kernel_irq_routing_entry *e, .u.irqchip = { .irqchip = KVM_IRQCHIP_IOAPIC, .pin = (irq) } } .u.irqchip = { .irqchip = KVM_IRQCHIP_IOAPIC, .pin = (irq) } } #define ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq) #define ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq) #ifdef CONFIG_X86 #define PIC_ROUTING_ENTRY(irq) \ #define PIC_ROUTING_ENTRY(irq) \ { .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \ { .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \ .u.irqchip = { .irqchip = SELECT_PIC(irq), .pin = (irq) % 8 } } .u.irqchip = { .irqchip = SELECT_PIC(irq), .pin = (irq) % 8 } } #define ROUTING_ENTRY2(irq) \ #define ROUTING_ENTRY2(irq) \ IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) #else # define ROUTING_ENTRY2(irq) \ IOAPIC_ROUTING_ENTRY(irq) #endif static const struct kvm_irq_routing_entry default_routing[] = { static const struct kvm_irq_routing_entry default_routing[] = { ROUTING_ENTRY2(0), ROUTING_ENTRY2(1), ROUTING_ENTRY2(0), ROUTING_ENTRY2(1), Loading