Re: [PATCH 3/3] platform/x86: lenovo-wmi-other: Balance component bind and unbind

From: Ilpo Järvinen

Date: Thu Apr 09 2026 - 08:32:26 EST


On Thu, 2 Apr 2026, Rong Zhang wrote:

> When lwmi_om_master_bind() fails, the master device's components are
> left bound, with the aggregate device destroyed due to the failure
> (found by sashiko.dev [1]).
>
> Balance calls to component_bind_all() and component_unbind_all() when an
> error is propagated to the component framework.
>
> No functional change intended.
>
> Fixes: edc4b183b794 ("platform/x86: Add Lenovo Other Mode WMI Driver")
> Cc: stable@xxxxxxxxxxxxxxx
> Link: https://sashiko.dev/#/patchset/20260331181208.421552-1-derekjohn.clark%40gmail.com [1]
> Signed-off-by: Rong Zhang <i@xxxxxxxx>
> ---
> drivers/platform/x86/lenovo/wmi-other.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/lenovo/wmi-other.c b/drivers/platform/x86/lenovo/wmi-other.c
> index b47418df099f..4b47b5886e33 100644
> --- a/drivers/platform/x86/lenovo/wmi-other.c
> +++ b/drivers/platform/x86/lenovo/wmi-other.c
> @@ -1068,8 +1068,11 @@ static int lwmi_om_master_bind(struct device *dev)
>
> priv->cd00_list = binder.cd00_list;
> priv->cd01_list = binder.cd01_list;
> - if (!priv->cd00_list || !priv->cd01_list)
> + if (!priv->cd00_list || !priv->cd01_list) {
> + component_unbind_all(dev, NULL);
> +
> return -ENODEV;
> + }
>
> lwmi_om_fan_info_collect_cd00(priv);
>
>

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>

--
i.