Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 May 2003 01:25:51 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/amd64/amd64 machdep.c trap.c
Message-ID:  <200305080825.h488Pp79021876@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
peter       2003/05/08 01:25:51 PDT

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      machdep.c trap.c 
  Log:
  Oops.  Turn T_PAGEFLT back into an interrupt gate.  It is *critical*
  that interrupts be disabled and remain disabled until %cr2 is read.
  Otherwise we can preempt and another process can fault, and by the
  time we read %cr2, we see a different processes fault address.  This
  Greatly Confuses vm_fault() (to say the least).  The i386 port has
  got this marked as a bug workaround for a Cyrix CPU, which is what
  lead me astray.  Its actually necessary for preemption, regardless
  of whether Cyrix cpus had a bug or not.
  
  Revision  Changes    Path
  1.568     +1 -1      src/sys/amd64/amd64/machdep.c
  1.253     +9 -1      src/sys/amd64/amd64/trap.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305080825.h488Pp79021876>