aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kvm/ioapic.c7
-rw-r--r--arch/x86/kvm/irq_comm.c19
2 files changed, 2 insertions, 24 deletions
diff --git a/arch/x86/kvm/ioapic.c b/arch/x86/kvm/ioapic.c
index f0f7ef82b7a6..b1947e0f3e10 100644
--- a/arch/x86/kvm/ioapic.c
+++ b/arch/x86/kvm/ioapic.c
@@ -270,7 +270,6 @@ void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap,
270 spin_unlock(&ioapic->lock); 270 spin_unlock(&ioapic->lock);
271} 271}
272 272
273#ifdef CONFIG_X86
274void kvm_vcpu_request_scan_ioapic(struct kvm *kvm) 273void kvm_vcpu_request_scan_ioapic(struct kvm *kvm)
275{ 274{
276 struct kvm_ioapic *ioapic = kvm->arch.vioapic; 275 struct kvm_ioapic *ioapic = kvm->arch.vioapic;
@@ -279,12 +278,6 @@ void kvm_vcpu_request_scan_ioapic(struct kvm *kvm)
279 return; 278 return;
280 kvm_make_scan_ioapic_request(kvm); 279 kvm_make_scan_ioapic_request(kvm);
281} 280}
282#else
283void kvm_vcpu_request_scan_ioapic(struct kvm *kvm)
284{
285 return;
286}
287#endif
288 281
289static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) 282static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val)
290{ 283{
diff --git a/arch/x86/kvm/irq_comm.c b/arch/x86/kvm/irq_comm.c
index e9c135b639aa..72298b3ac025 100644
--- a/arch/x86/kvm/irq_comm.c
+++ b/arch/x86/kvm/irq_comm.c
@@ -35,12 +35,8 @@ static int kvm_set_pic_irq(struct kvm_kernel_irq_routing_entry *e,
35 struct kvm *kvm, int irq_source_id, int level, 35 struct kvm *kvm, int irq_source_id, int level,
36 bool line_status) 36 bool line_status)
37{ 37{
38#ifdef CONFIG_X86
39 struct kvm_pic *pic = pic_irqchip(kvm); 38 struct kvm_pic *pic = pic_irqchip(kvm);
40 return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level); 39 return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level);
41#else
42 return -1;
43#endif
44} 40}
45 41
46static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, 42static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e,
@@ -194,9 +190,7 @@ int kvm_request_irq_source_id(struct kvm *kvm)
194 } 190 }
195 191
196 ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); 192 ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID);
197#ifdef CONFIG_X86
198 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); 193 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID);
199#endif
200 set_bit(irq_source_id, bitmap); 194 set_bit(irq_source_id, bitmap);
201unlock: 195unlock:
202 mutex_unlock(&kvm->irq_lock); 196 mutex_unlock(&kvm->irq_lock);
@@ -207,9 +201,7 @@ unlock:
207void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id) 201void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id)
208{ 202{
209 ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID); 203 ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID);
210#ifdef CONFIG_X86
211 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID); 204 ASSERT(irq_source_id != KVM_IRQFD_RESAMPLE_IRQ_SOURCE_ID);
212#endif
213 205
214 mutex_lock(&kvm->irq_lock); 206 mutex_lock(&kvm->irq_lock);
215 if (irq_source_id < 0 || 207 if (irq_source_id < 0 ||
@@ -222,9 +214,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id)
222 goto unlock; 214 goto unlock;
223 215
224 kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id); 216 kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id);
225#ifdef CONFIG_X86
226 kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id); 217 kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id);
227#endif
228unlock: 218unlock:
229 mutex_unlock(&kvm->irq_lock); 219 mutex_unlock(&kvm->irq_lock);
230} 220}
@@ -314,16 +304,11 @@ out:
314 .u.irqchip = { .irqchip = KVM_IRQCHIP_IOAPIC, .pin = (irq) } } 304 .u.irqchip = { .irqchip = KVM_IRQCHIP_IOAPIC, .pin = (irq) } }
315#define ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq) 305#define ROUTING_ENTRY1(irq) IOAPIC_ROUTING_ENTRY(irq)
316 306
317#ifdef CONFIG_X86 307#define PIC_ROUTING_ENTRY(irq) \
318# define PIC_ROUTING_ENTRY(irq) \
319 { .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \ 308 { .gsi = irq, .type = KVM_IRQ_ROUTING_IRQCHIP, \
320 .u.irqchip = { .irqchip = SELECT_PIC(irq), .pin = (irq) % 8 } } 309 .u.irqchip = { .irqchip = SELECT_PIC(irq), .pin = (irq) % 8 } }
321# define ROUTING_ENTRY2(irq) \ 310#define ROUTING_ENTRY2(irq) \
322 IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq) 311 IOAPIC_ROUTING_ENTRY(irq), PIC_ROUTING_ENTRY(irq)
323#else
324# define ROUTING_ENTRY2(irq) \
325 IOAPIC_ROUTING_ENTRY(irq)
326#endif
327 312
328static const struct kvm_irq_routing_entry default_routing[] = { 313static const struct kvm_irq_routing_entry default_routing[] = {
329 ROUTING_ENTRY2(0), ROUTING_ENTRY2(1), 314 ROUTING_ENTRY2(0), ROUTING_ENTRY2(1),