diff -Nur udev-151.orig/extras/firmware/firmware.c udev-151/extras/firmware/firmware.c --- udev-151.orig/extras/firmware/firmware.c 2009-12-15 16:19:30.000000000 +0100 +++ udev-151/extras/firmware/firmware.c 2010-01-31 13:17:09.195896260 +0100 @@ -149,6 +149,7 @@ 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 @@ udev_selinux_resetfscreatecon(udev); } while (err == -ENOENT); rc = 2; + set_loading(udev, loadpath, "-1"); goto exit; } @@ -176,7 +178,6 @@ 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);