commit-hurd
[Top][All Lists]
Advanced

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

[hurd] 09/17: devnode: fix falling back to the kernel driver


From: Samuel Thibault
Subject: [hurd] 09/17: devnode: fix falling back to the kernel driver
Date: Mon, 15 Feb 2016 09:10:03 +0000

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

sthibault pushed a commit to branch upstream
in repository hurd.

commit 987084c1cc955c4368e216e27a3c21de1d524bbf
Author: Justus Winter <address@hidden>
Date:   Sat Jan 2 19:18:40 2016 +0100

    devnode: fix falling back to the kernel driver
    
    * devnode/devnode.c (ds_device_open): Do not exit if opening the
    master device fails.
    (parse_opt): Likewise.
---
 devnode/devnode.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/devnode/devnode.c b/devnode/devnode.c
index 2802471..a5120d7 100644
--- a/devnode/devnode.c
+++ b/devnode/devnode.c
@@ -153,12 +153,20 @@ ds_device_open (mach_port_t master_port, mach_port_t 
reply_port,
 
   if (master_file != NULL)
     {
-      if (master_device != MACH_PORT_NULL)
+      mach_port_t md;
+      if (MACH_PORT_VALID (master_device))
         mach_port_deallocate (mach_task_self (), master_device);
-
-      master_device = file_name_lookup (master_file, 0, 0);
-      if (master_device == MACH_PORT_NULL)
-        error (1, errno, "file_name_lookup");
+      md = file_name_lookup (master_file, 0, 0);
+      if (MACH_PORT_VALID (md))
+        master_device = md;
+      else
+        {
+          error (0, 0, "%s: %s.\nFalling back to kernel driver.",
+                 master_file, strerror (errno));
+          err = get_privileged_ports (0, &master_device);
+          if (err)
+            return err;
+        }
     }
 
   err = device_open (master_device, mode, device_name, device); 
@@ -298,7 +306,8 @@ parse_opt (int opt, char *arg, struct argp_state *state)
       master_file = arg;
       master_device = file_name_lookup (arg, 0, 0);
       if (master_device == MACH_PORT_NULL)
-       error (1, errno, "file_name_lookup");
+       error (0, 0, "%s: %s.\nFalling back to kernel driver.",
+               arg, strerror (errno));
       break;
     case 'n':
       user_device_name = arg;

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



reply via email to

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