commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnumach] 01/02: Imported Upstream version 1.4+git20141214


From: Samuel Thibault
Subject: [gnumach] 01/02: Imported Upstream version 1.4+git20141214
Date: Mon, 15 Dec 2014 01:15:44 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch master
in repository gnumach.

commit b9e38b3a5b5a18d22219f4d1ddf8dc4777d203bb
Author: Samuel Thibault <address@hidden>
Date:   Mon Dec 15 00:35:07 2014 +0000

    Imported Upstream version 1.4+git20141214
---
 ChangeLog          | 11 +++++++++++
 configure          | 20 ++++++++++----------
 doc/mach.info      |  2 +-
 doc/mach.info-1    |  4 ++--
 doc/mach.info-2    |  2 +-
 doc/stamp-vti      |  4 ++--
 doc/version.texi   |  4 ++--
 i386/i386/locore.S |  6 ++++--
 i386/i386/spl.S    | 36 +++++++++++++++++++++++++++++++++++-
 version.m4         |  2 +-
 10 files changed, 69 insertions(+), 22 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c764b0e..3ec1c36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2014-12-15  Samuel Thibault  <address@hidden>
+
+       Make spl7 just clear IF instead of setting the PIC mask
+       * i386/i386/spl.S (spl7): Just set curr_ipl and cli.
+       (splx) [MACH_KDB || MACH_TTD]: When curr_ipl is 7, make sure that IF is 
cleared.
+       (splx): When staying at ipl7, do not enable interrupts.
+       (spl) [MACH_KDB || MACH_TTD]: When curr_ipl is 7, make sure that IF is 
cleared.
+       (spl): When new ipl is 7, branch to spl7.
+       * i386/i386/locore.S (TIME_TRAP_UENTRY, TIME_TRAP_SENTRY): Save flags, 
and
+       restore them instead of blindly using sti.
+
 2014-12-11  Samuel Thibault  <address@hidden>
 
        Ship missing file
diff --git a/configure b/configure
index 01a7e98..de0aec6 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GNU Mach 1.4+git20141211.
+# Generated by GNU Autoconf 2.69 for GNU Mach 1.4+git20141214.
 #
 # Report bugs to <address@hidden>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU Mach'
 PACKAGE_TARNAME='gnumach'
-PACKAGE_VERSION='1.4+git20141211'
-PACKAGE_STRING='GNU Mach 1.4+git20141211'
+PACKAGE_VERSION='1.4+git20141214'
+PACKAGE_STRING='GNU Mach 1.4+git20141214'
 PACKAGE_BUGREPORT='address@hidden'
 PACKAGE_URL=''
 
