diff options
-rw-r--r-- | debian/patches/fix-devnode0001-devnode-fix-falling-back-to-the-kernel-driver.patch | 55 | ||||
-rw-r--r-- | debian/patches/series | 1 |
2 files changed, 56 insertions, 0 deletions
diff --git a/debian/patches/fix-devnode0001-devnode-fix-falling-back-to-the-kernel-driver.patch b/debian/patches/fix-devnode0001-devnode-fix-falling-back-to-the-kernel-driver.patch new file mode 100644 index 00000000..48706c66 --- /dev/null +++ b/debian/patches/fix-devnode0001-devnode-fix-falling-back-to-the-kernel-driver.patch @@ -0,0 +1,55 @@ +From ef4a4280e0f372c26f9c5fe2068312b443f82d24 Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Sat, 2 Jan 2016 19:18:40 +0100 +Subject: [PATCH hurd] 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; +-- +2.1.4 + diff --git a/debian/patches/series b/debian/patches/series index 2636bdd7..711b6eb9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -37,3 +37,4 @@ translators-list0002-fu.patch translators-list0003-libfshelp-improve-translator-list.patch translators-list0004-add-iteration.patch nodeihash0001-xxx-fix-node-iteration.patch +fix-devnode0001-devnode-fix-falling-back-to-the-kernel-driver.patch |