summaryrefslogtreecommitdiff
path: root/debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch')
-rw-r--r--debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch b/debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch
new file mode 100644
index 0000000..3ff7e24
--- /dev/null
+++ b/debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch
@@ -0,0 +1,48 @@
+From 95062009c1d55ecefa976c81e9cee941eae600fe Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sat, 25 Jul 2015 02:21:33 +0200
+Subject: [PATCH gnumach 08/10] vm/object: use a general lock to protect the
+ object cache
+
+* vm/vm_object.c: Use a general lock to protect the object cache.
+---
+ vm/vm_object.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/vm/vm_object.c b/vm/vm_object.c
+index deac0c2..b403d30 100644
+--- a/vm/vm_object.c
++++ b/vm/vm_object.c
+@@ -178,14 +178,16 @@ queue_head_t vm_object_cached_list;
+ int vm_object_cached_count;
+ int vm_object_cached_max = 4000; /* may be patched*/
+
+-decl_simple_lock_data(,vm_object_cached_lock_data)
++struct lock vm_object_cache_lock_data;
+
++#define vm_object_cache_lock_init() \
++ lock_init(&vm_object_cache_lock_data, FALSE)
+ #define vm_object_cache_lock() \
+- simple_lock(&vm_object_cached_lock_data)
++ lock_write(&vm_object_cache_lock_data)
+ #define vm_object_cache_lock_try() \
+- simple_lock_try(&vm_object_cached_lock_data)
++ lock_try_write(&vm_object_cache_lock_data)
+ #define vm_object_cache_unlock() \
+- simple_unlock(&vm_object_cached_lock_data)
++ lock_write_done(&vm_object_cache_lock_data)
+
+ /*
+ * Number of physical pages referenced by cached objects.
+@@ -261,7 +263,7 @@ void vm_object_bootstrap(void)
+ sizeof(struct vm_object), 0, NULL, NULL, NULL, 0);
+
+ queue_init(&vm_object_cached_list);
+- simple_lock_init(&vm_object_cached_lock_data);
++ vm_object_cache_lock_init();
+
+ /*
+ * Fill in a template object, for quick initialization
+--
+2.1.4
+