This patch adds prctl commands that make it possible
to deny the execution of timestamp counters in userspace.
If this is not implemented on a specific architecture,
prctl will return -EINVAL.
Signed-off-by: Erik Bosman <ejbosman@cs.vu.nl>
---
include/linux/prctl.h | 6 ++++++
kernel/sys.c | 13 ++++++++++++-
2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/include/linux/prctl.h b/include/linux/prctl.h
index 3800639..5c80b19 100644
--- a/include/linux/prctl.h
+++ b/include/linux/prctl.h
@@ -67,4 +67,10 @@
#define PR_CAPBSET_READ 23
#define PR_CAPBSET_DROP 24
+/* Get/set the process' ability to use the timestamp counter instruction */
+#define PR_GET_TSC 25
+#define PR_SET_TSC 26
+# define PR_TSC_ENABLE 1 /* allow the use of the timestamp counter */
+# define PR_TSC_SIGSEGV 2 /* throw a SIGSEGV instead of reading the TSC */
+
#endif /* _LINUX_PRCTL_H */
diff --git a/kernel/sys.c b/kernel/sys.c
index a626116..6a0cc71 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -67,6 +67,12 @@
#ifndef SET_ENDIAN
# define SET_ENDIAN(a,b) (-EINVAL)
#endif
+#ifndef GET_TSC_CTL
+# define GET_TSC_CTL(a) (-EINVAL)
+#endif
+#ifndef SET_TSC_CTL
+# define SET_TSC_CTL(a) (-EINVAL)
+#endif
/*
* this is where the system-wide overflow UID and GID are defined, for
@@ -1737,7 +1743,12 @@ asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
#else
return -EINVAL;
#endif
-
+ case PR_GET_TSC:
+ error = GET_TSC_CTL(arg2);
+ break;
+ case PR_SET_TSC:
+ error = SET_TSC_CTL(arg2);
+ break;
default:
error = -EINVAL;
break;
--
| Ryan Hope | reiser4 for 2.6.27-rc1 |
| Tim Tassonis | reiser4 for 2.6.27-rc1 |
| Rafael J. Wysocki | 2.6.26-rc9-git12: Reported regressions from 2.6.25 |
| hooanon05 | [PATCH 63/67] aufs mount helper |
git: | |
| Petko Manolov | git and binary files |
| Wink Saville | Resolving conflicts |
| Ken Pratt | pack operation is thrashing my server |
| Jeff King | Re: Use of tac in git-rebase--interactive |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Julien TOUCHE | setting up ssh tunnel/vpn |
| Ray Percival | Re: Real men don't attack straw men |
| Michael | Performance: OpenVPN vs IPsec |
| Pietro Cerutti | Re: [patch] enhance powerd(8) to handle max temperature |
| Søren Schmidt | Re: Patch RFC: Promise SATA300 TX4 hardware bug workaround. |
| Kris Kennaway | Re: Problems with FreeBSD 6.0 |
| Ceri Davies | Using any network interface whatsoever |
