Message ID | 20211215004704.25215-1-me@tobias.gr |
---|---|
State | Accepted |
Headers | show |
Series | [bug#52498] linux-modules: Ignore EINVAL in ‘modprobe’ mode. | expand |
On Wed, Dec 15, 2021 at 01:47:04AM +0100, Tobias Geerinckx-Rice via Guix-patches via wrote: > Loading the framebuffer-coreboot module simply fails with EINVAL on a > non-Corebooted system. Crashing the system with a kernel panic is not > a reasonable reaction to loading valid modules on unsupported hardware. > The kernel should log an error, which the user is expected to see. > > Bogus module names will still be fatally reported by linux-modules.drv. > > * gnu/build/linux-modules.scm (load-linux-module*): > Ignore EINVAL errors when operating recursively. Thanks, pushed as 13f13554433c9dd47503131107dfbdd8a8031832
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index 3a47322065..053720574b 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -354,11 +354,13 @@ (define (load-dependencies file) (close-fdes fd) #t) (lambda args - ;; If this module was already loaded and we're in modprobe style, ignore - ;; the error. (when fd (close-fdes fd)) - (or (and recursive? (= EEXIST (system-error-errno args))) - (apply throw args))))))) + (let ((errno (system-error-errno args))) + (or (and recursive? ; we're operating in ‘modprobe’ style + (member errno + (list EEXIST ; already loaded + EINVAL))) ; unsupported by hardware + (apply throw args)))))))) (define (load-linux-modules-from-directory modules directory) "Load MODULES and their dependencies from DIRECTORY, a directory containing