1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
--- a/vmnet/Makefile
+++ b/vmnet/Makefile
@@ -43,7 +43,11 @@
endif
+ifdef KVERSION
+VM_UNAME = $(KVERSION)
+else
VM_UNAME = $(shell uname -r)
+endif
# Header directory for the running kernel
ifdef LINUXINCLUDE
@@ -137,7 +141,6 @@
endif
# Add Spectre options when available
-CC_OPTS += $(call vm_check_gcc,-mindirect-branch=thunk -mindirect-branch-register,)
include $(SRCROOT)/Makefile.kernel
--- a/vmnet/userif.c
+++ b/vmnet/userif.c
@@ -559,7 +559,12 @@
return -EINVAL;
}
+#if COMPAT_LINUX_VERSION_CHECK_LT(5, 10, 0)
csum = csum_and_copy_to_user(skb->data + offset, curr, len, 0, &err);
+#else
+ csum = csum_and_copy_to_user(skb->data + offset, curr, len);
+ err = (csum == 0) ? -EFAULT : 0;
+#endif
if (err) {
return err;
}
@@ -573,8 +578,14 @@
const void *vaddr;
vaddr = kmap(skb_frag_page(frag));
+#if COMPAT_LINUX_VERSION_CHECK_LT(5, 10, 0)
tmpCsum = csum_and_copy_to_user(vaddr + skb_frag_off(frag),
curr, skb_frag_size(frag), 0, &err);
+#else
+ tmpCsum = csum_and_copy_to_user(vaddr + skb_frag_off(frag),
+ curr, skb_frag_size(frag));
+ err = (tmpCsum == 0) ? -EFAULT : 0;
+#endif
kunmap(skb_frag_page(frag));
if (err) {
|