diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-03-18 16:49:29 +0100 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-03-18 16:49:29 +0100 |
commit | 6f015b01235c0f779a6961b1fbeb1cf514fe0b45 (patch) | |
tree | 349d744645ffa20bdcb6b8fb6b712e4edc104be1 | |
parent | 22d88c8e2fca6939ceeee8b6e0f0f496ca466eb1 (diff) |
fix fix-receiver-lookups.patch, enable mach-defpager-protected-payload.patch
-rw-r--r-- | debian/patches/fix-receiver-lookups.patch | 82 | ||||
-rw-r--r-- | debian/patches/series | 2 |
2 files changed, 60 insertions, 24 deletions
diff --git a/debian/patches/fix-receiver-lookups.patch b/debian/patches/fix-receiver-lookups.patch index 042c2649..2fe57a6c 100644 --- a/debian/patches/fix-receiver-lookups.patch +++ b/debian/patches/fix-receiver-lookups.patch @@ -38,7 +38,7 @@ index e38a0be..09debed 100644 -MIGSFLAGS = -DSEQNOS +MIGSFLAGS = -DSEQNOS -imacros $(srcdir)/mig-mutate.h diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c -index 8f8e13e..77caa4a 100644 +index 8f8e13e..f514ea6 100644 --- a/mach-defpager/default_pager.c +++ b/mach-defpager/default_pager.c @@ -38,14 +38,17 @@ @@ -375,16 +375,31 @@ index 8f8e13e..77caa4a 100644 if (ds == DEFAULT_PAGER_NULL) panic(here, my_name); pager_port_lock(ds, seqno); -@@ -2512,7 +2326,7 @@ seqnos_memory_object_terminate(pager, seqno, pager_request, pager_name) +@@ -2498,13 +2312,12 @@ seqnos_memory_object_init(pager, seqno, pager_request, pager_name, + } + + kern_return_t +-seqnos_memory_object_terminate(pager, seqno, pager_request, pager_name) +- mach_port_t pager; ++seqnos_memory_object_terminate(ds, seqno, pager_request, pager_name) ++ default_pager_t ds; + mach_port_seqno_t seqno; + mach_port_t pager_request; + mach_port_t pager_name; + { +- default_pager_t ds; + static char here[] = "%sterminate"; + + /* +@@ -2512,7 +2325,6 @@ seqnos_memory_object_terminate(pager, seqno, pager_request, pager_name) * not send rights. */ - ds = pager_port_lookup(pager); -+ ds = begin_using_default_pager(pager); if (ds == DEFAULT_PAGER_NULL) panic(here, my_name); ddprintf ("seqnos_memory_object_terminate <%p>: pager_port_lock: <%p>[s:%d,r:%d,w:%d,l:%d], %d\n", -@@ -2578,7 +2392,7 @@ void default_pager_no_senders(pager, seqno, mscount) +@@ -2578,7 +2390,7 @@ void default_pager_no_senders(pager, seqno, mscount) */ @@ -393,7 +408,7 @@ index 8f8e13e..77caa4a 100644 if (ds == DEFAULT_PAGER_NULL) panic(here,my_name); pager_port_lock(ds, seqno); -@@ -2639,16 +2453,15 @@ int default_pager_pageout_count = 0; +@@ -2639,16 +2451,15 @@ int default_pager_pageout_count = 0; static __thread default_pager_thread_t *dpt; kern_return_t @@ -412,7 +427,7 @@ index 8f8e13e..77caa4a 100644 vm_offset_t addr; unsigned int errors; kern_return_t rc; -@@ -2657,7 +2470,6 @@ seqnos_memory_object_data_request(pager, seqno, reply_to, offset, +@@ -2657,7 +2468,6 @@ seqnos_memory_object_data_request(pager, seqno, reply_to, offset, if (length != vm_page_size) panic(here,my_name); @@ -420,7 +435,7 @@ index 8f8e13e..77caa4a 100644 if (ds == DEFAULT_PAGER_NULL) panic(here,my_name); ddprintf ("seqnos_memory_object_data_request <%p>: pager_port_lock: <%p>[s:%d,r:%d,w:%d,l:%d], %d\n", -@@ -2742,9 +2554,9 @@ ddprintf ("seqnos_memory_object_data_request <%p>: pager_port_unlock: <%p>[s:%d, +@@ -2742,9 +2552,9 @@ ddprintf ("seqnos_memory_object_data_request <%p>: pager_port_unlock: <%p>[s:%d, * also assumes that the default_pager is single-threaded. */ kern_return_t @@ -432,7 +447,7 @@ index 8f8e13e..77caa4a 100644 mach_port_seqno_t seqno; mach_port_t pager_request; register -@@ -2754,14 +2566,12 @@ seqnos_memory_object_data_initialize(pager, seqno, pager_request, +@@ -2754,14 +2564,12 @@ seqnos_memory_object_data_initialize(pager, seqno, pager_request, vm_size_t data_cnt; { vm_offset_t amount_sent; @@ -447,7 +462,7 @@ index 8f8e13e..77caa4a 100644 if (ds == DEFAULT_PAGER_NULL) panic(here,my_name); ddprintf ("seqnos_memory_object_data_initialize <%p>: pager_port_lock: <%p>[s:%d,r:%d,w:%d,l:%d], %d\n", -@@ -2804,9 +2614,9 @@ ddprintf ("seqnos_memory_object_data_initialize <%p>: pager_port_unlock: <%p>[s: +@@ -2804,9 +2612,9 @@ ddprintf ("seqnos_memory_object_data_initialize <%p>: pager_port_unlock: <%p>[s: * into individual pages and pass them off to default_write. */ kern_return_t @@ -459,7 +474,7 @@ index 8f8e13e..77caa4a 100644 mach_port_seqno_t seqno; mach_port_t pager_request; register -@@ -2817,7 +2627,6 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, +@@ -2817,7 +2625,6 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, { register vm_size_t amount_sent; @@ -467,7 +482,7 @@ index 8f8e13e..77caa4a 100644 static char here[] = "%sdata_write"; int err; -@@ -2828,7 +2637,6 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, +@@ -2828,7 +2635,6 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, if ((data_cnt % vm_page_size) != 0) panic(here,my_name); @@ -475,7 +490,7 @@ index 8f8e13e..77caa4a 100644 if (ds == DEFAULT_PAGER_NULL) panic(here,my_name); -@@ -2888,7 +2696,7 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, +@@ -2888,7 +2694,7 @@ seqnos_memory_object_data_write(pager, seqno, pager_request, kern_return_t seqnos_memory_object_copy(old_memory_object, seqno, old_memory_control, offset, length, new_memory_object) @@ -484,7 +499,16 @@ index 8f8e13e..77caa4a 100644 mach_port_seqno_t seqno; memory_object_control_t old_memory_control; -@@ -2916,7 +2724,7 @@ seqnos_memory_object_lock_completed (memory_object_t pager, +@@ -2903,7 +2709,7 @@ seqnos_memory_object_copy(old_memory_object, seqno, old_memory_control, + /* We get this when our memory_object_lock_request has completed + after we truncated an object. */ + kern_return_t +-seqnos_memory_object_lock_completed (memory_object_t pager, ++seqnos_memory_object_lock_completed (default_pager_t ds, + mach_port_seqno_t seqno, + mach_port_t pager_request, + vm_offset_t offset, +@@ -2916,7 +2722,7 @@ seqnos_memory_object_lock_completed (memory_object_t pager, kern_return_t seqnos_memory_object_data_unlock(pager, seqno, pager_request, offset, length, protection_required) @@ -493,16 +517,20 @@ index 8f8e13e..77caa4a 100644 mach_port_seqno_t seqno; mach_port_t pager_request; vm_offset_t offset; -@@ -2931,7 +2739,7 @@ kern_return_t - seqnos_memory_object_supply_completed(pager, seqno, pager_request, +@@ -2928,10 +2734,10 @@ seqnos_memory_object_data_unlock(pager, seqno, pager_request, + } + + kern_return_t +-seqnos_memory_object_supply_completed(pager, seqno, pager_request, ++seqnos_memory_object_supply_completed(ds, seqno, pager_request, offset, length, result, error_offset) - memory_object_t pager; -+ mach_port_t pager; ++ default_pager_t ds; mach_port_seqno_t seqno; mach_port_t pager_request; vm_offset_t offset; -@@ -2949,10 +2757,10 @@ seqnos_memory_object_supply_completed(pager, seqno, pager_request, +@@ -2949,10 +2755,10 @@ seqnos_memory_object_supply_completed(pager, seqno, pager_request, * into individual pages and pass them off to default_write. */ kern_return_t @@ -515,7 +543,7 @@ index 8f8e13e..77caa4a 100644 mach_port_seqno_t seqno; mach_port_t pager_request; vm_offset_t offset; -@@ -2962,7 +2770,7 @@ seqnos_memory_object_data_return(pager, seqno, pager_request, +@@ -2962,13 +2768,13 @@ seqnos_memory_object_data_return(pager, seqno, pager_request, boolean_t kernel_copy; { @@ -524,7 +552,15 @@ index 8f8e13e..77caa4a 100644 offset, addr, data_cnt); } -@@ -3364,23 +3172,14 @@ S_default_pager_object_create (mach_port_t pager, + kern_return_t +-seqnos_memory_object_change_completed(pager, seqno, may_cache, copy_strategy) +- memory_object_t pager; ++seqnos_memory_object_change_completed(ds, seqno, may_cache, copy_strategy) ++ default_pager_t ds; + mach_port_seqno_t seqno; + boolean_t may_cache; + memory_object_copy_strategy_t copy_strategy; +@@ -3364,23 +3170,14 @@ S_default_pager_object_create (mach_port_t pager, return KERN_INVALID_ARGUMENT; ds = pager_port_alloc(size); @@ -556,7 +592,7 @@ index 8f8e13e..77caa4a 100644 /* * Set up associations between these ports -@@ -3454,7 +3253,7 @@ S_default_pager_objects (mach_port_t pager, +@@ -3454,7 +3251,7 @@ S_default_pager_objects (mach_port_t pager, /* * We will send no more than this many */ @@ -565,7 +601,7 @@ index 8f8e13e..77caa4a 100644 pthread_mutex_unlock(&all_pagers.lock); if (opotential < actual) { -@@ -3496,7 +3295,8 @@ S_default_pager_objects (mach_port_t pager, +@@ -3496,7 +3293,8 @@ S_default_pager_objects (mach_port_t pager, pthread_mutex_lock(&all_pagers.lock); num_pagers = 0; @@ -575,7 +611,7 @@ index 8f8e13e..77caa4a 100644 mach_port_t port; vm_size_t size; -@@ -3674,7 +3474,8 @@ S_default_pager_object_pages (mach_port_t pager, +@@ -3674,7 +3472,8 @@ S_default_pager_object_pages (mach_port_t pager, default_pager_t entry; pthread_mutex_lock(&all_pagers.lock); @@ -585,7 +621,7 @@ index 8f8e13e..77caa4a 100644 dstruct_lock(entry); if (entry->pager_name == object) { pthread_mutex_unlock(&all_pagers.lock); -@@ -3756,14 +3557,12 @@ S_default_pager_object_pages (mach_port_t pager, +@@ -3756,14 +3555,12 @@ S_default_pager_object_pages (mach_port_t pager, kern_return_t diff --git a/debian/patches/series b/debian/patches/series index d0c8ceec..5c93ec43 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -46,4 +46,4 @@ xkb-compat.patch xxx-fix-build.patch fix-receiver-lookups.patch -#mach-defpager-protected-payload.patch +mach-defpager-protected-payload.patch |