1 diff -Naur ./vmci-only/Makefile.org ./vmci-only/Makefile
2 --- ./vmci-only/Makefile.org 2009-06-16 14:05:27.466108603 +0200
3 +++ ./vmci-only/Makefile 2009-06-16 14:06:46.661080248 +0200
6 vm_check_build = $(shell if $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
7 $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \
8 - $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \
9 + $(EXTRA_CFLAGS) -I$(HEADER_DIR) -Iinclude2/asm/mach-default \
10 -DKBUILD_BASENAME=\"$(DRIVER)\" \
11 -Werror -S -o /dev/null -xc $(1) \
12 > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)
13 diff -Naur ./vmmon-only/linux/driver.c.org ./vmmon-only/linux/driver.c
14 --- ./vmmon-only/linux/driver.c.org 2009-06-16 14:00:30.039078851 +0200
15 +++ ./vmmon-only/linux/driver.c 2009-06-16 14:09:41.715105671 +0200
16 @@ -1984,10 +1984,17 @@
19 case IOCTL_VMX86_ALLOW_CORE_DUMP:
20 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
21 if (current->euid == current->uid &&
22 current->fsuid == current->uid &&
23 current->egid == current->gid &&
24 current->fsgid == current->gid) {
26 + if (current_euid() == current_uid() &&
27 + current_fsuid() == current_uid() &&
28 + current_egid() == current_gid() &&
29 + current_fsgid() == current_gid()) {
31 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) || defined(MMF_DUMPABLE)
32 /* Dump core, readable by user. */
33 set_bit(MMF_DUMPABLE, ¤t->mm->flags);
34 diff -Naur ./vmmon-only/linux/hostif.c.org ./vmmon-only/linux/hostif.c
35 --- ./vmmon-only/linux/hostif.c.org 2009-06-16 14:00:44.806106788 +0200
36 +++ ./vmmon-only/linux/hostif.c 2009-06-16 14:18:30.693079131 +0200
37 @@ -3422,6 +3422,86 @@
41 +/* krellan: Linux 2.6.29 compatibility functions for capabilities */
42 +/* Errors are logged but otherwise ignored */
44 +void compat_cap_raise(int cap)
46 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
47 + cap_raise(current->cap_effective, cap);
49 + struct cred *new_cred;
51 + new_cred = prepare_creds();
52 + if (new_cred != NULL)
54 + cap_raise(new_cred->cap_effective, cap);
55 + commit_creds(new_cred);
59 + Log("compat_cap_raise(%d) prepare_creds(): Out of memory\n", cap);
64 +void compat_cap_lower(int cap)
66 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
67 + cap_lower(current->cap_effective, cap);
69 + struct cred *new_cred;
71 + new_cred = prepare_creds();
72 + if (new_cred != NULL)
74 + cap_lower(new_cred->cap_effective, cap);
75 + commit_creds(new_cred);
79 + Log("compat_cap_lower(%d) prepare_creds(): Out of memory\n", cap);
84 +int compat_cap_raised(int cap)
86 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
87 + return cap_raised(current->cap_effective, cap);
89 + return cap_raised(current_cap(), cap);
93 +int compat_get_fsuid(void)
95 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
96 + return current->fsuid;
98 + return current_fsuid();
102 +void compat_set_fsuid(int fsuid)
104 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
105 + current->fsuid = fsuid;
107 + struct cred *new_cred;
109 + new_cred = prepare_creds();
110 + if (new_cred != NULL)
112 + new_cred->fsuid = fsuid;
113 + commit_creds(new_cred);
117 + Log("compat_set_fsuid(%d) prepare_creds(): Out of memory\n", fsuid);
124 @@ -3456,7 +3536,7 @@
127 compat_allow_signal(SIGKILL);
128 - cap_raise(current->cap_effective, CAP_SYS_RESOURCE);
129 + compat_cap_raise(CAP_SYS_RESOURCE);
130 compat_set_user_nice(current, linuxState.fastClockPriority);
132 while (linuxState.fastClockRate > HZ + HZ/16) {
133 @@ -3580,19 +3660,19 @@
137 - fsuid = current->fsuid;
138 - current->fsuid = 0;
139 + fsuid = compat_get_fsuid();
140 + compat_set_fsuid(0);
141 filp = filp_open("/dev/rtc", O_RDONLY, 0);
142 - current->fsuid = fsuid;
143 + compat_set_fsuid(fsuid);
145 Warning("/dev/rtc open failed: %d\n", (int)(VA)filp);
146 return -(int)(VA)filp;
148 - cap = cap_raised(current->cap_effective, CAP_SYS_RESOURCE);
149 - cap_raise(current->cap_effective, CAP_SYS_RESOURCE);
150 + cap = compat_cap_raised(CAP_SYS_RESOURCE);
151 + compat_cap_raise(CAP_SYS_RESOURCE);
152 res = HostIFDoIoctl(filp, RTC_PIE_ON, 0);
154 - cap_lower(current->cap_effective, CAP_SYS_RESOURCE);
155 + compat_cap_lower(CAP_SYS_RESOURCE);
158 Warning("/dev/rtc enable interrupt failed: %d\n", res);
159 diff -Naur ./vmmon-only/include/x86svm.h.org ./vmmon-only/include/x86svm.h
160 --- ./vmmon-only/include/x86svm.h.org 2009-06-16 14:00:11.623087791 +0200
161 +++ ./vmmon-only/include/x86svm.h 2009-06-16 14:04:32.344079689 +0200
165 /* SVM related MSRs */
166 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30)
167 #define MSR_VM_CR 0xC0010114
169 #define MSR_IGNNE 0xC0010115
170 #define MSR_SMM_CTL 0xC0010116
171 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 30)
172 #define MSR_VM_HSAVE_PA 0xC0010117
175 #define MSR_VM_CR_SVM_LOCK 0x0000000000000008ULL
176 #define MSR_VM_CR_SVME_DISABLE 0x0000000000000010ULL
178 diff -Naur ./vmmon-only/Makefile.org ./vmmon-only/Makefile
179 --- ./vmmon-only/Makefile.org 2009-06-16 14:00:54.300080038 +0200
180 +++ ./vmmon-only/Makefile 2009-06-16 14:19:28.907079550 +0200
183 vm_check_build = $(shell if $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
184 $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \
185 - $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \
186 + $(EXTRA_CFLAGS) -I$(HEADER_DIR) -Iinclude2/asm/mach-default \
187 -DKBUILD_BASENAME=\"$(DRIVER)\" \
188 -Werror -S -o /dev/null -xc $(1) \
189 > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)
190 diff -Naur ./vmnet-only/Makefile.org ./vmnet-only/Makefile
191 --- ./vmnet-only/Makefile.org 2009-06-16 14:20:46.281079270 +0200
192 +++ ./vmnet-only/Makefile 2009-06-16 14:21:26.569080038 +0200
195 vm_check_build = $(shell if $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
196 $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \
197 - $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \
198 + $(EXTRA_CFLAGS) -I$(HEADER_DIR) -Iinclude2/asm/mach-default \
199 -DKBUILD_BASENAME=\"$(DRIVER)\" \
200 -Werror -S -o /dev/null -xc $(1) \
201 > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)
202 diff -Naur ./vmnet-only/netif.c.org ./vmnet-only/netif.c
203 --- ./vmnet-only/netif.c.org 2009-06-16 14:21:54.638079619 +0200
204 +++ ./vmnet-only/netif.c 2009-06-16 14:26:07.010079969 +0200
209 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
212 + dev->ml_priv = netIf;
216 memcpy(dev->dev_addr, netIf->port.paddr, sizeof netIf->port.paddr);
218 VNetNetifStartXmit(struct sk_buff *skb, // IN:
219 struct net_device *dev) // IN:
221 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
222 VNetNetIF *netIf = (VNetNetIF*)dev->priv;
224 + VNetNetIF *netIf = (VNetNetIF*)dev->ml_priv;
230 VNetNetifSetMAC(struct net_device *dev, // IN:
233 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
234 VNetNetIF *netIf = (VNetNetIF*)dev->priv;
236 + VNetNetIF *netIf = (VNetNetIF*)dev->ml_priv;
238 struct sockaddr const *addr = p;
239 if (!VMX86_IS_STATIC_MAC(addr->sa_data)) {
242 struct net_device_stats *
243 VNetNetifGetStats(struct net_device *dev) // IN:
245 +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
246 VNetNetIF *netIf = (VNetNetIF*)dev->priv;
248 + VNetNetIF *netIf = (VNetNetIF*)dev->ml_priv;
250 return &(netIf->stats);
253 diff -Naur ./vsock-only/Makefile.org ./vsock-only/Makefile
254 --- ./vsock-only/Makefile.org 2009-06-16 14:26:28.696079689 +0200
255 +++ ./vsock-only/Makefile 2009-06-16 14:27:11.486078991 +0200
258 vm_check_build = $(shell if $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
259 $(CPPFLAGS) $(CFLAGS) $(CFLAGS_KERNEL) \
260 - $(EXTRA_CFLAGS) -Iinclude2/asm/mach-default \
261 + $(EXTRA_CFLAGS) -I$(HEADER_DIR) -Iinclude2/asm/mach-default \
262 -DKBUILD_BASENAME=\"$(DRIVER)\" \
263 -Werror -S -o /dev/null -xc $(1) \
264 > /dev/null 2>&1; then echo "$(2)"; else echo "$(3)"; fi)