commit-hurd
[Top][All Lists]
Advanced

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

[gnumach] 01/05: New upstream version 1.8+git20171101


From: Samuel Thibault
Subject: [gnumach] 01/05: New upstream version 1.8+git20171101
Date: Wed, 01 Nov 2017 00:46:46 +0000

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

sthibault pushed a commit to branch master
in repository gnumach.

commit b20d7a9a8c23453f83d5873a1f5b9145012e7d30
Author: Samuel Thibault <address@hidden>
Date:   Wed Nov 1 00:33:44 2017 +0000

    New upstream version 1.8+git20171101
---
 ChangeLog                        |  75 ++++++++++++
 configure                        |  20 ++--
 doc/mach.info                    | 240 +++++++++++++++++++--------------------
 doc/mach.info-1                  |   6 +-
 doc/mach.info-2                  |   4 +-
 doc/stamp-vti                    |   4 +-
 doc/version.texi                 |   4 +-
 i386/intel/pmap.c                |   6 +-
 ipc/ipc_kmsg.h                   |  10 +-
 kern/bootstrap.c                 |   4 +-
 kern/profile.c                   |   6 +-
 kern/task.c                      |  19 +++-
 kern/task.h                      |   4 +
 kern/thread.c                    |   2 +-
 linux/dev/arch/i386/kernel/irq.c |  18 ++-
 linux/dev/glue/block.c           |  13 ++-
 linux/dev/glue/net.c             |   3 +-
 version.m4                       |   2 +-
 vm/vm_object.c                   |   7 +-
 19 files changed, 275 insertions(+), 172 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ae1453e..3d9bbe9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,78 @@
+2017-11-01  Samuel Thibault  <address@hidden>
+
+       linux block: fix outbound access to non-directmap user data
+       * linux/dev/glue/block.c (rdwr_full): Set BH_Bounce if the physical
+       address of the user data is not in directmap.
+
+2017-10-31  Samuel Thibault  <address@hidden>
+
+       linux-block: Fix calling vm_map_copy_discard on uninitialized variable
+       This happens if passed count is 0.
+
+       Reported by Richard Braun.
+
+       * linux/dev/glue/block.c (device_write): Set copy variable before
+       vm_map_copy_discard() is called.
+
+2017-10-27  Justus Winter  <address@hidden>
+
+       Fix commit 10ebf9565f69760e46a8f271e22c5367d54e10ff.
+       * kern/task.c (task_ledger_acquire): Remove function that I added by
+       accident.
+       (task_ledger_release): Likewise.
+
+2017-10-26  Justus Winter  <address@hidden>
+
+       kern: Fix new task notifications.
+       * kern/task.c (task_create_kernel): Handle NULL parent tasks.
+
+2017-10-26  Justus Winter  <address@hidden>
+
+       kern: Fix crash.
+       Check receiver in task_create.  Fixes a crash when sending that
+       message to a non-task port.
+
+       * kern/bootstrap.c (boot_script_task_create): Use the new function.
+       * kern/task.c (task_create): Rename to task_create_internal, create a
+       new function in its place that checks the receiver first.
+       * kern/task.h (task_create_internal): New prototype.
+
+2017-10-26  Justus Winter  <address@hidden>
+
+       linux: Fix warnings.
+       * linux/dev/glue/net.c (device_write): Remove unused variables.
+
+2017-10-23  Justus Winter  <address@hidden>
+
+       Drop the register qualifier.
+       * i386/intel/pmap.c: Drop the register qualifier.
+       * ipc/ipc_kmsg.h: Likewise.
+       * kern/bootstrap.c: Likewise.
+       * kern/profile.c: Likewise.
+       * kern/thread.c: Likewise.
+       * vm/vm_object.c: Likewise.
+
+2017-09-30  Justus Winter  <address@hidden>
+
+       linux: Fix interrupt glue.
+       Previously, we used an invalid pointer to mark interrupts as reserved
+       by Mach.  This, however, crashes code trying to iterate over the list
+       of interrupt handlers.  Use a valid structure instead.
+
+       * linux/dev/arch/i386/kernel/irq.c (reserved_mach_handler): New
+       function.
+       (reserved_mach): New variable.
+       (reserve_mach_irqs): Use the new variable.
+
+2017-09-21  Justus Winter  <address@hidden>
+
+       device: Remove unused file.
+       * device/dev_forward.defs: Remove unused file.
+
+       vm: Remove old memory manager remnants.
+       * vm/vm_object.c (vm_object_accept_old_init_protocol): Remove.
+       (vm_object_enter): Adapt.
+
 2017-08-27  Samuel Thibault  <address@hidden>
 
        ddb: More gracefully handle address errors
