diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-09-02 05:27:35 -0400 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-09-17 07:10:09 -0400 |
commit | 84877d93336de21a6251db00b841468a83c65906 (patch) | |
tree | d8a6943e3ea277b6188b0f20a0d47810a2983527 | |
parent | c06a841bf36340e9e917ce60d11a6425ac85d0bd (diff) |
KVM: s390: register flic ops dynamically
Using the new kvm_register_device_ops() interface makes us get rid of
an #ifdef in common code.
Cc: Gleb Natapov <gleb@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 3 | ||||
-rw-r--r-- | arch/s390/kvm/kvm-s390.h | 1 | ||||
-rw-r--r-- | include/linux/kvm_host.h | 1 | ||||
-rw-r--r-- | virt/kvm/kvm_main.c | 4 |
4 files changed, 3 insertions, 6 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index b95d4a481b0c..56a411c0245a 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c | |||
@@ -122,7 +122,8 @@ void kvm_arch_hardware_unsetup(void) | |||
122 | 122 | ||
123 | int kvm_arch_init(void *opaque) | 123 | int kvm_arch_init(void *opaque) |
124 | { | 124 | { |
125 | return 0; | 125 | /* Register floating interrupt controller interface. */ |
126 | return kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC); | ||
126 | } | 127 | } |
127 | 128 | ||
128 | /* Section: device related */ | 129 | /* Section: device related */ |
diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h index b1a77669137b..244d02303182 100644 --- a/arch/s390/kvm/kvm-s390.h +++ b/arch/s390/kvm/kvm-s390.h | |||
@@ -227,6 +227,7 @@ int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu); | |||
227 | int psw_extint_disabled(struct kvm_vcpu *vcpu); | 227 | int psw_extint_disabled(struct kvm_vcpu *vcpu); |
228 | void kvm_s390_destroy_adapters(struct kvm *kvm); | 228 | void kvm_s390_destroy_adapters(struct kvm *kvm); |
229 | int kvm_s390_si_ext_call_pending(struct kvm_vcpu *vcpu); | 229 | int kvm_s390_si_ext_call_pending(struct kvm_vcpu *vcpu); |
230 | extern struct kvm_device_ops kvm_flic_ops; | ||
230 | 231 | ||
231 | /* implemented in guestdbg.c */ | 232 | /* implemented in guestdbg.c */ |
232 | void kvm_s390_backup_guest_per_regs(struct kvm_vcpu *vcpu); | 233 | void kvm_s390_backup_guest_per_regs(struct kvm_vcpu *vcpu); |
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 601d321f96e7..7ef088bec715 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
@@ -1069,7 +1069,6 @@ int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type); | |||
1069 | extern struct kvm_device_ops kvm_mpic_ops; | 1069 | extern struct kvm_device_ops kvm_mpic_ops; |
1070 | extern struct kvm_device_ops kvm_xics_ops; | 1070 | extern struct kvm_device_ops kvm_xics_ops; |
1071 | extern struct kvm_device_ops kvm_vfio_ops; | 1071 | extern struct kvm_device_ops kvm_vfio_ops; |
1072 | extern struct kvm_device_ops kvm_flic_ops; | ||
1073 | 1072 | ||
1074 | #ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT | 1073 | #ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT |
1075 | 1074 | ||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 68d96f5dbfe2..f4e792fedb4f 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -2285,10 +2285,6 @@ static struct kvm_device_ops *kvm_device_ops_table[KVM_DEV_TYPE_MAX] = { | |||
2285 | #ifdef CONFIG_KVM_VFIO | 2285 | #ifdef CONFIG_KVM_VFIO |
2286 | [KVM_DEV_TYPE_VFIO] = &kvm_vfio_ops, | 2286 | [KVM_DEV_TYPE_VFIO] = &kvm_vfio_ops, |
2287 | #endif | 2287 | #endif |
2288 | |||
2289 | #ifdef CONFIG_S390 | ||
2290 | [KVM_DEV_TYPE_FLIC] = &kvm_flic_ops, | ||
2291 | #endif | ||
2292 | }; | 2288 | }; |
2293 | 2289 | ||
2294 | int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type) | 2290 | int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type) |