mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
Revert "test_firmware: Test platform fw loading on non-EFI systems"
This reverts commit2d38dbf89a
as it broke the build in linux-next Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Fixes:2d38dbf89a
("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>
This commit is contained in:
parent
4fb60b158a
commit
280c7f95f8
4 changed files with 18 additions and 40 deletions
|
@ -14,22 +14,11 @@
|
||||||
#include <linux/vmalloc.h>
|
#include <linux/vmalloc.h>
|
||||||
#include <crypto/sha.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 */
|
/* 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_list);
|
||||||
EXPORT_SYMBOL_GPL(efi_embedded_fw_checked);
|
|
||||||
#endif
|
static bool checked_for_fw;
|
||||||
|
|
||||||
static const struct dmi_system_id * const embedded_fw_table[] = {
|
static const struct dmi_system_id * const embedded_fw_table[] = {
|
||||||
#ifdef CONFIG_TOUCHSCREEN_DMI
|
#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)
|
int efi_get_embedded_fw(const char *name, const u8 **data, size_t *size)
|
||||||
{
|
{
|
||||||
struct efi_embedded_fw *iter, *fw = NULL;
|
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",
|
pr_warn("Warning %s called while we did not check for embedded fw\n",
|
||||||
__func__);
|
__func__);
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
|
@ -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_ */
|
|
|
@ -7,6 +7,19 @@
|
||||||
|
|
||||||
#define EFI_EMBEDDED_FW_PREFIX_LEN 8
|
#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
|
* struct efi_embedded_fw_desc - This struct is used by the EFI embedded-fw
|
||||||
* code to search for embedded firmwares.
|
* code to search for embedded firmwares.
|
||||||
|
|
|
@ -489,7 +489,6 @@ out:
|
||||||
static DEVICE_ATTR_WO(trigger_request);
|
static DEVICE_ATTR_WO(trigger_request);
|
||||||
|
|
||||||
#ifdef CONFIG_EFI_EMBEDDED_FIRMWARE
|
#ifdef CONFIG_EFI_EMBEDDED_FIRMWARE
|
||||||
#include "../drivers/firmware/efi/embedded-firmware.h"
|
|
||||||
static ssize_t trigger_request_platform_store(struct device *dev,
|
static ssize_t trigger_request_platform_store(struct device *dev,
|
||||||
struct device_attribute *attr,
|
struct device_attribute *attr,
|
||||||
const char *buf, size_t count)
|
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;
|
struct efi_embedded_fw efi_embedded_fw;
|
||||||
const struct firmware *firmware = NULL;
|
const struct firmware *firmware = NULL;
|
||||||
bool saved_efi_embedded_fw_checked;
|
|
||||||
char *name;
|
char *name;
|
||||||
int rc;
|
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.data = (void *)test_data;
|
||||||
efi_embedded_fw.length = sizeof(test_data);
|
efi_embedded_fw.length = sizeof(test_data);
|
||||||
list_add(&efi_embedded_fw.list, &efi_embedded_fw_list);
|
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);
|
pr_info("loading '%s'\n", name);
|
||||||
rc = firmware_request_platform(&firmware, name, dev);
|
rc = firmware_request_platform(&firmware, name, dev);
|
||||||
|
@ -534,7 +530,6 @@ static ssize_t trigger_request_platform_store(struct device *dev,
|
||||||
rc = count;
|
rc = count;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
efi_embedded_fw_checked = saved_efi_embedded_fw_checked;
|
|
||||||
release_firmware(firmware);
|
release_firmware(firmware);
|
||||||
list_del(&efi_embedded_fw.list);
|
list_del(&efi_embedded_fw.list);
|
||||||
kfree(name);
|
kfree(name);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue