|
[PATCH] KVM: Properly support LINT1 pin: msg#00634emulators.kvm.devel
This patch applies to the lapic branch. Its a simple little cleanup that I meant to get in earlier and never got around to. --- KVM: Properly support LINT1 pin LINT1 is not currently "wired" to anything, so there is no support for it in the LAPIC code. We should fix the support for completeness since its not difficult Signed-off-by: Gregory Haskins <ghaskins@xxxxxxxxxx> --- drivers/kvm/lapic.c | 45 ++++++++++++++++++++------------------------- 1 files changed, 20 insertions(+), 25 deletions(-) diff --git a/drivers/kvm/lapic.c b/drivers/kvm/lapic.c index dfc06e5..c4810df 100644 --- a/drivers/kvm/lapic.c +++ b/drivers/kvm/lapic.c @@ -1313,43 +1313,38 @@ static int apic_irqdev_ack(struct kvm_irqdevice *this, int flags, static int apic_irqdev_set_pin(struct kvm_irqdevice *this, int irq, int level) { struct kvm_kern_apic *apic = (struct kvm_kern_apic*)this->private; - int lvt = 0; + int accept = 0; + int dm = 0; + int vector = 0; spin_lock_bh(&apic->lock); + /* + * pin "0" is LINT0, and "1" is LINT1 + */ + BUG_ON(irq > 1); + if (!apic_enabled(apic)) { /* * If the LAPIC is disabled, we simply forward the interrupt * on to the output line */ - __apic_accept_irq(apic, APIC_DM_EXTINT, 0, level, 1); - goto out; - } - - /* - * pin "0" is LINT0, and "1" is LINT1 - */ - BUG_ON(irq > 1); + accept = 1; + dm = !irq ? APIC_DM_EXTINT : APIC_DM_NMI; + } else { + int lvt = !irq ? APIC_LVT0 : APIC_LVT1; - switch(irq) { - case 0: - lvt = APIC_LVT0; - break; - case 1: - lvt = APIC_LVT1; - break; + if (apic_lvt_enabled(apic, lvt)) { + accept = 1; + dm = apic_lvt_dm(apic, lvt); + vector = apic_lvt_vector(apic, lvt); + } } - if (apic_lvt_enabled(apic, lvt)) - __apic_accept_irq(apic, - apic_lvt_dm(apic, lvt), - apic_lvt_vector(apic, lvt), - level, - 1); - + if (accept) + __apic_accept_irq(apic, dm, vector, level, 1); - out: - spin_unlock_bh(&apic->lock); + spin_unlock_bh(&apic->lock); return 0; } ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: A testing for KVM: 00634, Gregory Haskins |
|---|---|
| Next by Date: | Re: In kernel PIC support: kernel patch: 00634, Gregory Haskins |
| Previous by Thread: | download Autodesk Autocadi: 00634, Darrell Patterson |
| Next by Thread: | [PATCH] SVM: reliably detect if SVM was disabled by BIOS: 00634, Joerg Roedel |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |