lkml.org 
[lkml]   [2009]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 08/42] KVM: Call pic_clear_isr() on pic reset to reuse logic there
    Date
    From: Gleb Natapov <gleb@redhat.com>

    Also move call of ack notifiers after pic state change.

    Signed-off-by: Gleb Natapov <gleb@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    ---
    arch/x86/kvm/i8259.c | 22 +++++++++-------------
    1 files changed, 9 insertions(+), 13 deletions(-)

    diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
    index 01f1516..ccc941a 100644
    --- a/arch/x86/kvm/i8259.c
    +++ b/arch/x86/kvm/i8259.c
    @@ -225,22 +225,11 @@ int kvm_pic_read_irq(struct kvm *kvm)

    void kvm_pic_reset(struct kvm_kpic_state *s)
    {
    - int irq, irqbase, n;
    + int irq;
    struct kvm *kvm = s->pics_state->irq_request_opaque;
    struct kvm_vcpu *vcpu0 = kvm->bsp_vcpu;
    + u8 irr = s->irr, isr = s->imr;

    - if (s == &s->pics_state->pics[0])
    - irqbase = 0;
    - else
    - irqbase = 8;
    -
    - for (irq = 0; irq < PIC_NUM_PINS/2; irq++) {
    - if (vcpu0 && kvm_apic_accept_pic_intr(vcpu0))
    - if (s->irr & (1 << irq) || s->isr & (1 << irq)) {
    - n = irq + irqbase;
    - kvm_notify_acked_irq(kvm, SELECT_PIC(n), n);
    - }
    - }
    s->last_irr = 0;
    s->irr = 0;
    s->imr = 0;
    @@ -256,6 +245,13 @@ void kvm_pic_reset(struct kvm_kpic_state *s)
    s->rotate_on_auto_eoi = 0;
    s->special_fully_nested_mode = 0;
    s->init4 = 0;
    +
    + for (irq = 0; irq < PIC_NUM_PINS/2; irq++) {
    + if (vcpu0 && kvm_apic_accept_pic_intr(vcpu0))
    + if (irr & (1 << irq) || isr & (1 << irq)) {
    + pic_clear_isr(s, irq);
    + }
    + }
    }

    static void pic_ioport_write(void *opaque, u32 addr, u32 val)
    --
    1.6.5.2


    \
     
     \ /
      Last update: 2009-11-16 13:55    [W:0.022 / U:1.260 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site