commit-hurd
[Top][All Lists]
Advanced

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

gnumach ./ChangeLog i386/i386/pcb.c


From: Marcus Brinkmann
Subject: gnumach ./ChangeLog i386/i386/pcb.c
Date: Sat, 09 Nov 2002 17:22:21 -0500

CVSROOT:        /cvsroot/hurd
Module name:    gnumach
Changes by:     Marcus Brinkmann <address@hidden>       02/11/09 17:22:21

Modified files:
        .              : ChangeLog 
        i386/i386      : pcb.c 

Log message:
        2002-11-09  Marcus Brinkmann  <address@hidden>
        
        * i386/i386/pcb.c (switch_context): Update the I/O permission
        bitmap from stack_handoff() here (not only in stack_handoff()).

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/ChangeLog.diff?tr1=1.149&tr2=1.150&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/pcb.c.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gnumach/ChangeLog
diff -u gnumach/ChangeLog:1.149 gnumach/ChangeLog:1.150
--- gnumach/ChangeLog:1.149     Tue Nov  5 19:52:43 2002
+++ gnumach/ChangeLog   Sat Nov  9 17:22:21 2002
@@ -1,3 +1,8 @@
+2002-11-09  Marcus Brinkmann  <address@hidden>
+
+       * i386/i386/pcb.c (switch_context): Update the I/O permission
+       bitmap from stack_handoff() here (not only in stack_handoff()).
+
 2002-11-05  Roland McGrath  <address@hidden>
 
        * oskit/pc/osenv_bell.c (direct_cons_bell): Use a private timer
Index: gnumach/i386/i386/pcb.c
diff -u gnumach/i386/i386/pcb.c:1.4 gnumach/i386/i386/pcb.c:1.5
--- gnumach/i386/i386/pcb.c:1.4 Thu Oct  3 22:45:04 2002
+++ gnumach/i386/i386/pcb.c     Sat Nov  9 17:22:21 2002
@@ -313,6 +313,19 @@
                                     old, mycpu);
                PMAP_ACTIVATE_USER(vm_map_pmap(new_task->map),
                                   new, mycpu);
+
+               simple_lock (&new_task->machine.iopb_lock);
+#if NCPUS>1
+#warning SMP support missing (avoid races with io_perm_modify).
+#else
+               /* This optimization only works on a single processor
+                  machine, where old_task's iopb can not change while
+                  we are switching.  */
+               if (old_task->machine.iopb || new_task->machine.iopb)
+#endif
+                 update_ktss_iopb (new_task->machine.iopb,
+                                   new_task->machine.iopb_size);
+               simple_unlock (&new_task->machine.iopb_lock);
        }
     }
 




reply via email to

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