By initializing the GIB, it will be used by the kvm host. Signed-off-by: Michael Mueller <mimu@xxxxxxxxxxxxx> --- Documentation/kmsg/s390/kvm | 12 ++++++++++++ arch/s390/kvm/kvm-s390.c | 10 +++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Documentation/kmsg/s390/kvm b/Documentation/kmsg/s390/kvm index 76ffe2012254..6908476a54f1 100644 --- a/Documentation/kmsg/s390/kvm +++ b/Documentation/kmsg/s390/kvm @@ -10,3 +10,15 @@ * If this problem persists after a reload of the kvm kernel module, gather * Linux debug data and contact your support organization. */ + +/*? + * Text: "Failed to initialize GIB rc=%d\n" + * Severity: Error + * Parameter: + * @1: return code of the GIB initialization call + * Description: + * The initialization if the GIB (Guest Information Block) was not successful. + * User action: + * If this problem persists after a reload of the kvm kernel module, gather + * Linux debug data and contact your support organization. + */ diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 2d10e175862c..5f068f3942da 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -428,16 +428,24 @@ int kvm_arch_init(void *opaque) goto out_debug_unreg; } + rc = kvm_s390_gib_init(GAL_ISC); + if (rc) { + pr_err("Failed to initialize GIB rc=%d\n", rc); + goto out_debug_unreg; + } + kvm_s390_cpu_feat_init(); /* Register floating interrupt controller interface. */ rc = kvm_register_device_ops(&kvm_flic_ops, KVM_DEV_TYPE_FLIC); if (rc) { pr_err("Failed to register FLIC rc=%d\n", rc); - goto out_debug_unreg; + goto out_gib_destroy; } return 0; +out_gib_destroy: + kvm_s390_gib_destroy(); out_debug_unreg: debug_unregister(kvm_s390_dbf); return rc; -- 2.13.4