Blame SOURCES/kvm-s390x-s390-skeys-Mark-the-storage-key-devices-with-u.patch

9bac43
From b830658def8c36d5449e0b704e2f0cb26a593c1e Mon Sep 17 00:00:00 2001
9bac43
From: Thomas Huth <thuth@redhat.com>
9bac43
Date: Mon, 9 Oct 2017 12:32:42 +0200
9bac43
Subject: [PATCH 23/34] s390x/s390-skeys: Mark the storage key devices with
9bac43
 user_creatable = false
9bac43
9bac43
RH-Author: Thomas Huth <thuth@redhat.com>
9bac43
Message-id: <1507552368-9245-7-git-send-email-thuth@redhat.com>
9bac43
Patchwork-id: 77024
9bac43
O-Subject: [RHEL-7.5 qemu-kvm-ma PATCH 06/12] s390x/s390-skeys: Mark the storage key devices with user_creatable = false
9bac43
Bugzilla: 1492033
9bac43
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
9bac43
RH-Acked-by: David Gibson <dgibson@redhat.com>
9bac43
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
9bac43
9bac43
QEMU currently aborts if the user tries to create a skey device:
9bac43
9bac43
$ s390x-softmmu/qemu-system-s390x -nographic -device s390-skeys-qemu
9bac43
qemu-system-s390x: hw/s390x/s390-skeys.c:30: s390_get_skeys_device:
9bac43
 Assertion `ss' failed.
9bac43
Aborted (core dumped)
9bac43
9bac43
The storage key devices are only meant to be instantiated one time,
9bac43
internally. They can not be used by the user, so mark them with
9bac43
user_creatable = false.
9bac43
9bac43
Signed-off-by: Thomas Huth <thuth@redhat.com>
9bac43
Message-Id: <1503569328-22197-1-git-send-email-thuth@redhat.com>
9bac43
Reviewed-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>
9bac43
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
9bac43
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
9bac43
(cherry picked from commit 574ee06de9c4fe63c90be90dc9c747fc9382bb2b)
9bac43
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9bac43
---
9bac43
 hw/s390x/s390-skeys-kvm.c | 4 ++++
9bac43
 hw/s390x/s390-skeys.c     | 4 ++++
9bac43
 2 files changed, 8 insertions(+)
9bac43
9bac43
diff --git a/hw/s390x/s390-skeys-kvm.c b/hw/s390x/s390-skeys-kvm.c
9bac43
index 131da56..dc54ed8 100644
9bac43
--- a/hw/s390x/s390-skeys-kvm.c
9bac43
+++ b/hw/s390x/s390-skeys-kvm.c
9bac43
@@ -54,10 +54,14 @@ static int kvm_s390_skeys_set(S390SKeysState *ss, uint64_t start_gfn,
9bac43
 static void kvm_s390_skeys_class_init(ObjectClass *oc, void *data)
9bac43
 {
9bac43
     S390SKeysClass *skeyclass = S390_SKEYS_CLASS(oc);
9bac43
+    DeviceClass *dc = DEVICE_CLASS(oc);
9bac43
 
9bac43
     skeyclass->skeys_enabled = kvm_s390_skeys_enabled;
9bac43
     skeyclass->get_skeys = kvm_s390_skeys_get;
9bac43
     skeyclass->set_skeys = kvm_s390_skeys_set;
9bac43
+
9bac43
+    /* Reason: Internal device (only one skeys device for the whole memory) */
9bac43
+    dc->user_creatable = false;
9bac43
 }
9bac43
 
9bac43
 static const TypeInfo kvm_s390_skeys_info = {
9bac43
diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
9bac43
index c0de3b0..53ad5d3 100644
9bac43
--- a/hw/s390x/s390-skeys.c
9bac43
+++ b/hw/s390x/s390-skeys.c
9bac43
@@ -229,10 +229,14 @@ static int qemu_s390_skeys_get(S390SKeysState *ss, uint64_t start_gfn,
9bac43
 static void qemu_s390_skeys_class_init(ObjectClass *oc, void *data)
9bac43
 {
9bac43
     S390SKeysClass *skeyclass = S390_SKEYS_CLASS(oc);
9bac43
+    DeviceClass *dc = DEVICE_CLASS(oc);
9bac43
 
9bac43
     skeyclass->skeys_enabled = qemu_s390_skeys_enabled;
9bac43
     skeyclass->get_skeys = qemu_s390_skeys_get;
9bac43
     skeyclass->set_skeys = qemu_s390_skeys_set;
9bac43
+
9bac43
+    /* Reason: Internal device (only one skeys device for the whole memory) */
9bac43
+    dc->user_creatable = false;
9bac43
 }
9bac43
 
9bac43
 static const TypeInfo qemu_s390_skeys_info = {
9bac43
-- 
9bac43
1.8.3.1
9bac43