summaryrefslogtreecommitdiff
path: root/ipc/ipc_port.h
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-08-18 11:32:15 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2015-08-28 15:47:56 +0200
commit0e17ccface304dac65efd86b3c6262afeecac05a (patch)
treebcfa906c12b83bbfa150bb6fc35007b15b6fb21c /ipc/ipc_port.h
parentb06275e65f012db0ea85c65bc4e30fb9b7197cf8 (diff)
ipc: fix locking issues
* ipc/ipc_port.h (struct ipc_port): Document locking exception. * ipc/ipc_port.c (ipc_port_destroy): Avoid accessing `port's fields without the lock. (ipc_port_alloc_special): Lock `port'. * ipc/mach_msg.c (mach_msg_trap): Avoid using `ipc_port_flag_protected_payload' on unlocked port. * ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): Likewise.
Diffstat (limited to 'ipc/ipc_port.h')
-rw-r--r--ipc/ipc_port.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/ipc/ipc_port.h b/ipc/ipc_port.h
index ade6967..de43b42 100644
--- a/ipc/ipc_port.h
+++ b/ipc/ipc_port.h
@@ -82,6 +82,8 @@ struct ipc_port {
ipc_port_timestamp_t timestamp;
} data;
+ /* Note: For pagers (IKOT_PAGER), this field is protected by
+ vm_object_cache_lock. */
ipc_kobject_t ip_kobject;
mach_port_mscount_t ip_mscount;