diff options
-rw-r--r-- | gnu/build/linux-modules.scm | 6 | ||||
-rw-r--r-- | gnu/packages/patches/guile-linux-syscalls.patch | 9 |
2 files changed, 3 insertions, 12 deletions
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index 0fa09b2912..a3bc7d6e33 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -160,11 +160,7 @@ module name." (lambda args ;; If this module was already loaded and we're in modprobe style, ignore ;; the error. - - ;; FIXME: Use errno once 'guile-linux-syscalls.patch' provides a useful - ;; errno here. - (unless (and recursive? - (module-loaded? (string-drop-right (basename file) 3))) + (unless (and recursive? (= EEXIST (system-error-errno args))) (apply throw args))))) ;;; linux-modules.scm ends here diff --git a/gnu/packages/patches/guile-linux-syscalls.patch b/gnu/packages/patches/guile-linux-syscalls.patch index 1fb24bde27..57c7f2589d 100644 --- a/gnu/packages/patches/guile-linux-syscalls.patch +++ b/gnu/packages/patches/guile-linux-syscalls.patch @@ -7,7 +7,7 @@ diff --git a/libguile/posix.c b/libguile/posix.c index 324f21b..cbee94d 100644 --- a/libguile/posix.c +++ b/libguile/posix.c -@@ -2286,6 +2286,266 @@ scm_init_popen (void) +@@ -2286,6 +2286,261 @@ scm_init_popen (void) } #endif @@ -84,12 +84,7 @@ index 324f21b..cbee94d 100644 + free (c_options); + + if (err != 0) -+ { -+ /* XXX: `insmod' actually provides better translation of some of -+ the error codes. */ -+ errno = err; -+ SCM_SYSERROR; -+ } ++ SCM_SYSERROR; + + return SCM_UNSPECIFIED; +} |