PERFORCE change 219543 for review
    Robert Watson 
    rwatson at FreeBSD.org
       
    Sun Nov  4 05:17:29 UTC 2012
    
    
  
http://p4web.freebsd.org/@@219543?ac=10
Change 219543 by rwatson at rwatson_svr_ctsrd_mipsbuild on 2012/11/04 05:16:43
	Until the CheriBSD kernel's bcopy()/memcpy() become capability-oblivious,
	use an explicit capability-aware context initialisation function when
	copying saved register files during fork().
Affected files ...
.. //depot/projects/ctsrd/cheribsd/src/sys/mips/mips/vm_machdep.c#5 edit
Differences ...
==== //depot/projects/ctsrd/cheribsd/src/sys/mips/mips/vm_machdep.c#5 (text+ko) ====
@@ -59,6 +59,9 @@
 
 #include <machine/asm.h>
 #include <machine/cache.h>
+#ifdef CPU_CHERI
+#include <machine/cheri.h>
+#endif
 #include <machine/clock.h>
 #include <machine/cpu.h>
 #include <machine/md_var.h>
@@ -129,6 +132,16 @@
 	 */
 	bcopy(td1->td_pcb, pcb2, sizeof(*pcb2));
 
+#ifdef CPU_CHERI
+	/*
+	 * XXXRW: We're copying this memory twice -- once in the bcopy()
+	 * above, and once here using capabilities.  Once bcopy() is
+	 * capability-oblivious, we can lose this.
+	 */
+	cheri_context_copy(&pcb2->pcb_cheriframe,
+	    &td1->td_pcb->pcb_cheriframe);
+#endif
+
 	/* Point mdproc and then copy over td1's contents
 	 * md_proc is empty for MIPS
 	 */
    
    
More information about the p4-projects
mailing list