diff options
author | mjg <mjg@FreeBSD.org> | 2015-06-10 10:43:59 +0000 |
---|---|---|
committer | mjg <mjg@FreeBSD.org> | 2015-06-10 10:43:59 +0000 |
commit | 67f2eebb44e1f27017750eddaf5a5ea513cb9c71 (patch) | |
tree | 4be753ea914cbf9f2ee65a2a1cc53e6989224d5d /sys/powerpc | |
parent | ab3ad78145346dc115fb372ccf5f9bf7731075c9 (diff) | |
download | FreeBSD-src-67f2eebb44e1f27017750eddaf5a5ea513cb9c71.zip FreeBSD-src-67f2eebb44e1f27017750eddaf5a5ea513cb9c71.tar.gz |
Generalised support for copy-on-write structures shared by threads.
Thread credentials are maintained as follows: each thread has a pointer to
creds and a reference on them. The pointer is compared with proc's creds on
userspace<->kernel boundary and updated if needed.
This patch introduces a counter which can be compared instead, so that more
structures can use this scheme without adding more comparisons on the boundary.
Diffstat (limited to 'sys/powerpc')
-rw-r--r-- | sys/powerpc/powerpc/trap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c index 0ceb170..bfbd94d 100644 --- a/sys/powerpc/powerpc/trap.c +++ b/sys/powerpc/powerpc/trap.c @@ -196,8 +196,8 @@ trap(struct trapframe *frame) if (user) { td->td_pticks = 0; td->td_frame = frame; - if (td->td_ucred != p->p_ucred) - cred_update_thread(td); + if (td->td_cowgen != p->p_cowgen) + thread_cow_update(td); /* User Mode Traps */ switch (type) { |