git: kernel - Fix floating point save state structure and minor npx issues

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Dec 22 11:44:03 PST 2011


commit 9e6e869e8ae3b41257bc4cb2ef8565828e90ea41
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Dec 22 11:21:41 2011 -0800

    kernel - Fix floating point save state structure and minor npx issues
    
    * The floating point save structure(s) used by the kernel and possibly
      also userland were too large for x86-64 due to a porting error where
      'long' variables were left intact that should have been turned into
      32-bit variables.
    
      No known adverse effect to the too-large structures but we have to get
      it right.
    
    * npxexit() was not being called in a kernel thread exit case.  Kernel
      threads do not use the FP unit so the case was never hit, but fix it
      anyway.
    
    * Move a critical section to cover a flags test to handle a very rare
      preemptive thread switch issue.  Since the preempting thread is a
      kernel thread which does not use the FP unit this case was never hit,
      but fix it anyway.

Summary of changes:
 sys/cpu/x86_64/include/npx.h               |   20 ++++++++++----------
 sys/platform/pc32/i386/vm_machdep.c        |    7 +++----
 sys/platform/pc64/x86_64/npx.c             |    2 +-
 sys/platform/pc64/x86_64/vm_machdep.c      |    2 +-
 sys/platform/vkernel/i386/vm_machdep.c     |    7 +++----
 sys/platform/vkernel64/x86_64/vm_machdep.c |    3 ++-
 6 files changed, 20 insertions(+), 21 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9e6e869e8ae3b41257bc4cb2ef8565828e90ea41


-- 
DragonFly BSD source repository





More information about the Commits mailing list