diff --git a/configure b/configure
index f15f770..2c98ef1 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.8+git20170911.
+# Generated by GNU Autoconf 2.69 for GNU Mach 1.8+git20171101.
 #
 # Report bugs to <address@hidden>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU Mach'
 PACKAGE_TARNAME='gnumach'
-PACKAGE_VERSION='1.8+git20170911'
-PACKAGE_STRING='GNU Mach 1.8+git20170911'
+PACKAGE_VERSION='1.8+git20171101'
+PACKAGE_STRING='GNU Mach 1.8+git20171101'
 PACKAGE_BUGREPORT='address@hidden'
 PACKAGE_URL=''
 
@@ -1599,7 +1599,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.8+git20170911 to adapt to many kinds of 
systems.
+\`configure' configures GNU Mach 1.8+git20171101 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1670,7 +1670,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Mach 1.8+git20170911:";;
+     short | recursive ) echo "Configuration of GNU Mach 1.8+git20171101:";;
    esac
   cat <<\_ACEOF
 
@@ -2026,7 +2026,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Mach configure 1.8+git20170911
+GNU Mach configure 1.8+git20171101
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2118,7 +2118,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.8+git20170911, which was
+It was created by GNU Mach $as_me 1.8+git20171101, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2984,7 +2984,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gnumach'
- VERSION='1.8+git20170911'
+ VERSION='1.8+git20171101'
 
 
 # Some tools Automake needs.
@@ -12189,7 +12189,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.8+git20170911, which was
+This file was extended by GNU Mach $as_me 1.8+git20171101, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12260,7 +12260,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.8+git20170911
+GNU Mach config.status 1.8+git20171101
 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 42c279a..cc3874d 100644
--- a/doc/mach.info
+++ b/doc/mach.info
@@ -1,9 +1,9 @@
-This is mach.info, produced by makeinfo version 6.4.90 from mach.texi.
+This is mach.info, produced by makeinfo version 6.5 from mach.texi.
 
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 16 August 2017, of 'The GNU Mach
-Reference Manual', for version 1.8+git20170911.
+Reference Manual', for version 1.8+git20171101.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
@@ -39,126 +39,126 @@ END-INFO-DIR-ENTRY
 
 
 Indirect:
-mach.info-1: 1643
-mach.info-2: 304538
+mach.info-1: 1640
+mach.info-2: 304532
 
 Tag Table:
 (Indirect)
-Node: Top1643
-Node: Introduction11281
-Node: Audience12112
-Node: Features13147
-Node: Overview14974
-Node: History16167
-Node: Installing16312
-Node: Binary Distributions17537
-Node: Compilation18345
-Node: Configuration19578
-Node: Cross-Compilation35989
-Node: Bootstrap36770
-Ref: Bootstrap-Footnote-137213
-Node: Bootloader37450
-Ref: Bootloader-Footnote-138730
-Node: Modules38816
-Node: Inter Process Communication39643
-Node: Major Concepts40266
-Node: Messaging Interface44071
-Node: Mach Message Call44801
-Node: Message Format48116
-Node: Exchanging Port Rights59308
-Ref: Exchanging Port Rights-Footnote-164870
-Node: Memory65042
-Ref: Memory-Footnote-168136
-Node: Message Send68478
-Ref: Message Send-Footnote-175500
-Node: Message Receive75783
-Ref: Message Receive-Footnote-185435
-Node: Atomicity85716
-Node: Port Manipulation Interface88490
-Node: Port Creation90045
-Node: Port Destruction94834
-Node: Port Names97977
-Node: Port Rights102224
-Node: Ports and other Tasks106013
-Node: Receive Rights110106
-Node: Port Sets117037
-Node: Request Notifications119440
-Node: Inherited Ports124244
-Node: Virtual Memory Interface127928
-Node: Memory Allocation129181
-Node: Memory Deallocation131706
-Node: Data Transfer133170
-Node: Memory Attributes136696
-Node: Mapping Memory Objects147796
-Node: Memory Statistics151088
-Node: External Memory Management152662
-Node: Memory Object Server153367
-Node: Memory Object Creation156048
-Node: Memory Object Termination160036
-Node: Memory Objects and Data162975
-Node: Memory Object Locking176880
-Node: Memory Object Attributes182744
-Node: Default Memory Manager186519
-Node: Threads and Tasks192201
-Node: Thread Interface192538
-Node: Thread Creation193534
-Node: Thread Termination194651
-Node: Thread Information195122
-Node: Thread Settings201221
-Node: Thread Execution202455
-Node: Scheduling209748
-Node: Thread Priority210103
-Node: Hand-Off Scheduling212737
-Node: Scheduling Policy217862
-Node: Thread Special Ports219194
-Node: Exceptions221640
-Node: Task Interface222510
-Node: Task Creation223522
-Node: Task Termination224857
-Node: Task Information225459
-Node: Task Execution232361
-Node: Task Special Ports236774
-Node: Syscall Emulation240628
-Node: Profiling241859
-Node: Host Interface245622
-Node: Host Ports246607
-Node: Host Information248680
-Node: Host Time254063
-Node: Host Reboot256730
-Node: Processors and Processor Sets257282
-Node: Processor Set Interface258260
-Node: Processor Set Ports259027
-Node: Processor Set Access259857
-Node: Processor Set Creation262117
-Node: Processor Set Destruction263144
-Node: Tasks and Threads on Sets264065
-Node: Processor Set Priority269232
-Node: Processor Set Policy270522
-Node: Processor Set Info272136
-Node: Processor Interface275949
-Node: Hosted Processors276674
-Node: Processor Control277665
-Node: Processors and Sets279131
-Node: Processor Info281009
-Node: Device Interface283751
-Node: Device Reply Server285366
-Node: Device Open286658
-Node: Device Close288781
-Node: Device Read289360
-Node: Device Write292279
-Node: Device Map295084
-Node: Device Status295975
-Node: Device Filter297148
-Node: Kernel Debugger304538
-Node: Operation305265
-Node: Commands308242
-Node: Variables322432
-Node: Expressions323969
-Node: Copying325318
-Node: Documentation License344547
-Node: GNU Free Documentation License345136
-Node: CMU License367535
-Node: Concept Index368770
-Node: Function and Data Index372616
+Node: Top1640
+Node: Introduction11278
+Node: Audience12109
+Node: Features13144
+Node: Overview14971
+Node: History16164
+Node: Installing16309
+Node: Binary Distributions17534
+Node: Compilation18342
+Node: Configuration19575
+Node: Cross-Compilation35986
+Node: Bootstrap36767
+Ref: Bootstrap-Footnote-137210
+Node: Bootloader37447
+Ref: Bootloader-Footnote-138727
+Node: Modules38813
+Node: Inter Process Communication39640
+Node: Major Concepts40263
+Node: Messaging Interface44068
+Node: Mach Message Call44798
+Node: Message Format48113
+Node: Exchanging Port Rights59305
+Ref: Exchanging Port Rights-Footnote-164867
+Node: Memory65039
+Ref: Memory-Footnote-168133
+Node: Message Send68475
+Ref: Message Send-Footnote-175497
+Node: Message Receive75780
+Ref: Message Receive-Footnote-185432
+Node: Atomicity85713
+Node: Port Manipulation Interface88487
+Node: Port Creation90042
+Node: Port Destruction94831
+Node: Port Names97974
+Node: Port Rights102221
+Node: Ports and other Tasks106010
+Node: Receive Rights110103
+Node: Port Sets117034
+Node: Request Notifications119437
+Node: Inherited Ports124241
+Node: Virtual Memory Interface127925
+Node: Memory Allocation129178
+Node: Memory Deallocation131703
+Node: Data Transfer133167
+Node: Memory Attributes136693
+Node: Mapping Memory Objects147793
+Node: Memory Statistics151085
+Node: External Memory Management152659
+Node: Memory Object Server153364
+Node: Memory Object Creation156045
+Node: Memory Object Termination160033
+Node: Memory Objects and Data162972
+Node: Memory Object Locking176877
+Node: Memory Object Attributes182741
+Node: Default Memory Manager186516
+Node: Threads and Tasks192198
+Node: Thread Interface192535
+Node: Thread Creation193531
+Node: Thread Termination194648
+Node: Thread Information195119
+Node: Thread Settings201218
+Node: Thread Execution202452
+Node: Scheduling209745
+Node: Thread Priority210100
+Node: Hand-Off Scheduling212734
+Node: Scheduling Policy217859
+Node: Thread Special Ports219191
+Node: Exceptions221637
+Node: Task Interface222507
+Node: Task Creation223519
+Node: Task Termination224854
+Node: Task Information225456
+Node: Task Execution232358
+Node: Task Special Ports236771
+Node: Syscall Emulation240625
+Node: Profiling241856
+Node: Host Interface245619
+Node: Host Ports246604
+Node: Host Information248677
+Node: Host Time254060
+Node: Host Reboot256727
+Node: Processors and Processor Sets257279
+Node: Processor Set Interface258257
+Node: Processor Set Ports259024
+Node: Processor Set Access259854
+Node: Processor Set Creation262114
+Node: Processor Set Destruction263141
+Node: Tasks and Threads on Sets264062
+Node: Processor Set Priority269229
+Node: Processor Set Policy270519
+Node: Processor Set Info272133
+Node: Processor Interface275946
+Node: Hosted Processors276671
+Node: Processor Control277662
+Node: Processors and Sets279128
+Node: Processor Info281006
+Node: Device Interface283748
+Node: Device Reply Server285363
+Node: Device Open286655
+Node: Device Close288778
+Node: Device Read289357
+Node: Device Write292276
+Node: Device Map295081
+Node: Device Status295972
+Node: Device Filter297145
+Node: Kernel Debugger304532
+Node: Operation305259
+Node: Commands308236
+Node: Variables322426
+Node: Expressions323963
+Node: Copying325312
+Node: Documentation License344541
+Node: GNU Free Documentation License345130
+Node: CMU License367529
+Node: Concept Index368764
+Node: Function and Data Index372610
 
 End Tag Table
diff --git a/doc/mach.info-1 b/doc/mach.info-1
index 4a83677..7e76e8b 100644
--- a/doc/mach.info-1
+++ b/doc/mach.info-1
@@ -1,9 +1,9 @@
-This is mach.info, produced by makeinfo version 6.4.90 from mach.texi.
+This is mach.info, produced by makeinfo version 6.5 from mach.texi.
 
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 16 August 2017, of 'The GNU Mach
-Reference Manual', for version 1.8+git20170911.
+Reference Manual', for version 1.8+git20171101.
 
    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 16 August 2017, of 'The GNU Mach
-Reference Manual', for version 1.8+git20170911.
+Reference Manual', for version 1.8+git20171101.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/mach.info-2 b/doc/mach.info-2
index 482e436..717ded7 100644
--- a/doc/mach.info-2
+++ b/doc/mach.info-2
@@ -1,9 +1,9 @@
-This is mach.info, produced by makeinfo version 6.4.90 from mach.texi.
+This is mach.info, produced by makeinfo version 6.5 from mach.texi.
 
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 16 August 2017, of 'The GNU Mach
-Reference Manual', for version 1.8+git20170911.
+Reference Manual', for version 1.8+git20171101.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 7a3b041..727e02f 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
 @set UPDATED 16 August 2017
 @set UPDATED-MONTH August 2017
address@hidden EDITION 1.8+git20170911
address@hidden VERSION 1.8+git20170911
address@hidden EDITION 1.8+git20171101
address@hidden VERSION 1.8+git20171101
diff --git a/doc/version.texi b/doc/version.texi
index 7a3b041..727e02f 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
 @set UPDATED 16 August 2017
 @set UPDATED-MONTH August 2017
address@hidden EDITION 1.8+git20170911
address@hidden VERSION 1.8+git20170911
address@hidden EDITION 1.8+git20171101
address@hidden VERSION 1.8+git20171101
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 2a53fb6..ffbd2ae 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -2384,7 +2384,7 @@ void pmap_collect(pmap_t p)
  */
 #if    0
 void pmap_activate(my_pmap, th, my_cpu)
-       register pmap_t my_pmap;
+       pmap_t  my_pmap;
        thread_t        th;
        int             my_cpu;
 {
@@ -2427,9 +2427,9 @@ pmap_t pmap_kernel()
  */
 #if    0
 pmap_zero_page(phys)
-       register vm_offset_t    phys;
+       vm_offset_t     phys;
 {
-       register int    i;
+       int     i;
 
        assert(phys != vm_page_fictitious_addr);
        i = PAGE_SIZE / INTEL_PGBYTES;
diff --git a/ipc/ipc_kmsg.h b/ipc/ipc_kmsg.h
index 393c039..c6cd77f 100644
--- a/ipc/ipc_kmsg.h
+++ b/ipc/ipc_kmsg.h
@@ -147,7 +147,7 @@ MACRO_END
 
 #define        ikm_free(kmsg)                                                  
\
 MACRO_BEGIN                                                            \
-       register vm_size_t _size = (kmsg)->ikm_size;                    \
+       vm_size_t _size = (kmsg)->ikm_size;                             \
                                                                        \
        if ((integer_t)_size > 0)                                       \
                kfree((vm_offset_t) (kmsg), _size);                     \
@@ -196,7 +196,7 @@ extern ipc_kmsg_t ipc_kmsg_queue_next(
 
 #define        ipc_kmsg_rmqueue_first_macro(queue, kmsg)                       
\
 MACRO_BEGIN                                                            \
-       register ipc_kmsg_t _next;                                      \
+       ipc_kmsg_t _next;                                               \
                                                                        \
        assert((queue)->ikmq_base == (kmsg));                           \
                                                                        \
@@ -205,7 +205,7 @@ MACRO_BEGIN                                                 
        \
                assert((kmsg)->ikm_prev == (kmsg));                     \
                (queue)->ikmq_base = IKM_NULL;                          \
        } else {                                                        \
-               register ipc_kmsg_t _prev = (kmsg)->ikm_prev;           \
+               ipc_kmsg_t _prev = (kmsg)->ikm_prev;                    \
                                                                        \
                (queue)->ikmq_base = _next;                             \
                _next->ikm_prev = _prev;                                \
@@ -216,14 +216,14 @@ MACRO_END
 
 #define        ipc_kmsg_enqueue_macro(queue, kmsg)                             
\
 MACRO_BEGIN                                                            \
-       register ipc_kmsg_t _first = (queue)->ikmq_base;                \
+       ipc_kmsg_t _first = (queue)->ikmq_base;                         \
                                                                        \
        if (_first == IKM_NULL) {                                       \
                (queue)->ikmq_base = (kmsg);                            \
                (kmsg)->ikm_next = (kmsg);                              \
                (kmsg)->ikm_prev = (kmsg);                              \
        } else {                                                        \
-               register ipc_kmsg_t _last = _first->ikm_prev;           \
+               ipc_kmsg_t _last = _first->ikm_prev;                    \
                                                                        \
                (kmsg)->ikm_next = _first;                              \
                (kmsg)->ikm_prev = _last;                               \
diff --git a/kern/bootstrap.c b/kern/bootstrap.c
index c21d3b1..8b88d17 100644
--- a/kern/bootstrap.c
+++ b/kern/bootstrap.c
@@ -493,7 +493,7 @@ read_exec(void *handle, vm_offset_t file_ofs, vm_size_t 
file_size,
 
 static void copy_bootstrap(void *e, exec_info_t *boot_exec_info)
 {
-       //register vm_map_t     user_map = current_task()->map;
+       /* vm_map_t     user_map = current_task()->map; */
        int err;
 
        if ((err = exec_load(boot_read, read_exec, e, boot_exec_info)))
@@ -819,7 +819,7 @@ boot_script_free (void *ptr, unsigned int size)
 int
 boot_script_task_create (struct cmd *cmd)
 {
-  kern_return_t rc = task_create(TASK_NULL, FALSE, &cmd->task);
+  kern_return_t rc = task_create_kernel(TASK_NULL, FALSE, &cmd->task);
   if (rc)
     {
       printf("boot_script_task_create failed with %x\n", rc);
diff --git a/kern/profile.c b/kern/profile.c
index 1381b1a..b33d695 100644
--- a/kern/profile.c
+++ b/kern/profile.c
@@ -71,7 +71,7 @@ void profile_thread()
                int                     arg[SIZE_PROF_BUFFER+1];
        } msg;
 
-       register spl_t  s;
+       spl_t   s;
        buf_to_send_t   buf_entry;
        queue_entry_t   prof_queue_entry;
        prof_data_t     pbuf;
@@ -113,7 +113,7 @@ void profile_thread()
           else {
                task_t          curr_task;
                 thread_t       curr_th;
-               register int    *sample;
+               int     *sample;
                 int            curr_buf;
                int             imax;
 
@@ -183,7 +183,7 @@ void
 send_last_sample_buf(th)
 thread_t th;
 {
-        register       spl_t s;
+        spl_t s;
         buf_to_send_t buf_entry;
         vm_offset_t vm_buf_entry;
 
diff --git a/kern/task.c b/kern/task.c
index 1874af6..fc5802e 100644
--- a/kern/task.c
+++ b/kern/task.c
@@ -73,7 +73,7 @@ void task_init(void)
         * Task_create must assign to kernel_task as a side effect,
         * for other initialization. (:-()
         */
-       (void) task_create(TASK_NULL, FALSE, &kernel_task);
+       (void) task_create_kernel(TASK_NULL, FALSE, &kernel_task);
        (void) task_set_name(kernel_task, "gnumach");
        vm_map_set_name(kernel_map, kernel_task->name);
 }
@@ -83,6 +83,19 @@ kern_return_t task_create(
        boolean_t       inherit_memory,
        task_t          *child_task)            /* OUT */
 {
+       if (parent_task == TASK_NULL)
+               return KERN_INVALID_TASK;
+
+       return task_create_kernel (parent_task, inherit_memory,
+                                  child_task);
+}
+
+kern_return_t
+task_create_kernel(
+       task_t          parent_task,
+       boolean_t       inherit_memory,
+       task_t          *child_task)            /* OUT */
+{
        task_t          new_task;
        processor_set_t pset;
 #if FAST_TAS
@@ -196,7 +209,9 @@ kern_return_t task_create(
                task_reference (parent_task);
                mach_notify_new_task (new_task_notification,
                                      convert_task_to_port (new_task),
-                                     convert_task_to_port (parent_task));
+                                     parent_task
+                                     ? convert_task_to_port (parent_task)
+                                     : IP_NULL);
        }
 
        ipc_task_enable(new_task);
diff --git a/kern/task.h b/kern/task.h
index 2a4c28f..0b746af 100644
--- a/kern/task.h
+++ b/kern/task.h
@@ -140,6 +140,10 @@ extern kern_return_t       task_create(
        task_t          parent_task,
        boolean_t       inherit_memory,
        task_t          *child_task);
+extern kern_return_t   task_create_kernel(
+       task_t          parent_task,
+       boolean_t       inherit_memory,
+       task_t          *child_task);
 extern kern_return_t   task_terminate(
        task_t          task);
 extern kern_return_t   task_suspend(
diff --git a/kern/thread.c b/kern/thread.c
index 0ac7c53..8637e36 100644
--- a/kern/thread.c
+++ b/kern/thread.c
@@ -2257,7 +2257,7 @@ thread_wire(
 
 void thread_collect_scan(void)
 {
-       register thread_t       thread, prev_thread;
+       thread_t        thread, prev_thread;
        processor_set_t         pset, prev_pset;
 
        prev_thread = THREAD_NULL;
diff --git a/linux/dev/arch/i386/kernel/irq.c b/linux/dev/arch/i386/kernel/irq.c
index 7753814..a02e958 100644
--- a/linux/dev/arch/i386/kernel/irq.c
+++ b/linux/dev/arch/i386/kernel/irq.c
@@ -393,6 +393,18 @@ probe_irq_off (unsigned long irqs)
  * Reserve IRQs used by Mach drivers.
  * Must be called before Linux IRQ detection, after Mach IRQ detection.
  */
+
+static void reserved_mach_handler (int line, void *cookie, struct pt_regs 
*regs)
+{
+  /* These interrupts are actually handled in Mach.  */
+  assert (! "reached");
+}
+
+static const struct linux_action reserved_mach =
+  {
+    reserved_mach_handler, NULL, NULL, 0
+  };
+
 static void
 reserve_mach_irqs (void)
 {
@@ -401,8 +413,10 @@ reserve_mach_irqs (void)
   for (i = 0; i < 16; i++)
     {
       if (ivect[i] != prtnull && ivect[i] != intnull)
-       /* Set non-NULL value. */
-       irq_action[i] = (struct linux_action *) -1;
+       /* This dummy action does not specify SA_SHIRQ, so
+          setup_x86_irq will not try to add a handler to this
+          slot.  Therefore, the cast is safe.  */
+       irq_action[i] = (struct linux_action *) &reserved_mach;
     }
 }
 
diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c
index c1d922b..0a5b1c8 100644
--- a/linux/dev/glue/block.c
+++ b/linux/dev/glue/block.c
@@ -578,6 +578,7 @@ rdwr_full (int rw, kdev_t dev, loff_t *off, char **buf, int 
*resid, int bshift)
   int cc, err = 0, i, j, nb, nbuf;
   long blk;
   struct buffer_head bhead[MAX_BUF], *bh, *bhp[MAX_BUF];
+  phys_addr_t pa;
 
   assert ((*off & BMASK) == 0);
 
@@ -592,7 +593,10 @@ rdwr_full (int rw, kdev_t dev, loff_t *off, char **buf, 
int *resid, int bshift)
       if (rw == WRITE)
        set_bit (BH_Dirty, &bh->b_state);
       cc = PAGE_SIZE - (((int) *buf + (nb << bshift)) & PAGE_MASK);
-      if (cc >= BSIZE && (((int) *buf + (nb << bshift)) & 511) == 0)
+      pa = pmap_extract (vm_map_pmap (device_io_map),
+                        (((vm_offset_t) *buf) + (nb << bshift)));
+      if (cc >= BSIZE && (((int) *buf + (nb << bshift)) & 511) == 0
+         && pa + cc <= VM_PAGE_DIRECTMAP_LIMIT)
        cc &= ~BMASK;
       else
        {
@@ -602,9 +606,7 @@ rdwr_full (int rw, kdev_t dev, loff_t *off, char **buf, int 
*resid, int bshift)
       if (cc > ((nbuf - nb) << bshift))
        cc = (nbuf - nb) << bshift;
       if (! test_bit (BH_Bounce, &bh->b_state))
-       bh->b_data = (char *) phystokv(pmap_extract (vm_map_pmap 
(device_io_map),
-                                           (((vm_offset_t) *buf)
-                                            + (nb << bshift))));
+       bh->b_data = (char *) phystokv(pa);
       else
        {
          bh->b_data = alloc_buffer (cc);
@@ -1303,7 +1305,7 @@ device_write (void *d, ipc_port_t reply_port,
   int resid, amt, i;
   int count = (int) orig_count;
   io_return_t err = 0;
-  vm_map_copy_t copy;
+  vm_map_copy_t copy = (vm_map_copy_t) data;
   vm_offset_t addr, uaddr;
   vm_size_t len, size;
   struct block_data *bd = d;
@@ -1327,7 +1329,6 @@ device_write (void *d, ipc_port_t reply_port,
     }
 
   resid = count;
-  copy = (vm_map_copy_t) data;
   uaddr = copy->offset;
 
   /* Allocate a kernel buffer.  */
diff --git a/linux/dev/glue/net.c b/linux/dev/glue/net.c
index 6b9cadd..8a84bb4 100644
--- a/linux/dev/glue/net.c
+++ b/linux/dev/glue/net.c
@@ -427,8 +427,7 @@ device_write (void *d, ipc_port_t reply_port,
              recnum_t bn, io_buf_ptr_t data, unsigned int count,
              int *bytes_written)
 {
-  unsigned char *p;
-  int i, s;
+  int s;
   vm_map_copy_t copy = (vm_map_copy_t) data;
   char *map_data;
   vm_offset_t map_addr;
diff --git a/version.m4 b/version.m4
index 0028b4b..f924b24 100644
--- a/version.m4
+++ b/version.m4
@@ -1,4 +1,4 @@
 m4_define([AC_PACKAGE_NAME],[GNU Mach])
-m4_define([AC_PACKAGE_VERSION],[1.8+git20170911])
+m4_define([AC_PACKAGE_VERSION],[1.8+git20171101])
 m4_define([AC_PACKAGE_BUGREPORT],address@hidden)
 m4_define([AC_PACKAGE_TARNAME],[gnumach])
diff --git a/vm/vm_object.c b/vm/vm_object.c
index ea81039..a68e520 100644
--- a/vm/vm_object.c
+++ b/vm/vm_object.c
@@ -372,7 +372,7 @@ static void vm_object_cache_remove(
 }
 
 void vm_object_collect(
-       register vm_object_t    object)
+       vm_object_t     object)
 {
        vm_object_unlock(object);
 
@@ -1920,8 +1920,6 @@ void vm_object_destroy(
        vm_object_deallocate(object);
 }
 
-boolean_t      vm_object_accept_old_init_protocol = FALSE;
-
 /*
  *     Routine:        vm_object_enter
  *     Purpose:
@@ -2109,9 +2107,6 @@ restart:
                vm_object_lock(object);
                object->pager_initialized = TRUE;
 
-               if (vm_object_accept_old_init_protocol)
-                       object->pager_ready = TRUE;
-
                vm_object_wakeup(object, VM_OBJECT_EVENT_INITIALIZED);
        } else {
                vm_object_lock(object);

-- 
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]