Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[linux-2.6-microblaze.git] / arch / s390 / include / asm / kvm_host.h
index 161a9e1..a604d51 100644 (file)
@@ -244,6 +244,7 @@ struct kvm_s390_sie_block {
        __u8    fpf;                    /* 0x0060 */
 #define ECB_GS         0x40
 #define ECB_TE         0x10
+#define ECB_SPECI      0x08
 #define ECB_SRSI       0x04
 #define ECB_HOSTPROTINT        0x02
        __u8    ecb;                    /* 0x0061 */
@@ -798,14 +799,12 @@ struct kvm_s390_cpu_model {
        unsigned short ibc;
 };
 
-struct kvm_s390_module_hook {
-       int (*hook)(struct kvm_vcpu *vcpu);
-       struct module *owner;
-};
+typedef int (*crypto_hook)(struct kvm_vcpu *vcpu);
 
 struct kvm_s390_crypto {
        struct kvm_s390_crypto_cb *crycb;
-       struct kvm_s390_module_hook *pqap_hook;
+       struct rw_semaphore pqap_hook_rwsem;
+       crypto_hook *pqap_hook;
        __u32 crycbd;
        __u8 aes_kw;
        __u8 dea_kw;
@@ -957,6 +956,7 @@ struct kvm_arch{
        atomic64_t cmma_dirty_pages;
        /* subset of available cpu features enabled by user space */
        DECLARE_BITMAP(cpu_feat, KVM_S390_VM_CPU_FEAT_NR_BITS);
+       /* indexed by vcpu_idx */
        DECLARE_BITMAP(idle_mask, KVM_MAX_VCPUS);
        struct kvm_s390_gisa_interrupt gisa_int;
        struct kvm_s390_pv pv;