summaryrefslogtreecommitdiff
path: root/debian/patches/try-fence0002-kern-fix-loop-reading-the-time-value.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/try-fence0002-kern-fix-loop-reading-the-time-value.patch')
-rw-r--r--debian/patches/try-fence0002-kern-fix-loop-reading-the-time-value.patch49
1 files changed, 0 insertions, 49 deletions
diff --git a/debian/patches/try-fence0002-kern-fix-loop-reading-the-time-value.patch b/debian/patches/try-fence0002-kern-fix-loop-reading-the-time-value.patch
deleted file mode 100644
index 4305819..0000000
--- a/debian/patches/try-fence0002-kern-fix-loop-reading-the-time-value.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5b02c9e8a6f5e41ed4da7f79ddee60a0d0941201 Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Mon, 7 Sep 2015 14:37:40 +0200
-Subject: [PATCH gnumach 2/2] kern: fix loop reading the time value
-
-Previously, recent versions of gcc would hoist the loads out of the
-loop reading the time value.
-
-* kern/macros.h (access_once): New macro.
-* kern/mach_clock.c (host_get_time): Use the new macro to prevent the
-loads from being hoisted out of the loop.
----
- kern/mach_clock.c | 6 +++---
- kern/macros.h | 2 ++
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/kern/mach_clock.c b/kern/mach_clock.c
-index aab7010..0757f6c 100644
---- a/kern/mach_clock.c
-+++ b/kern/mach_clock.c
-@@ -428,9 +428,9 @@ host_get_time(host, current_time)
- return(KERN_INVALID_HOST);
-
- do {
-- current_time->seconds = mtime->seconds;
-- current_time->microseconds = mtime->microseconds;
-- } while (current_time->seconds != mtime->check_seconds);
-+ current_time->seconds = access_once(mtime->seconds);
-+ current_time->microseconds = access_once(mtime->microseconds);
-+ } while (current_time->seconds != access_once(mtime->check_seconds));
-
- return (KERN_SUCCESS);
- }
-diff --git a/kern/macros.h b/kern/macros.h
-index 7cc579d..c2e8545 100644
---- a/kern/macros.h
-+++ b/kern/macros.h
-@@ -52,6 +52,8 @@
- #define structof(ptr, type, member) \
- ((type *)((char *)(ptr) - offsetof(type, member)))
-
-+#define access_once(x) (*(volatile typeof(x) *)&(x))
-+
- #define alignof(x) __alignof__(x)
-
- #ifndef likely
---
-2.1.4
-