svn commit: r239587 - head/sys/kern
Andriy Gapon
avg at FreeBSD.org
Wed Sep 5 06:49:58 UTC 2012
on 22/08/2012 23:02 John Baldwin said the following:
> Author: jhb
> Date: Wed Aug 22 20:02:42 2012
> New Revision: 239587
> URL: http://svn.freebsd.org/changeset/base/239587
>
> Log:
> Assert that system calls do not leak a pinned thread (via sched_pin()) to
> userland.
>
> Modified:
> head/sys/kern/subr_syscall.c
>
> Modified: head/sys/kern/subr_syscall.c
> ==============================================================================
> --- head/sys/kern/subr_syscall.c Wed Aug 22 20:01:57 2012 (r239586)
> +++ head/sys/kern/subr_syscall.c Wed Aug 22 20:02:42 2012 (r239587)
> @@ -188,6 +188,9 @@ syscallret(struct thread *td, int error,
I wonder if userret() would be a better place for this assert as well as the
asserts that were already there. userret seems to cover more cases and includes
the syscallret case.
> KASSERT((td->td_pflags & TDP_NOSLEEPING) == 0,
> ("System call %s returning with sleep disabled",
> syscallname(p, sa->code)));
> + KASSERT(td->td_pinned == 0,
> + ("System call %s returning with pinned thread",
> + syscallname(p, sa->code)));
>
> /*
> * Handle reschedule and other end-of-syscall issues
>
--
Andriy Gapon
More information about the svn-src-head
mailing list