struct kvm *kvm, int irq_source_id, int level,
                           bool line_status)
 {
-       struct kvm_pic *pic = pic_irqchip(kvm);
+       struct kvm_pic *pic = kvm->arch.vpic;
        return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level);
 }
 
                goto unlock;
 
        kvm_ioapic_clear_all(kvm->arch.vioapic, irq_source_id);
-       kvm_pic_clear_all(pic_irqchip(kvm), irq_source_id);
+       kvm_pic_clear_all(kvm->arch.vpic, irq_source_id);
 unlock:
        mutex_unlock(&kvm->irq_lock);
 }
 
 
 static int kvm_vm_ioctl_get_irqchip(struct kvm *kvm, struct kvm_irqchip *chip)
 {
+       struct kvm_pic *pic = kvm->arch.vpic;
        int r;
 
        r = 0;
        switch (chip->chip_id) {
        case KVM_IRQCHIP_PIC_MASTER:
-               memcpy(&chip->chip.pic,
-                       &pic_irqchip(kvm)->pics[0],
+               memcpy(&chip->chip.pic, &pic->pics[0],
                        sizeof(struct kvm_pic_state));
                break;
        case KVM_IRQCHIP_PIC_SLAVE:
-               memcpy(&chip->chip.pic,
-                       &pic_irqchip(kvm)->pics[1],
+               memcpy(&chip->chip.pic, &pic->pics[1],
                        sizeof(struct kvm_pic_state));
                break;
        case KVM_IRQCHIP_IOAPIC:
 
 static int kvm_vm_ioctl_set_irqchip(struct kvm *kvm, struct kvm_irqchip *chip)
 {
+       struct kvm_pic *pic = kvm->arch.vpic;
        int r;
 
        r = 0;
        switch (chip->chip_id) {
        case KVM_IRQCHIP_PIC_MASTER:
-               spin_lock(&pic_irqchip(kvm)->lock);
-               memcpy(&pic_irqchip(kvm)->pics[0],
-                       &chip->chip.pic,
+               spin_lock(&pic->lock);
+               memcpy(&pic->pics[0], &chip->chip.pic,
                        sizeof(struct kvm_pic_state));
-               spin_unlock(&pic_irqchip(kvm)->lock);
+               spin_unlock(&pic->lock);
                break;
        case KVM_IRQCHIP_PIC_SLAVE:
-               spin_lock(&pic_irqchip(kvm)->lock);
-               memcpy(&pic_irqchip(kvm)->pics[1],
-                       &chip->chip.pic,
+               spin_lock(&pic->lock);
+               memcpy(&pic->pics[1], &chip->chip.pic,
                        sizeof(struct kvm_pic_state));
-               spin_unlock(&pic_irqchip(kvm)->lock);
+               spin_unlock(&pic->lock);
                break;
        case KVM_IRQCHIP_IOAPIC:
                r = kvm_set_ioapic(kvm, &chip->chip.ioapic);
                r = -EINVAL;
                break;
        }
-       kvm_pic_update_irq(pic_irqchip(kvm));
+       kvm_pic_update_irq(pic);
        return r;
 }