[PATCH] Fix error reporting on missing firmware files

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

 



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 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/extras/firmware/firmware.c b/extras/firmware/firmware.c
index 8f70be4..16455de 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);
-- 
1.6.6.1

--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux