Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 214719
Collapse All | Expand All

(-)file_not_specified_in_diff (-103 / +272 lines)
Line  Link Here
0
-- data/drivers/drv_main/compat/compat_memory.h
0
++ data/drivers/drv_main/compat/compat_memory.h
Line 124 Link Here
124
-- data/drivers/drv_main/Makefile
124
/* change kmem_cache_t to kmem_cache */
125
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 22)
126
# define kmem_cache_compat struct kmem_cache
127
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
128
#  define compat_kmem_cache_create(a, b, c, d, e, f) (kmem_cache_create(a, b, c, d, e))
129
# else
130
#  define compat_kmem_cache_create(a, b, c, d, e, f) (kmem_cache_create(a, b, c, d, e, f))
131
# endif
132
#else
133
# define kmem_cache_compat kmem_cache_t
134
# define compat_kmem_cache_create(a, b, c, d, e, f) (kmem_cache_create(a, b, c, d, e, f))
135
#endif
136
137
++ data/drivers/drv_main/Makefile
Line 2 Link Here
2
KSRC=/lib/modules/$(shell uname -r)/build
2
KSRC ?= /lib/modules/$(shell uname -r)/build
3
--
4
-- data/drivers/drv_main/mm/manager.c
3
++ data/drivers/drv_main/mm/manager.c
Line 23 Link Here
23
#include <linux/sched.h>
Line 268 Link Here
268
    vmGlobal.vmPmms.pmmRegionsSlab = kmem_cache_create("vmRegions", sizeof(struct pmm_region_t), 0,
269
    vmGlobal.vmPmms.pmmRegionsSlab = compat_kmem_cache_create("vmRegions", sizeof(struct pmm_region_t), 0,
269
--
270
-- data/drivers/drv_main/mm/pages.c
270
++ data/drivers/drv_main/mm/pages.c
Line 21 Link Here
21
-- data/drivers/drv_main/vmmain.h
21
#include <linux/sched.h>
22
++ data/drivers/drv_main/vmmain.h
Line 24 Link Here
24
#include "compat/compat_memory.h"
Line 196 Link Here
196
        kmem_cache_t *pmmRegionsSlab;
197
        kmem_cache_compat *pmmRegionsSlab;
197
--
198
-- data/drivers/drv_net/linux/prlnet.c
198
++ data/drivers/drv_net/linux/prlnet.c
Line 18 Link Here
18
#include <linux/mm.h>
Line 34 Link Here
35
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
36
#include <net/ip.h>
37
#endif
38
Line 726 Link Here
731
732
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
733
	skb_reset_mac_header(skb);
734
	skb_set_network_header(skb, sizeof(skb->mac_header));
735
#else
Line 728 Link Here
738
#endif
Line 784 Link Here
795
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
796
		eth = (eth_header_t *)skb_mac_header(skbout);	
797
#else
Line 785 Link Here
799
#endif
Line 875 Link Here
875
prlnet_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt)
890
prlnet_recv(
876
--
891
	struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
892
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
893
	, struct net_device *origdev
894
#endif
895
	)
Line 884 Link Here
884
			&& skb->ip_summed == CHECKSUM_HW;
904
			&& skb->ip_summed ==
885
--
905
#ifdef CHECKSUM_HW
906
				CHECKSUM_HW;
907
#else
908
				CHECKSUM_PARTIAL;
909
#endif
Line 888 Link Here
913
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
914
			int len = skb->data - skb_mac_header(skb) + skb->len;
915
#else
Line 889 Link Here
917
#endif
Line 892 Link Here
921
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
922
					// can't use skb_copy_and_csum_dev(skb, buf + 2) here
923
					// because skb->h == skb->nh. opensource rules!
924
					int hoff = sizeof(struct ethhdr) + ip_hdrlen(skb);
925
					// IP header checksum is done by the kernel
926
					skb_copy_bits(skb,
927
						skb_mac_header(skb) - skb->data, buf + 2, hoff);
928
929
					// skb->csum is an offset from true skb->h.raw
930
					*(unsigned short *)(buf + 2 + hoff + skb->csum) =
931
						csum_fold(
932
							// kernel does conceptual header too
933
							skb_copy_and_csum_bits(skb,
934
								skb_mac_header(skb) + hoff - skb->data,
935
								buf + 2 + hoff, len - hoff, 0));
936
#else
Line 898 Link Here
943
Line 905 Link Here
951
#endif
Line 907 Link Here
954
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
955
					skb_copy_bits(skb,
956
						skb_mac_header(skb) - skb->data, buf + 2, len);
957
#else
Line 909 Link Here
960
#endif
Line 911 Link Here
963
				kfree(buf);
Line 912 Link Here
912
			kfree(buf);
Line 923 Link Here
975
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
976
			hw_recv(hw, skb_mac_header(skb), skb->data - skb_mac_header(skb) + skb->len);
977
#else
Line 924 Link Here
979
#endif
Line 1011 Link Here
1067
#if WIRELESS_EXT < 19
Line 1013 Link Here
1013
-- data/drivers/drv_virtualnic/vmvirtualnic.c
1070
#endif
1071
++ data/drivers/drv_virtualnic/vmvirtualnic.c
Line 72 Link Here
72
MODULE_DESCRIPTION("Transparen ethernet bridge");
72
MODULE_DESCRIPTION("Virtual ethernet card");
73
--
Lines 75-77 Link Here
75
// Version
76
//static const char *version = "VMVirtualNIC.c:v1.01 VirtualNIC driver from Parallels Inc. http://www.parallelssoft.com/";
77
Line 79 Link Here
79
struct net_device* dev;
76
struct net_device* devs[5];
80
--
Line 99 Link Here
99
Line 101 Link Here
101
};
97
}
102
--
Line 121 Link Here
121
 
