Merge tag 'char-misc-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc driver updates from Greg KH: "Here is the big set of char, misc, and other assorted driver subsystem patches for 5.10-rc1. There's a lot of different things in here, all over the drivers/ directory. Some summaries: - soundwire driver updates - habanalabs driver updates - extcon driver updates - nitro_enclaves new driver - fsl-mc driver and core updates - mhi core and bus updates - nvmem driver updates - eeprom driver updates - binder driver updates and fixes - vbox minor bugfixes - fsi driver updates - w1 driver updates - coresight driver updates - interconnect driver updates - misc driver updates - other minor driver updates All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (396 commits) binder: fix UAF when releasing todo list docs: w1: w1_therm: Fix broken xref, mistakes, clarify text misc: Kconfig: fix a HISI_HIKEY_USB dependency LSM: Fix type of id parameter in kernel_post_load_data prototype misc: Kconfig: add a new dependency for HISI_HIKEY_USB firmware_loader: fix a kernel-doc markup w1: w1_therm: make w1_poll_completion static binder: simplify the return expression of binder_mmap test_firmware: Test partial read support firmware: Add request_partial_firmware_into_buf() firmware: Store opt_flags in fw_priv fs/kernel_file_read: Add "offset" arg for partial reads IMA: Add support for file reads without contents LSM: Add "contents" flag to kernel_read_file hook module: Call security_kernel_post_load_data() firmware_loader: Use security_post_load_data() LSM: Introduce kernel_post_load_data() hook fs/kernel_read_file: Add file_size output argument fs/kernel_read_file: Switch buffer size arg to size_t fs/kernel_read_file: Remove redundant size argument ...
This commit is contained in:
@@ -272,9 +272,9 @@ static ssize_t firmware_loading_store(struct device *dev,
|
||||
dev_err(dev, "%s: map pages failed\n",
|
||||
__func__);
|
||||
else
|
||||
rc = security_kernel_post_read_file(NULL,
|
||||
fw_priv->data, fw_priv->size,
|
||||
READING_FIRMWARE);
|
||||
rc = security_kernel_post_load_data(fw_priv->data,
|
||||
fw_priv->size,
|
||||
LOADING_FIRMWARE, "blob");
|
||||
|
||||
/*
|
||||
* Same logic as fw_load_abort, only the DONE bit
|
||||
@@ -490,13 +490,11 @@ exit:
|
||||
/**
|
||||
* fw_load_sysfs_fallback() - load a firmware via the sysfs fallback mechanism
|
||||
* @fw_sysfs: firmware sysfs information for the firmware to load
|
||||
* @opt_flags: flags of options, FW_OPT_*
|
||||
* @timeout: timeout to wait for the load
|
||||
*
|
||||
* In charge of constructing a sysfs fallback interface for firmware loading.
|
||||
**/
|
||||
static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs,
|
||||
u32 opt_flags, long timeout)
|
||||
static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs, long timeout)
|
||||
{
|
||||
int retval = 0;
|
||||
struct device *f_dev = &fw_sysfs->dev;
|
||||
@@ -518,7 +516,7 @@ static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs,
|
||||
list_add(&fw_priv->pending_list, &pending_fw_head);
|
||||
mutex_unlock(&fw_lock);
|
||||
|
||||
if (opt_flags & FW_OPT_UEVENT) {
|
||||
if (fw_priv->opt_flags & FW_OPT_UEVENT) {
|
||||
fw_priv->need_uevent = true;
|
||||
dev_set_uevent_suppress(f_dev, false);
|
||||
dev_dbg(f_dev, "firmware: requesting %s\n", fw_priv->fw_name);
|
||||
@@ -580,10 +578,10 @@ static int fw_load_from_user_helper(struct firmware *firmware,
|
||||
}
|
||||
|
||||
fw_sysfs->fw_priv = firmware->priv;
|
||||
ret = fw_load_sysfs_fallback(fw_sysfs, opt_flags, timeout);
|
||||
ret = fw_load_sysfs_fallback(fw_sysfs, timeout);
|
||||
|
||||
if (!ret)
|
||||
ret = assign_fw(firmware, device, opt_flags);
|
||||
ret = assign_fw(firmware, device);
|
||||
|
||||
out_unlock:
|
||||
usermodehelper_read_unlock();
|
||||
@@ -613,7 +611,7 @@ static bool fw_run_sysfs_fallback(u32 opt_flags)
|
||||
return false;
|
||||
|
||||
/* Also permit LSMs and IMA to fail firmware sysfs fallback */
|
||||
ret = security_kernel_load_data(LOADING_FIRMWARE);
|
||||
ret = security_kernel_load_data(LOADING_FIRMWARE, true);
|
||||
if (ret < 0)
|
||||
return false;
|
||||
|
||||
@@ -625,7 +623,8 @@ static bool fw_run_sysfs_fallback(u32 opt_flags)
|
||||
* @fw: pointer to firmware image
|
||||
* @name: name of firmware file to look for
|
||||
* @device: device for which firmware is being loaded
|
||||
* @opt_flags: options to control firmware loading behaviour
|
||||
* @opt_flags: options to control firmware loading behaviour, as defined by
|
||||
* &enum fw_opt
|
||||
* @ret: return value from direct lookup which triggered the fallback mechanism
|
||||
*
|
||||
* This function is called if direct lookup for the firmware failed, it enables
|
||||
|
Reference in New Issue
Block a user