summaryrefslogtreecommitdiff
path: root/debian/patches/upstreamme0008-vm-object-use-a-general-lock-to-protect-the-object-c.patch
blob: 3ff7e24d1b80df262855e5581e40c97e880f792d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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