Revert "test_firmware: Test platform fw loading on non-EFI systems"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jul 2020 10:14:28 +0000 (12:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jul 2020 10:14:28 +0000 (12:14 +0200)
This reverts commit 2d38dbf89a06d0f689daec9842c5d3295c49777f as it broke
the build in linux-next

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: 2d38dbf89a06 ("test_firmware: Test platform fw loading on non-EFI systems")
Cc: stable@vger.kernel.org
Cc: Scott Branden <scott.branden@broadcom.com>
Cc: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20200727165539.0e8797ab@canb.auug.org.au
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firmware/efi/embedded-firmware.c
drivers/firmware/efi/embedded-firmware.h [deleted file]
include/linux/efi_embedded_fw.h
lib/test_firmware.c

index 0fb03cd0a5a2152cc6702a4081f557ae1e1780a0..a1b199de9006e362c5c6a2ca6fcbba016bd661f7 100644 (file)
 #include <linux/vmalloc.h>
 #include <crypto/sha.h>
 
-#include "embedded-firmware.h"
-
-#ifdef CONFIG_TEST_FIRMWARE
-# define EFI_EMBEDDED_FW_VISIBILITY
-#else
-# define EFI_EMBEDDED_FW_VISIBILITY static
-#endif
-
-EFI_EMBEDDED_FW_VISIBILITY LIST_HEAD(efi_embedded_fw_list);
-EFI_EMBEDDED_FW_VISIBILITY bool efi_embedded_fw_checked;
-
 /* Exported for use by lib/test_firmware.c only */
-#ifdef CONFIG_TEST_FIRMWARE
+LIST_HEAD(efi_embedded_fw_list);
 EXPORT_SYMBOL_GPL(efi_embedded_fw_list);
-EXPORT_SYMBOL_GPL(efi_embedded_fw_checked);
-#endif
+
+static bool checked_for_fw;
 
 static const struct dmi_system_id * const embedded_fw_table[] = {
 #ifdef CONFIG_TOUCHSCREEN_DMI
@@ -130,14 +119,14 @@ void __init efi_check_for_embedded_firmwares(void)
                }
        }
 
-       efi_embedded_fw_checked = true;
+       checked_for_fw = true;
 }
 
 int efi_get_embedded_fw(const char *name, const u8 **data, size_t *size)
 {
        struct efi_embedded_fw *iter, *fw = NULL;
 
-       if (!efi_embedded_fw_checked) {
+       if (!checked_for_fw) {
                pr_warn("Warning %s called while we did not check for embedded fw\n",
                        __func__);
                return -ENOENT;
diff --git a/drivers/firmware/efi/embedded-firmware.h b/drivers/firmware/efi/embedded-firmware.h
deleted file mode 100644 (file)
index 3411331..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _EFI_EMBEDDED_FW_INTERNAL_H_
-#define _EFI_EMBEDDED_FW_INTERNAL_H_
-
-/*
- * This struct and efi_embedded_fw_list are private to the efi-embedded fw
- * implementation they only in separate header for use by lib/test_firmware.c.
- */
-struct efi_embedded_fw {
-       struct list_head list;
-       const char *name;
-       const u8 *data;
-       size_t length;
-};
-
-extern struct list_head efi_embedded_fw_list;
-extern bool efi_embedded_fw_checked;
-
-#endif /* _EFI_EMBEDDED_FW_INTERNAL_H_ */
index 4ad5db9f5312c60a1d0795adf37314dcbd80a985..57eac5241303af5a66c3f39746f09dbbf3b477c7 100644 (file)
@@ -7,6 +7,19 @@
 
 #define EFI_EMBEDDED_FW_PREFIX_LEN             8
 
+/*
+ * This struct and efi_embedded_fw_list are private to the efi-embedded fw
+ * implementation they are in this header for use by lib/test_firmware.c only!
+ */
+struct efi_embedded_fw {
+       struct list_head list;
+       const char *name;
+       const u8 *data;
+       size_t length;
+};
+
+extern struct list_head efi_embedded_fw_list;
+
 /**
  * struct efi_embedded_fw_desc - This struct is used by the EFI embedded-fw
  *                               code to search for embedded firmwares.
index 62af792e151c298c27350759c65624f5173dbf78..9fee2b93a8d18c0d2a343ec4e3d3fd173b3c62d2 100644 (file)
@@ -489,7 +489,6 @@ out:
 static DEVICE_ATTR_WO(trigger_request);
 
 #ifdef CONFIG_EFI_EMBEDDED_FIRMWARE
-#include "../drivers/firmware/efi/embedded-firmware.h"
 static ssize_t trigger_request_platform_store(struct device *dev,
                                              struct device_attribute *attr,
                                              const char *buf, size_t count)
@@ -502,7 +501,6 @@ static ssize_t trigger_request_platform_store(struct device *dev,
        };
        struct efi_embedded_fw efi_embedded_fw;
        const struct firmware *firmware = NULL;
-       bool saved_efi_embedded_fw_checked;
        char *name;
        int rc;
 
@@ -515,8 +513,6 @@ static ssize_t trigger_request_platform_store(struct device *dev,
        efi_embedded_fw.data = (void *)test_data;
        efi_embedded_fw.length = sizeof(test_data);
        list_add(&efi_embedded_fw.list, &efi_embedded_fw_list);
-       saved_efi_embedded_fw_checked = efi_embedded_fw_checked;
-       efi_embedded_fw_checked = true;
 
        pr_info("loading '%s'\n", name);
        rc = firmware_request_platform(&firmware, name, dev);
@@ -534,7 +530,6 @@ static ssize_t trigger_request_platform_store(struct device *dev,
        rc = count;
 
 out:
-       efi_embedded_fw_checked = saved_efi_embedded_fw_checked;
        release_firmware(firmware);
        list_del(&efi_embedded_fw.list);
        kfree(name);