X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=deblob-4.4;h=be9aea6bec3f7754ac72b56d0bf466f02455cf26;hb=97bedd83912ef426b5621245847518d02ebe248a;hp=431d130268327a92430baf04832991d051322c91;hpb=ebe0ea850e02a88bcd3b9cce0422d4e12777bc09;p=releases.git diff --git a/deblob-4.4 b/deblob-4.4 index 431d13026832..be9aea6bec3f 100755 --- a/deblob-4.4 +++ b/deblob-4.4 @@ -396,7 +396,7 @@ clean_sed '$i\ static inline int\ is_nonfree_firmware(const char *name)\ {\ - return strstr(name, NONFREE_FIRMWARE) != 0;\ + return strstr(name, NONFREE_FIRMWARE) != 0;\ }\ \ static inline int\ @@ -404,18 +404,20 @@ report_missing_free_firmware(const char *name, const char *what)\ {\ printk(KERN_ERR "%s: Missing Free %s (non-Free firmware loading is disabled)\\n", name,\ what ? what : "firmware");\ - return -EINVAL;\ + return -ENOENT;\ }\ static inline int\ reject_firmware(const struct firmware **fw,\ const char *name, struct device *device)\ {\ const struct firmware *xfw = NULL;\ - int retval;\ - report_missing_free_firmware(dev_name(device), NULL);\ + int retval, retval0;\ + retval0 = report_missing_free_firmware(dev_name(device), NULL);\ retval = request_firmware(&xfw, NONFREE_FIRMWARE, device);\ - if (!retval)\ + if (!retval) {\ release_firmware(xfw);\ + retval = retval0;\ + }\ return -EINVAL;\ }\ static inline int\ @@ -432,17 +434,15 @@ reject_firmware_direct(const struct firmware **fw,\ const char *name, struct device *device)\ {\ const struct firmware *xfw = NULL;\ - int retval;\ - report_missing_free_firmware(dev_name(device), NULL);\ + int retval, retval0;\ + if (fw) *fw = xfw;\ + retval0 = report_missing_free_firmware(dev_name(device), NULL);\ retval = request_firmware_direct(&xfw, NONFREE_FIRMWARE, device);\ - if (!retval)\ + if (!retval) {\ release_firmware(xfw);\ - return -EINVAL;\ -}\ -static inline void\ -discard_rejected_firmware(const struct firmware *fw, void *context)\ -{\ - release_firmware(fw);\ + retval = retval0;\ + }\ + return retval;\ }\ static inline int\ reject_firmware_nowait(struct module *module, int uevent,\ @@ -451,14 +451,10 @@ reject_firmware_nowait(struct module *module, int uevent,\ void (*cont)(const struct firmware *fw,\ void *context))\ {\ - int retval;\ report_missing_free_firmware(dev_name(device), NULL);\ - retval = request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\ - device, gfp, NULL,\ - discard_rejected_firmware);\ - if (retval)\ - return retval;\ - return -EINVAL;\ + /* We assume NONFREE_FIRMWARE will not be found; how could it? */\ + return request_firmware_nowait(module, uevent, NONFREE_FIRMWARE,\ + device, gfp, context, cont);\ }\ static inline int\ maybe_reject_firmware_nowait(struct module *module, int uevent,\ @@ -487,7 +483,7 @@ static inline int\ maybe_reject_ihex_firmware(const struct firmware **fw,\ const char *name, struct device *device)\ {\ - if (strstr (name, NONFREE_FIRMWARE))\ + if (is_nonfree_firmware(name))\ return reject_firmware(fw, name, device);\ else\ return request_ihex_firmware(fw, name, device);\ @@ -1761,7 +1757,10 @@ clean_mk CONFIG_B43 drivers/net/wireless/b43/Makefile announce B43LEGACY - "Broadcom 43xx-legacy wireless support (mac80211 stack)" reject_firmware drivers/net/wireless/b43legacy/main.c -# Major portions of firwmare filenames not deblobbed. +clean_sed ' +{ + s,^\([\t]*filename = "\)\(ucode\|pcm\|[^ "]*initvals\)[0-9][^ ."]*";,\1/*(DEBLOBBED)*/";,g +}' drivers/net/wireless/b43legacy/main.c 'cleaned up blob basenames' clean_blob drivers/net/wireless/b43legacy/main.c clean_kconfig drivers/net/wireless/b43legacy/Kconfig B43LEGACY clean_mk CONFIG_B43LEGACY drivers/net/wireless/b43legacy/Makefile @@ -3208,6 +3207,15 @@ clean_blob firmware/WHENCE if $errors; then echo errors above were ignored because of --force >&2 +else + echo cleaning up has completed successfully, without verification >&2 + # Verification is largely manual, comparing the changes with + # those of a previous known (presumed) good version, e.g. + # git merge the previous known good version onto the current base + # version, and then git diff with this cleaned-up version. + # Creating a tarball of this version, named linux-*.*.tar, + # and running deblob-check on it may also help catch cleaning-up + # errors: .../deblob-check --use-awk -B linux-*.*.tar. fi exit 0