The branch main has been updated by bz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=37c3241a43160dd236bd4767fce46e846cb17227

commit 37c3241a43160dd236bd4767fce46e846cb17227
Author:     Bjoern A. Zeeb <[email protected]>
AuthorDate: 2021-03-31 15:25:01 +0000
Commit:     Bjoern A. Zeeb <[email protected]>
CommitDate: 2021-04-02 10:03:39 +0000

    LinuxKPI: treat firmware file names more lenient
    
    A lot of firmware files have a "-" in the name.  That "-" is a problem
    when dealing with shell variables or loader (e.g., auto-loading .ko).
    It may thus often be convenient to generate firmware kernel object files
    with s/-/_/g in the name.  In order to automatically find them from
    drivers using LinuxKPI also substitue the '-' for a '_' like we do
    for '/' and '.' already.
    
    Reviewed-by:    hselasky, manu (ok)
    MFC-after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D29514
---
 sys/compat/linuxkpi/common/src/linux_firmware.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_firmware.c 
b/sys/compat/linuxkpi/common/src/linux_firmware.c
index 75147a311827..289779c5246c 100644
--- a/sys/compat/linuxkpi/common/src/linux_firmware.c
+++ b/sys/compat/linuxkpi/common/src/linux_firmware.c
@@ -85,9 +85,10 @@ _linuxkpi_request_firmware(const char *fw_name, const struct 
linuxkpi_firmware *
                fwimg = fw_name;
                fbdfw = firmware_get_flags(fwimg, flags);
        }
-       /* (3) Flatten '/' and then '.' to '_' and try with adjusted name. */
+       /* (3) Flatten '/', '.' and '-' to '_' and try with adjusted name. */
        if (fbdfw == NULL &&
-           (strchr(fw_name, '/') != NULL || strchr(fw_name, '.') != NULL)) {
+           (strchr(fw_name, '/') != NULL || strchr(fw_name, '.') != NULL ||
+           strchr(fw_name, '-'))) {
                fwimg = strdup(fw_name, M_LKPI_FW);
                if (fwimg != NULL) {
                        while ((p = strchr(fwimg, '/')) != NULL)
@@ -98,6 +99,11 @@ _linuxkpi_request_firmware(const char *fw_name, const struct 
linuxkpi_firmware *
                                        *p = '_';
                                fbdfw = firmware_get_flags(fwimg, flags);
                        }
+                       if (fbdfw == NULL) {
+                               while ((p = strchr(fwimg, '-')) != NULL)
+                                       *p = '_';
+                               fbdfw = firmware_get_flags(fwimg, flags);
+                       }
                        free(__DECONST(void *, fwimg), M_LKPI_FW);
                }
        }
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "[email protected]"

Reply via email to