From cfc1009bd40d5e369dac3fa97e3387ec066c20fd Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Wed, 27 Oct 2021 05:10:41 -0400 Subject: [PATCH 1/1] GNU Linux-libre 4.9.288-gnu1 scripts --- deblob-4.9 | 49 +++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/deblob-4.9 b/deblob-4.9 index 0191a238422e..247752fad580 100755 --- a/deblob-4.9 +++ b/deblob-4.9 @@ -395,7 +395,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\ @@ -403,18 +403,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\ @@ -431,17 +433,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,\ @@ -450,14 +450,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,\ @@ -486,7 +482,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);\ @@ -3383,6 +3379,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 -- 2.31.1