summarylogtreecommitdiffstats
path: root/002-rdtscl.patch
blob: 1b9862cc3d8dbf97f9cec51de87af7fec2a10118 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Since Linux 4.3, rdtscl() is no longer available and native_read_tsc()
is renamed to rdtsc(). Move the macro contents in-line and call the
new function. References:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=fe47ae6e1a5005b2e82f7eab57b5c3820453293a
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=4ea1636b04dbd66536fa387bae2eea463efc705b

diff -ru a/src/shared/linux_osl.c b/src/shared/linux_osl.c
--- a/src/shared/linux_osl.c	2015-09-19 01:47:15.000000000 +0300
+++ b/src/shared/linux_osl.c	2015-11-21 15:20:30.585902518 +0200
@@ -932,7 +932,11 @@
 	uint cycles;
 
 #if defined(__i386__)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
+	cycles = (u32)rdtsc();
+#else
 	rdtscl(cycles);
+#endif
 #else
 	cycles = 0;
 #endif