Files
android_kernel_xiaomi_sm8450/include/uapi/linux
Paul Mackerras 699a0ea082 KVM: PPC: Book3S: Controls for in-kernel sPAPR hypercall handling
This provides a way for userspace controls which sPAPR hcalls get
handled in the kernel.  Each hcall can be individually enabled or
disabled for in-kernel handling, except for H_RTAS.  The exception
for H_RTAS is because userspace can already control whether
individual RTAS functions are handled in-kernel or not via the
KVM_PPC_RTAS_DEFINE_TOKEN ioctl, and because the numeric value for
H_RTAS is out of the normal sequence of hcall numbers.

Hcalls are enabled or disabled using the KVM_ENABLE_CAP ioctl for the
KVM_CAP_PPC_ENABLE_HCALL capability on the file descriptor for the VM.
The args field of the struct kvm_enable_cap specifies the hcall number
in args[0] and the enable/disable flag in args[1]; 0 means disable
in-kernel handling (so that the hcall will always cause an exit to
userspace) and 1 means enable.  Enabling or disabling in-kernel
handling of an hcall is effective across the whole VM.

The ability for KVM_ENABLE_CAP to be used on a VM file descriptor
on PowerPC is new, added by this commit.  The KVM_CAP_ENABLE_CAP_VM
capability advertises that this ability exists.

When a VM is created, an initial set of hcalls are enabled for
in-kernel handling.  The set that is enabled is the set that have
an in-kernel implementation at this point.  Any new hcall
implementations from this point onwards should not be added to the
default set without a good reason.

No distinction is made between real-mode and virtual-mode hcall
implementations; the one setting controls them both.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-07-28 15:22:17 +02:00
..
2014-05-08 12:43:03 -04:00
2013-04-26 16:08:16 +10:00
2014-06-13 09:52:19 -07:00
2014-03-20 14:55:18 +01:00
2013-11-09 18:20:22 -05:00
2012-10-16 18:49:15 -07:00
2013-03-27 14:37:47 +00:00
2014-04-22 21:27:57 -04:00
2014-04-01 17:08:43 +02:00
2014-04-28 16:43:44 +02:00
2014-05-14 10:04:34 +01:00
2013-12-11 12:57:55 -08:00
2013-08-13 15:10:22 -07:00
2013-08-21 12:21:45 -07:00
2013-12-08 11:01:47 +01:00
2013-11-27 11:03:38 -08:00
2014-03-04 13:51:06 -05:00
2013-07-09 10:33:25 -07:00
2013-02-27 19:10:22 -08:00
2013-04-19 14:57:57 -04:00
2014-06-13 10:53:49 -04:00
2012-11-16 10:15:35 -08:00
2014-01-06 15:13:01 -05:00
2014-03-21 14:21:13 -04:00
2013-12-06 12:37:56 -05:00
2014-04-25 10:08:48 -07:00
2014-04-24 16:16:33 -07:00
2013-03-22 16:19:59 -07:00
2014-04-26 12:13:24 -04:00
2013-05-02 13:40:15 +03:00
2013-12-11 09:25:20 -02:00
2014-03-07 08:12:37 +01:00