Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07c45a36 authored by Avi Kivity's avatar Avi Kivity
Browse files

KVM: Allow kernel to select size of mmap() buffer



This allows us to store offsets in the kernel/user kvm_run area, and be
sure that userspace has them mapped.  As offsets can be outside the
kvm_run struct, userspace has no way of knowing how much to mmap.

Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
parent 1961d276
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -2436,7 +2436,7 @@ static long kvm_dev_ioctl(struct file *filp,
			  unsigned int ioctl, unsigned long arg)
{
	void __user *argp = (void __user *)arg;
	int r = -EINVAL;
	long r = -EINVAL;

	switch (ioctl) {
	case KVM_GET_API_VERSION:
@@ -2478,6 +2478,12 @@ static long kvm_dev_ioctl(struct file *filp,
		 */
		r = 0;
		break;
	case KVM_GET_VCPU_MMAP_SIZE:
		r = -EINVAL;
		if (arg)
			goto out;
		r = PAGE_SIZE;
		break;
	default:
		;
	}
+4 −0
Original line number Diff line number Diff line
@@ -253,6 +253,10 @@ struct kvm_signal_mask {
 * return is 1 (yes) or 0 (no, sorry).
 */
#define KVM_CHECK_EXTENSION       _IO(KVMIO,   0x03)
/*
 * Get size for mmap(vcpu_fd)
 */
#define KVM_GET_VCPU_MMAP_SIZE    _IO(KVMIO,   0x04) /* in bytes */

/*
 * ioctls for VM fds