Skip to content

Commit

Permalink
Revert "test_firmware: Test platform fw loading on non-EFI systems"
Browse files Browse the repository at this point in the history
This reverts commit 2d38dbf as it broke
the build in linux-next

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: 2d38dbf ("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>
  • Loading branch information
Greg Kroah-Hartman committed Jul 27, 2020
1 parent 4fb60b1 commit 280c7f9
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 40 deletions.
21 changes: 5 additions & 16 deletions drivers/firmware/efi/embedded-firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,11 @@
#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
Expand Down Expand Up @@ -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;
Expand Down
19 changes: 0 additions & 19 deletions drivers/firmware/efi/embedded-firmware.h

This file was deleted.

13 changes: 13 additions & 0 deletions include/linux/efi_embedded_fw.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
5 changes: 0 additions & 5 deletions lib/test_firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,6 @@ static ssize_t trigger_request_store(struct device *dev,
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)
Expand All @@ -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;

Expand All @@ -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);
Expand All @@ -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);
Expand Down

0 comments on commit 280c7f9

Please sign in to comment.