Line 123 Link Here
123
};
118
}
124
--
Line 202 Link Here
197
int maxdev = 1;
198
#if defined(module_param)
199
  module_param(maxdev, int, 0);
200
#elif defined(MODULE_PARM)
201
  MODULE_PARM(maxdev, "i");
202
#endif
203
Lines 217-222 Link Here
217
        // MAC address is hardwired to that value as in windows version
219
    // MAC address is hardwired to that value as in windows version
218
        unsigned char station_addr[6] = { 0x00, 0x01, 0x23, 0x45, 0xBE, 0xEF };
220
	static const unsigned char station_addr[5][6] = {
219
#if 0
221
		{ 0x00, 0x01, 0x23, 0x45, 0xBE, 0xEF },
220
    hypervisorPresentInSystem(); /* fake call to hypervisor -- ms */
222
		{ 0x00, 0x01, 0x23, 0x45, 0xCA, 0xFE },
221
#endif
223
		{ 0x00, 0x01, 0x23, 0x45, 0xDA, 0xCE },
222
224
		{ 0x00, 0x01, 0x23, 0x45, 0xEC, 0xAE },
223
--
225
		{ 0x00, 0x01, 0x23, 0x45, 0xFA, 0xDE }
226
	};
227
	int i;
228
229
	if (maxdev < 0)
230
		maxdev = 1;
231
	if (maxdev > 5)
232
		maxdev = 5;
233
	for (i = 0; i < maxdev; ++i) {
Line 224 Link Here
224
        dev = alloc_etherdev(sizeof(struct net_device_stats));
235
		devs[i] = alloc_etherdev(sizeof(struct net_device_stats));
225
--
Lines 226-229 Link Here
226
	dev = init_etherdev(0, 0);
237
		devs[i] = init_etherdev(0, 0);
227
	// May be it needed ?
238
		ether_setup(devs[i]);
228
	ether_setup(dev);
239
		devs[i]->priv = kmalloc(sizeof(struct net_device_stats), GFP_KERNEL);
229
	dev->priv = kmalloc(sizeof(struct net_device_stats), GFP_KERNEL);
230
--
Lines 232-242 Link Here
232
	dev_alloc_name(dev, "vnic%d");
242
		dev_alloc_name(devs[i], "vnic%d");
233
	// Set MAC address
243
		// Set MAC address
234
	memcpy(dev->dev_addr, station_addr, ETH_ALEN);
244
		memcpy(devs[i]->dev_addr, station_addr[i], ETH_ALEN);
235
	memset(dev->priv, 0, sizeof(struct net_device_stats));
245
		memset(devs[i]->priv, 0, sizeof(struct net_device_stats));
236
246
237
	// Set functions
247
		// Set functions
238
	dev->hard_start_xmit = &VNICXmit;
248
		devs[i]->hard_start_xmit = VNICXmit;
239
	dev->get_stats = &VNICGetStats;
249
		devs[i]->get_stats = VNICGetStats;
240
	dev->open = &VNICOpen;
250
		devs[i]->open = VNICOpen;
241
	dev->stop = &VNICClose;
251
		devs[i]->stop = VNICClose;
242
	dev->set_mac_address = &VNICSetMAC;
252
		devs[i]->set_mac_address = VNICSetMAC;
243
--
Line 244 Link Here
244
	SET_MODULE_OWNER(dev);
254
		SET_MODULE_OWNER(devs[i]);
245
--
Line 248 Link Here
248
	register_netdev(dev);
258
		register_netdev(devs[i]);
249
--
Lines 250-252 Link Here
250
260
	}
