PERFORCE change 29746 for review

Peter Wemm peter at FreeBSD.org
Fri Apr 25 16:04:09 PDT 2003


http://perforce.freebsd.org/chv.cgi?CH=29746

Change 29746 by peter at peter_daintree on 2003/04/25 16:03:09

	use PCB_FULLCTX to cause fast_syscall to restore a full frame
	via doreti.  eg: in response to *context or sigreturn(2).

Affected files ...

.. //depot/projects/hammer/sys/x86_64/x86_64/exception.s#28 edit
.. //depot/projects/hammer/sys/x86_64/x86_64/machdep.c#84 edit

Differences ...

==== //depot/projects/hammer/sys/x86_64/x86_64/exception.s#28 (text+ko) ====

@@ -227,6 +227,9 @@
 	movq	PCPU(SCRATCH_RSP),%r12	/* %r12 already saved */
 	movq	%r12,TF_RSP(%rsp)	/* user stack pointer */
 	call	syscall
+	movq	PCPU(CURPCB),%rax
+	testq	$PCB_FULLCTX,PCB_FLAGS(%rax)
+	jnz	doreti_ast
 	/* simplified from doreti */
 1:	/* Check for and handle AST's on return to userland */
 	cli

==== //depot/projects/hammer/sys/x86_64/x86_64/machdep.c#84 (text+ko) ====

@@ -384,6 +384,7 @@
 	SIG_CANTMASK(td->td_sigmask);
 	signotify(td);
 	PROC_UNLOCK(p);
+	td->td_pcb->pcb_flags |= PCB_FULLCTX;
 	return (EJUSTRETURN);
 }
 


More information about the p4-projects mailing list