diff options
| author | Nathan Chancellor <nathan@kernel.org> | 2025-09-19 13:43:11 -0700 | 
|---|---|---|
| committer | Nathan Chancellor <nathan@kernel.org> | 2025-09-19 13:43:11 -0700 | 
| commit | 95ee3364b29313a7587b7d1e42a9d043aaf7e592 (patch) | |
| tree | cefa28373f4ee2c696925a0d68363987150bc8c6 /drivers/platform/x86/dell/dell-smbios-base.c | |
| parent | aa943a280e88e3585ed5a06d55e78c4123fcead3 (diff) | |
| parent | f83ec76bf285bea5727f478a68b894f5543ca76e (diff) | |
Merge 6.17-rc6 into kbuild-next
Commit bd7c2312128e ("pinctrl: meson: Fix typo in device table macro")
is needed in kbuild-next to avoid a build error with a future change.
While at it, address the conflict between commit 41f9049cff32 ("riscv:
Only allow LTO with CMODEL_MEDANY") and commit 6578a1ff6aa4 ("riscv:
Remove version check for LTO_CLANG selects"), as reported by Stephen
Rothwell [1].
Link: https://lore.kernel.org/20250908134913.68778b7b@canb.auug.org.au/ [1]
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Diffstat (limited to 'drivers/platform/x86/dell/dell-smbios-base.c')
| -rw-r--r-- | drivers/platform/x86/dell/dell-smbios-base.c | 19 | 
1 files changed, 9 insertions, 10 deletions
| diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c index 01c72b91a50d..444786102f02 100644 --- a/drivers/platform/x86/dell/dell-smbios-base.c +++ b/drivers/platform/x86/dell/dell-smbios-base.c @@ -39,6 +39,7 @@ struct token_sysfs_data {  struct smbios_device {  	struct list_head list;  	struct device *device; +	int priority;  	int (*call_fn)(struct calling_interface_buffer *arg);  }; @@ -145,7 +146,7 @@ int dell_smbios_error(int value)  }  EXPORT_SYMBOL_GPL(dell_smbios_error); -int dell_smbios_register_device(struct device *d, void *call_fn) +int dell_smbios_register_device(struct device *d, int priority, void *call_fn)  {  	struct smbios_device *priv; @@ -154,6 +155,7 @@ int dell_smbios_register_device(struct device *d, void *call_fn)  		return -ENOMEM;  	get_device(d);  	priv->device = d; +	priv->priority = priority;  	priv->call_fn = call_fn;  	mutex_lock(&smbios_mutex);  	list_add_tail(&priv->list, &smbios_device_list); @@ -292,28 +294,25 @@ EXPORT_SYMBOL_GPL(dell_smbios_call_filter);  int dell_smbios_call(struct calling_interface_buffer *buffer)  { -	int (*call_fn)(struct calling_interface_buffer *) = NULL; -	struct device *selected_dev = NULL; +	struct smbios_device *selected = NULL;  	struct smbios_device *priv;  	int ret;  	mutex_lock(&smbios_mutex);  	list_for_each_entry(priv, &smbios_device_list, list) { -		if (!selected_dev || priv->device->id >= selected_dev->id) { -			dev_dbg(priv->device, "Trying device ID: %d\n", -				priv->device->id); -			call_fn = priv->call_fn; -			selected_dev = priv->device; +		if (!selected || priv->priority >= selected->priority) { +			dev_dbg(priv->device, "Trying device ID: %d\n", priv->priority); +			selected = priv;  		}  	} -	if (!selected_dev) { +	if (!selected) {  		ret = -ENODEV;  		pr_err("No dell-smbios drivers are loaded\n");  		goto out_smbios_call;  	} -	ret = call_fn(buffer); +	ret = selected->call_fn(buffer);  out_smbios_call:  	mutex_unlock(&smbios_mutex); | 
