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
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to