[package] base-files: Cancel firmware loading if file doesn't exist
[openwrt-10.03/.git] / package / base-files / files / sbin / hotplug-call
index 607ee2e9db8ff666bb2c8b71b909e1f857167e35..e56460de938171381c84d9780b40d75ca73b5c2d 100755 (executable)
@@ -5,12 +5,12 @@ export HOTPLUG_TYPE="$1"
 
 # bypass the normal hotplug path for firmware loading
 # would otherwise cause problems with drivers like bcm43xx
-[ "$HOTPLUG_TYPE" = "firmware" -a "$ACTION" = "add" ] && {
+[ -d /sys/firmware -a "firmware" = "$HOTPLUG_TYPE" -a "add" = "$ACTION" ] && {
        [ -f "/lib/firmware/$FIRMWARE" ] && {
                echo 1 > "/sys$DEVPATH/loading"
-               cp "/lib/firmware/$FIRMWARE" "/sys$DEVPATH/data"
+               dd if="/lib/firmware/$FIRMWARE" of="/sys$DEVPATH/data" bs=64k
                echo 0 > "/sys$DEVPATH/loading"
-       }
+       } || echo -1 > "/sys$DEVPATH/loading"
        exit 0
 }