58 lines
2.1 KiB
Diff
58 lines
2.1 KiB
Diff
From 2af9d566d0ccc78a93b46a79d23902e5ba2bc933 Mon Sep 17 00:00:00 2001
|
|
From: Michal Kubecek <mkubecek@suse.cz>
|
|
Date: Sat, 9 Mar 2019 11:11:29 +0100
|
|
Subject: [PATCH 3/3] vmmon: fix return type of vm_operations_struct::fault
|
|
handler
|
|
|
|
Commit 3d3539018d2c ("mm: create the new vm_fault_t type") in mainline
|
|
5.1-rc1 changed the definition of vm_fault_t type to unsigned to catch
|
|
vm_operations_struct::fault handlers which still have int as return value.
|
|
LinuxDriverFault() in vmmon module is one of those.
|
|
|
|
As handler return type was changed by commit 1c8f422059ae ("mm: change
|
|
return type to vm_fault_t") in 4.17-rc1, make LinuxDriverFault() always
|
|
return vm_fault_t and define vm_fault_t as int when building against
|
|
a pre-4.17 kernel.
|
|
---
|
|
vmmon-only/linux/driver.c | 9 ++++++---
|
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
|
|
index 92a3529..248a95d 100644
|
|
--- a/vmmon-only/linux/driver.c
|
|
+++ b/vmmon-only/linux/driver.c
|
|
@@ -73,6 +73,9 @@ static Bool LinuxDriverCheckPadding(void);
|
|
|
|
struct VMXLinuxState linuxState;
|
|
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 17, 0)
|
|
+typedef int vm_fault_t;
|
|
+#endif
|
|
|
|
/*
|
|
*----------------------------------------------------------------------
|
|
@@ -97,9 +100,9 @@ long LinuxDriver_Ioctl(struct file *filp, u_int iocmd,
|
|
|
|
static int LinuxDriver_Close(struct inode *inode, struct file *filp);
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
|
-static int LinuxDriverFault(struct vm_fault *fault);
|
|
+static vm_fault_t LinuxDriverFault(struct vm_fault *fault);
|
|
#else
|
|
-static int LinuxDriverFault(struct vm_area_struct *vma, struct vm_fault *fault);
|
|
+static vm_fault_t LinuxDriverFault(struct vm_area_struct *vma, struct vm_fault *fault);
|
|
#endif
|
|
static int LinuxDriverMmap(struct file *filp, struct vm_area_struct *vma);
|
|
|
|
@@ -595,7 +598,7 @@ LinuxDriver_Close(struct inode *inode, // IN
|
|
*-----------------------------------------------------------------------------
|
|
*/
|
|
|
|
-static int
|
|
+static vm_fault_t
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
|
|
LinuxDriverFault(struct vm_fault *fault) //IN/OUT
|
|
#else
|
|
--
|
|
2.21.0
|
|
|