251
	return(0);
261
	return 0;
252
};
262
}
253
--
Line 269 Link Here
279
	int i;
Lines 270-272 Link Here
270
        if (dev)
281
	for (i = 0; i < 5; ++i) {
271
	{
282
		if (devs[i]) {
272
	   ndstat = dev->priv;
283
			ndstat = devs[i]->priv;
273
--
Line 274 Link Here
274
           unregister_netdev(dev);
285
			unregister_netdev(devs[i]);
275
--
Line 276 Link Here
276
	   free_netdev(dev);
287
			free_netdev(devs[i]);
277
--
Lines 278-280 Link Here
278
	   kfree(ndstat);
289
	   		kfree(ndstat);
279
	   dev->priv = NULL;
290
			devs[i]->priv = NULL;
280
	   kfree(dev);
291
			kfree(devs[i]);
281
--
Line 282 Link Here
282
-- data/drivers/hypervisor/hypercall.h
293
			devs[i] = NULL;
294
		}
295
++ data/drivers/hypervisor/hypercall.h
Lines 19-20 Link Here
19
#ifndef __HYPERCALL_H__
19
20
#define __HYPERCALL_H__
20
21
--
21
#ifndef __PRL_HYPERCALL_H__
22
#define __PRL_HYPERCALL_H__
Lines 115-116 Link Here
115
117
#endif /* __PRL_HYPERCALL_H__ */
116
#endif /* __HYPERCALL_H__ */
117
--
118
-- data/drivers/hypervisor/hypervisor.h
118
++ data/drivers/hypervisor/hypervisor.h
Lines 19-20 Link Here
19
#ifndef __HYPERVISOR_H__
19
#ifndef __PRL_HYPERVISOR_H__
20
#define __HYPERVISOR_H__
20
#define __PRL_HYPERVISOR_H__
21
--
Line 34 Link Here
34
# include "compat_memory.h"
Line 130 Link Here
130
    kmem_cache_t *vmStateCache;
131
    kmem_cache_compat *vmStateCache;
131
--
Line 177 Link Here
177
#endif /* __HYPERVISOR_H__ */
178
#endif /* __PRL_HYPERVISOR_H__ */
178
--
179
-- data/drivers/hypervisor/hypvmstate.c
179
++ data/drivers/hypervisor/hypvmstate.c
Line 25 Link Here
25
#include "compat_memory.h"
Line 169 Link Here
169
    if (!(hypState.vmStateCache = kmem_cache_create(VMSTATE_SLABNAME, sizeof(struct hyp_vmstate_t), 0,
170
    if (!(hypState.vmStateCache = compat_kmem_cache_create(VMSTATE_SLABNAME, sizeof(struct hyp_vmstate_t), 0,
170
--
171
-- data/drivers/hypervisor/svm_init.h
171
++ data/drivers/hypervisor/svm_init.h
Line 35 Link Here
35
/// Definitions of AMD CPUID function to get SVM revision and feature identification
36
#define CPUID_SVM_REV 0x8000000a
37
38
Line 38 Link Here
42
/// Definition of bit SVM_LOCK in edx after CPUID_SVM_REV fn
43
#define SVM_LOCK (1 << 2)
44
45
/// Definition of bit SVM Disabled in VM_CR SMR
46
#define VM_CR_SVMDIS (1 << 4)
47
48
Line 46 Link Here
57
/// Definition of address of VM_CR SMR
58
#define SMR_VM_CR 0xc0010114
59
60
61
62
/**
63
 * Check CPU provider.
64
 */
65
static __inline__ int is_amd()
66
{    
67
	unsigned int _ebx, _ecx, _edx;
68
69
	__asm__ __volatile__(
70
		"cpuid	\n\t"
71
		: /* out */ "=b" (_ebx), "=c" (_ecx), "=d" (_edx)
72
		: /* in  */ "a" (0)
73
		: /* clo */ "memory" 
74
		);
75
76
	// "AuthenticAMD"
77
	if ((_ebx == 0x68747541) &&
78
	(_ecx == 0x444D4163) &&
79
	(_edx == 0x69746E65))
80
		return 1;
81
82
	return 0;
83
}
Lines 66-67 Link Here
66
    /* Check SVM bit in CPUID extended features */    
104
	// Don't initialize this variables !!!
67
    return cpuid_ecx(CPUID_PROCESSOR_SIGNATURE) & CPUID_SVM;
105
	// because gcc on OSx remove all checks with this variables
68
--
106
	// and we can get wrmsr on locked msr register (which cause GP#) -- ms
107
	unsigned long msr_edx, msr_eax;
108
	unsigned int cpuid_1_ecx;
109
	unsigned int cpuid_2_edx;
110
111
112
	if (!is_amd())
113
		return 0;
114
115
	msr_edx = 0;
116
	msr_eax = 0;
117
	
118
	// Check SVM bit in CPUID extended features
119
	cpuid_1_ecx = cpuid_ecx(CPUID_PROCESSOR_SIGNATURE);
120
121
	cpuid_2_edx = 0;
122
123
	// Check SVM bit in CPUID feature indentifiers
124
	if ((cpuid_1_ecx & CPUID_SVM) == 0)
125
		return 0; // SVM not available
126
    
127
128
	// Get VM_CR MSR value
129
	rdmsr(SMR_VM_CR, msr_eax, msr_edx);
130
	
131
	if((msr_eax & VM_CR_SVMDIS) == 0)
132
	{
133
		// set EFER.SVME
134
		rdmsr(MSR_IA32_EFER, msr_eax, msr_edx);
135
		wrmsr(MSR_IA32_EFER, msr_eax | EFER_SVME, msr_edx);
136
		return 1;	// SVM allowed
137
	}
138
139
	// CPUID SVM Revision and Feature Identification EDX
140
	cpuid_2_edx = cpuid_edx(CPUID_SVM_REV);
141
142
	if((cpuid_2_edx & SVM_LOCK) == 0)
143
	{
144
		return 0;	// SVM disabled at bios not unlockable
145
	}
146
147
	return 0;	// SVM disabled with key
Line 71 Link Here
71
-- data/drivers/hypervisor/vtx_init.h
151
152
++ data/drivers/hypervisor/vtx_init.h
Line 76 Link Here
76
/**
77
 * Check CPU provider.
78
 */
79
static __inline__ int is_intelPW22()
80
{    
81
	unsigned int _ebx, _ecx, _edx;
82
83
	__asm__ __volatile__(
84
		"cpuid	\n\t"
85
		: /* out */ "=b" (_ebx), "=c" (_ecx), "=d" (_edx)
86
		: /* in  */ "a" (0)
87
		: /* clo */ "memory" 
88
		);
89
90
	// "GenuineIntel"
91
	if ((_ebx == 0x756e6547) &&
92
	(_ecx == 0x6c65746e) &&
93
	(_edx == 0x49656e69))
94
		return 1;
95
96
	return 0;
97
}
Line 97 Link Here
97
-- data/drivers/Makefile
119
    if (!is_intelPW22())
120
         return 0;
121
122
++ data/drivers/Makefile
Line 1 Link Here
1
KSRC ?= /lib/modules/$(shell uname -r)/build
Line 5 Link Here
5
	cd drv_main/ && $(MAKE) && cd ..
6
	cd drv_main/ && $(MAKE) KSRC=${KSRC} && cd ..
6
--

Return to bug 214719