cvs commit: src/sys/cpu/i386/include cpu.h src/sys/kern kern_intr.c lwkt_ipiq.c src/sys/platform/pc32/apic apic_vector.s apicvar.h src/sys/platform/pc32/i386 exception.s trap.c vm86.c vm86bios.s src/sys/platform/pc32/icu icu_vector.s ...

Simon Schubert corecode at crater.dragonflybsd.org
Mon Jan 22 11:39:07 PST 2007


corecode    2007/01/22 11:37:05 PST

DragonFly src repository

  Modified files:
    sys/cpu/i386/include cpu.h 
    sys/kern             kern_intr.c lwkt_ipiq.c 
    sys/platform/pc32/apic apic_vector.s apicvar.h 
    sys/platform/pc32/i386 exception.s trap.c vm86.c vm86bios.s 
    sys/platform/pc32/icu icu_vector.s 
    sys/platform/pc32/isa ipl.s 
    sys/platform/vkernel/i386 fork_tramp.s trap.c 
    sys/platform/vkernel/include md_var.h 
    sys/sys              thread.h 
  Log:
  Pass structs by reference if you expect the callee to modify them.
  
  This fixes kernel boot with gcc41.  The gpfault people were seeing comes from
  vm86_bioscall() in init386().  The cause is that the assembler code passes the
  struct vm86frame by value, i.e. simply creating it on the stack.  This worked
  up to gcc34, but gcc41 now optimizes stores to unused memory locations away,
  whis is allowed per the standards.  This led to an uninitialized stack frame
  which in turn panicked the box.
  
  Oooohh...-please-commit-by: dillon@
  
  Revision  Changes    Path
  1.23      +1 -1      src/sys/cpu/i386/include/cpu.h
  1.46      +5 -5      src/sys/kern/kern_intr.c
  1.21      +3 -3      src/sys/kern/lwkt_ipiq.c
  1.36      +4 -2      src/sys/platform/pc32/apic/apic_vector.s
  1.3       +1 -1      src/sys/platform/pc32/apic/apicvar.h
  1.31      +13 -1     src/sys/platform/pc32/i386/exception.s
  1.96      +69 -69    src/sys/platform/pc32/i386/trap.c
  1.25      +11 -11    src/sys/platform/pc32/i386/vm86.c
  1.14      +2 -0      src/sys/platform/pc32/i386/vm86bios.s
  1.30      +2 -1      src/sys/platform/pc32/icu/icu_vector.s
  1.28      +6 -1      src/sys/platform/pc32/isa/ipl.s
  1.3       +8 -1      src/sys/platform/vkernel/i386/fork_tramp.s
  1.14      +11 -11    src/sys/platform/vkernel/i386/trap.c
  1.17      +1 -1      src/sys/platform/vkernel/include/md_var.h
  1.87      +1 -1      src/sys/sys/thread.h


http://www.dragonflybsd.org/cvsweb/src/sys/cpu/i386/include/cpu.h.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_intr.c.diff?r1=1.45&r2=1.46&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_ipiq.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/apic/apic_vector.s.diff?r1=1.35&r2=1.36&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/apic/apicvar.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/i386/exception.s.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/i386/trap.c.diff?r1=1.95&r2=1.96&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/i386/vm86.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/i386/vm86bios.s.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/icu/icu_vector.s.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/pc32/isa/ipl.s.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/i386/fork_tramp.s.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/i386/trap.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/platform/vkernel/include/md_var.h.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/thread.h.diff?r1=1.86&r2=1.87&f=u





More information about the Commits mailing list