@@ -1584,7 +1584,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU Mach 1.4+git20141211 to adapt to many kinds of 
systems.
+\`configure' configures GNU Mach 1.4+git20141214 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1654,7 +1654,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Mach 1.4+git20141211:";;
+     short | recursive ) echo "Configuration of GNU Mach 1.4+git20141214:";;
    esac
   cat <<\_ACEOF
 
@@ -2002,7 +2002,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Mach configure 1.4+git20141211
+GNU Mach configure 1.4+git20141214
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2094,7 +2094,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU Mach $as_me 1.4+git20141211, which was
+It was created by GNU Mach $as_me 1.4+git20141214, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2960,7 +2960,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gnumach'
- VERSION='1.4+git20141211'
+ VERSION='1.4+git20141214'
 
 
 # Some tools Automake needs.
@@ -12110,7 +12110,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GNU Mach $as_me 1.4+git20141211, which was
+This file was extended by GNU Mach $as_me 1.4+git20141214, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12181,7 +12181,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GNU Mach config.status 1.4+git20141211
+GNU Mach config.status 1.4+git20141214
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/doc/mach.info b/doc/mach.info
index 9376a69..fe27860 100644
--- a/doc/mach.info
+++ b/doc/mach.info
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 5.2 from 
mach.texi.
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141211.
+Mach Reference Manual', for version 1.4+git20141214.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/mach.info-1 b/doc/mach.info-1
index 1d4eaec..eafe7bb 100644
--- a/doc/mach.info-1
+++ b/doc/mach.info-1
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 5.2 from 
mach.texi.
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141211.
+Mach Reference Manual', for version 1.4+git20141214.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
@@ -46,7 +46,7 @@ Main Menu
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141211.
+Mach Reference Manual', for version 1.4+git20141214.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/mach.info-2 b/doc/mach.info-2
index 44eefb1..5d6e0f4 100644
--- a/doc/mach.info-2
+++ b/doc/mach.info-2
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 5.2 from 
mach.texi.
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141211.
+Mach Reference Manual', for version 1.4+git20141214.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 939aba4..4384f20 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
 @set UPDATED 10 November 2014
 @set UPDATED-MONTH November 2014
address@hidden EDITION 1.4+git20141211
address@hidden VERSION 1.4+git20141211
address@hidden EDITION 1.4+git20141214
address@hidden VERSION 1.4+git20141214
diff --git a/doc/version.texi b/doc/version.texi
index 939aba4..4384f20 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
 @set UPDATED 10 November 2014
 @set UPDATED-MONTH November 2014
address@hidden EDITION 1.4+git20141211
address@hidden VERSION 1.4+git20141211
address@hidden EDITION 1.4+git20141214
address@hidden VERSION 1.4+git20141214
diff --git a/i386/i386/locore.S b/i386/i386/locore.S
index e1befa7..15715f6 100644
--- a/i386/i386/locore.S
+++ b/i386/i386/locore.S
@@ -119,6 +119,7 @@ LEXT(retry_table_end)                       ;\
  * Uses %eax, %ebx, %ecx.
  */
 #define        TIME_TRAP_UENTRY \
+       pushf                                   /* Save flags */        ;\
        cli                                     /* block interrupts */  ;\
        movl    VA_ETC,%ebx                     /* get timer value */   ;\
        movl    CX(EXT(current_tstamp),%edx),%ecx       /* get old time stamp 
*/;\
@@ -131,7 +132,7 @@ LEXT(retry_table_end)                       ;\
 0:     addl    $(TH_SYSTEM_TIMER-TH_USER_TIMER),%ecx                   ;\
                                                /* switch to sys timer */;\
        movl    %ecx,CX(EXT(current_timer),%edx)        /* make it current */   
;\
-       sti                                     /* allow interrupts */
+       popf                                    /* allow interrupts */
 
 /*
  * Update time on system call entry.
@@ -141,6 +142,7 @@ LEXT(retry_table_end)                       ;\
  * Same as TIME_TRAP_UENTRY, but preserves %eax.
  */
 #define        TIME_TRAP_SENTRY \
+       pushf                                   /* Save flags */        ;\
        cli                                     /* block interrupts */  ;\
        movl    VA_ETC,%ebx                     /* get timer value */   ;\
        movl    CX(EXT(current_tstamp),%edx),%ecx       /* get old time stamp 
*/;\
@@ -155,7 +157,7 @@ LEXT(retry_table_end)                       ;\
 0:     addl    $(TH_SYSTEM_TIMER-TH_USER_TIMER),%ecx                   ;\
                                                /* switch to sys timer */;\
        movl    %ecx,CX(EXT(current_timer),%edx)        /* make it current */   
;\
-       sti                                     /* allow interrupts */
+       popf                                    /* allow interrupts */
 
 /*
  * update time on user trap exit.
diff --git a/i386/i386/spl.S b/i386/i386/spl.S
index 3c07509..41458ac 100644
--- a/i386/i386/spl.S
+++ b/i386/i386/spl.S
@@ -140,15 +140,35 @@ Entry(splsched)
 Entry(splhigh)
 Entry(splhi)
 ENTRY(spl7)
-       SETIPL(SPL7)
+       /* ipl7 just clears IF */
+       movl    $SPL7,%eax
+       xchgl   EXT(curr_ipl),%eax
+       cli
+       ret
 
 ENTRY(splx)
        movl    S_ARG0,%edx             /* get ipl */
+
+#if MACH_KDB || MACH_TTD
+       /* First make sure that if we're exitting from ipl7, IF is still 
cleared */
+       cmpl    $SPL7,EXT(curr_ipl)     /* from ipl7? */
+       jne     0f
+       pushfl
+       popl    %eax
+       testl   $0x200,%eax             /* IF? */
+       jz      0f
+       int3                            /* Oops, interrupts got enabled?! */
+
+0:
+#endif /* MACH_KDB || MACH_TTD */
        testl   %edx,%edx               /* spl0? */
        jz      EXT(spl0)               /* yes, handle specially */
        cmpl    EXT(curr_ipl),%edx      /* same ipl as current? */
        jne     spl                     /* no */
+       cmpl    $SPL7,%edx              /* spl7? */
+       je      1f                      /* to ipl7, don't enable interrupts */
        sti                             /* ensure interrupts are enabled */
+1:
        movl    %edx,%eax               /* return previous ipl */
        ret
 
@@ -207,6 +227,20 @@ splx_cli:
        .align  TEXT_ALIGN
        .globl  spl
 spl:
+#if MACH_KDB || MACH_TTD
+       /* First make sure that if we're exitting from ipl7, IF is still 
cleared */
+       cmpl    $SPL7,EXT(curr_ipl)     /* from ipl7? */
+       jne     0f
+       pushfl
+       popl    %eax
+       testl   $0x200,%eax             /* IF? */
+       jz      0f
+       int3                            /* Oops, interrupts got enabled?! */
+
+0:
+#endif /* MACH_KDB || MACH_TTD */
+       cmpl    $SPL7,%edx              /* spl7? */
+       je      EXT(spl7)               /* yes, handle specially */
        movl    EXT(pic_mask)(,%edx,4),%eax
                                        /* get PIC mask */
        cli                             /* disable interrupts */
diff --git a/version.m4 b/version.m4
index 56a7174..3cab496 100644
--- a/version.m4
+++ b/version.m4
@@ -1,4 +1,4 @@
 m4_define([AC_PACKAGE_NAME],[GNU Mach])
-m4_define([AC_PACKAGE_VERSION],[1.4+git20141211])
+m4_define([AC_PACKAGE_VERSION],[1.4+git20141214])
 m4_define([AC_PACKAGE_BUGREPORT],address@hidden)
 m4_define([AC_PACKAGE_TARNAME],[gnumach])

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/gnumach.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]