proc_init_trapframe now zeros all fields initially
authorKevin Klues <klueska@ros-dev.(none)>
Wed, 24 Mar 2010 07:16:10 +0000 (00:16 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:37 +0000 (17:35 -0700)
This was to fix a problem where gs being nonzero caused
kernel panics when popping a trap frame.  This was encountered
after an exec(), because gs had the old program's value but
not its LDT.

kern/arch/i686/process.c

index 89b8464..19cfc55 100644 (file)
@@ -11,6 +11,8 @@
 void proc_init_trapframe(trapframe_t *tf, uint32_t vcoreid,
                          uint32_t entryp, uint32_t stack_top)
 {
+       memset(tf,0,sizeof(*tf));
+
        /* Set up appropriate initial values for the segment registers.
         * GD_UD is the user data segment selector in the GDT, and
         * GD_UT is the user text segment selector (see inc/memlayout.h).