diff options
author | Gleb Natapov <gleb@redhat.com> | 2011-12-15 05:38:40 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-12-27 04:22:32 -0500 |
commit | d546cb406ea0d83e2d39ec14221957a24f88a622 (patch) | |
tree | 32ed0f1cc2e56a8fcd2a24cf0db97d1326b4c9bd /arch/x86/kvm/i8259.c | |
parent | a647795efbedeedf8a1dc6deded26defa23562bd (diff) |
KVM: drop bsp_vcpu pointer from kvm struct
Drop bsp_vcpu pointer from kvm struct since its only use is incorrect
anyway.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm/i8259.c')
-rw-r--r-- | arch/x86/kvm/i8259.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c index cac4746d7ffb..b6a73537e1ef 100644 --- a/arch/x86/kvm/i8259.c +++ b/arch/x86/kvm/i8259.c | |||
@@ -262,9 +262,10 @@ int kvm_pic_read_irq(struct kvm *kvm) | |||
262 | 262 | ||
263 | void kvm_pic_reset(struct kvm_kpic_state *s) | 263 | void kvm_pic_reset(struct kvm_kpic_state *s) |
264 | { | 264 | { |
265 | int irq; | 265 | int irq, i; |
266 | struct kvm_vcpu *vcpu0 = s->pics_state->kvm->bsp_vcpu; | 266 | struct kvm_vcpu *vcpu; |
267 | u8 irr = s->irr, isr = s->imr; | 267 | u8 irr = s->irr, isr = s->imr; |
268 | bool found = false; | ||
268 | 269 | ||
269 | s->last_irr = 0; | 270 | s->last_irr = 0; |
270 | s->irr = 0; | 271 | s->irr = 0; |
@@ -281,12 +282,19 @@ void kvm_pic_reset(struct kvm_kpic_state *s) | |||
281 | s->special_fully_nested_mode = 0; | 282 | s->special_fully_nested_mode = 0; |
282 | s->init4 = 0; | 283 | s->init4 = 0; |
283 | 284 | ||
284 | for (irq = 0; irq < PIC_NUM_PINS/2; irq++) { | 285 | kvm_for_each_vcpu(i, vcpu, s->pics_state->kvm) |
285 | if (vcpu0 && kvm_apic_accept_pic_intr(vcpu0)) | 286 | if (kvm_apic_accept_pic_intr(vcpu)) { |
286 | if (irr & (1 << irq) || isr & (1 << irq)) { | 287 | found = true; |
287 | pic_clear_isr(s, irq); | 288 | break; |
288 | } | 289 | } |
289 | } | 290 | |
291 | |||
292 | if (!found) | ||
293 | return; | ||
294 | |||
295 | for (irq = 0; irq < PIC_NUM_PINS/2; irq++) | ||
296 | if (irr & (1 << irq) || isr & (1 << irq)) | ||
297 | pic_clear_isr(s, irq); | ||
290 | } | 298 | } |
291 | 299 | ||
292 | static void pic_ioport_write(void *opaque, u32 addr, u32 val) | 300 | static void pic_ioport_write(void *opaque, u32 addr, u32 val) |