From 86a7a2f853fe6022c5b0c1b415918047b65533be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20B=C3=A4chler?= Date: Sun, 31 Jan 2010 13:49:02 +0100 Subject: [PATCH] firmware: fix error reporting on missing firmware files The new firmware loader does not report an error to the kernel if a firmware file is missing. This results in modprobe stalling for 60 seconds for each firmware a module tries to load. --- extras/firmware/firmware.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extras/firmware/firmware.c b/extras/firmware/firmware.c index 8f70be42a..16455dec8 100644 --- a/extras/firmware/firmware.c +++ b/extras/firmware/firmware.c @@ -149,6 +149,7 @@ int main(int argc, char **argv) util_path_encode(firmware, fwencpath, sizeof(fwencpath)); util_strscpyl(misspath, sizeof(misspath), udev_get_dev_path(udev), "/.udev/firmware-missing/", fwencpath, NULL); + util_strscpyl(loadpath, sizeof(loadpath), udev_get_sys_path(udev), devpath, "/loading", NULL); if (fwfile == NULL) { int err; @@ -166,6 +167,7 @@ int main(int argc, char **argv) udev_selinux_resetfscreatecon(udev); } while (err == -ENOENT); rc = 2; + set_loading(udev, loadpath, "-1"); goto exit; } @@ -176,7 +178,6 @@ int main(int argc, char **argv) if (unlink(misspath) == 0) util_delete_path(udev, misspath); - util_strscpyl(loadpath, sizeof(loadpath), udev_get_sys_path(udev), devpath, "/loading", NULL); set_loading(udev, loadpath, "1"); util_strscpyl(datapath, sizeof(datapath), udev_get_sys_path(udev), devpath, "/data", NULL); -- 2.30.2