summaryrefslogtreecommitdiff
path: root/Documentation/virt
diff options
context:
space:
mode:
authorClaudio Imbrenda <imbrenda@linux.ibm.com>2026-02-04 16:02:57 +0100
committerClaudio Imbrenda <imbrenda@linux.ibm.com>2026-02-04 17:00:10 +0100
commit0ee4ddc1647b8b3b9e7a94d798a1774a764428c1 (patch)
tree34c7d218f4093392a4a4c0f48584c9b416a8d36d /Documentation/virt
parent0fdd5c18a99cc89e829243f9f8561b37b7ebc4fc (diff)
downloadlinux-next-0ee4ddc1647b8b3b9e7a94d798a1774a764428c1.tar.gz
linux-next-0ee4ddc1647b8b3b9e7a94d798a1774a764428c1.zip
KVM: s390: Storage key manipulation IOCTL
Add a new IOCTL to allow userspace to manipulate storage keys directly. This will make it easier to write selftests related to storage keys. Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Diffstat (limited to 'Documentation/virt')
-rw-r--r--Documentation/virt/kvm/api.rst42
1 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
index 01a3abef8abb..72e04dedb068 100644
--- a/Documentation/virt/kvm/api.rst
+++ b/Documentation/virt/kvm/api.rst
@@ -6517,6 +6517,40 @@ the capability to be present.
`flags` must currently be zero.
+4.144 KVM_S390_KEYOP
+--------------------
+
+:Capability: KVM_CAP_S390_KEYOP
+:Architectures: s390
+:Type: vm ioctl
+:Parameters: struct kvm_s390_keyop (in/out)
+:Returns: 0 in case of success, < 0 on error
+
+The specified key operation is performed on the given guest address. The
+previous storage key (or the relevant part thereof) will be returned in
+`key`.
+
+::
+
+ struct kvm_s390_keyop {
+ __u64 guest_addr;
+ __u8 key;
+ __u8 operation;
+ };
+
+Currently supported values for ``operation``:
+
+KVM_S390_KEYOP_ISKE
+ Returns the storage key for the guest address ``guest_addr`` in ``key``.
+
+KVM_S390_KEYOP_RRBE
+ Resets the reference bit for the guest address ``guest_addr``, returning the
+ R and C bits of the old storage key in ``key``; the remaining fields of
+ the storage key will be set to 0.
+
+KVM_S390_KEYOP_SSKE
+ Sets the storage key for the guest address ``guest_addr`` to the key
+ specified in ``key``, returning the previous value in ``key``.
.. _kvm_run:
@@ -9287,6 +9321,14 @@ The presence of this capability indicates that KVM_RUN will update the
KVM_RUN_X86_GUEST_MODE bit in kvm_run.flags to indicate whether the
vCPU was executing nested guest code when it exited.
+8.46 KVM_CAP_S390_KEYOP
+-----------------------
+
+:Architectures: s390
+
+The presence of this capability indicates that the KVM_S390_KEYOP ioctl is
+available.
+
KVM exits with the register state of either the L1 or L2 guest
depending on which executed at the time of an exit. Userspace must
take care to differentiate between these cases.