Received: by 2002:a05:7412:f690:b0:e2:908c:2ebd with SMTP id ej16csp1288759rdb; Fri, 20 Oct 2023 14:11:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH04g4hg18YCTFAoDVWaT+wKrCbaACKCH6wG0soilh7qCIJhSy37oIS1p+bqnEC64UlaN5S X-Received: by 2002:a17:90b:1192:b0:261:685:95b6 with SMTP id gk18-20020a17090b119200b00261068595b6mr2951029pjb.13.1697836287386; Fri, 20 Oct 2023 14:11:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697836287; cv=none; d=google.com; s=arc-20160816; b=b34eCXX0BQ5h5i1whkTj0uKtv29Q5FFOx4SfJZgucxivYO0Jw4gB5JeAfrVMuRoHJK zcbkNShjS16HLY0rdJteHO5zhYwebXG5qznEAm+XmNJ+3uBGMDr+QQBQBmA17HdSwX7J t5/Jit43YxA5C7HC0jI7eCtixt0QUhbcvifsCDvd7UkCVw+NSVRY1QeZU4a/9rrayhIb MffpCG+H9Zy45Hwz4F2NJvKD29FvPdu7pQcYfXvrlxg7+fVCjXqxxxdZKnjQ/bb3eCUP +HIQjLFgZEWD8OxkfZ/WhD4LoEma3AS/iMYD1wul+wF0Y0vPo+WPG8cytp9VzGQbjpLB kVRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:ui-outboundreport:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=9Ook8IfyQoydJxFII3cfCezwFTXYvOl5pC/HrusLMZ0=; fh=mlGq6PayYEZsp/+lQoaQb08ZaGzsJscMQg2+wc8B3Uo=; b=wn7394t/5huk3JS6KV0zU0+lLfhYhbd5gbn4eDKRXV0M1bHqoEg7sI/MLkUq4/zW2y mJ+IHBPU36gzKDRufEcf4G8L1OpCZzgISO/I6cdx29MD6Pjq3a9GvratUYAskuWc0wPY 6ko9iJAFnQEJnChjBq0qgf42zjqevLFjmrO/YotNfkBCZW2fsWCeaBHPZ82Q/J2Viy9R JKpsjYWRXDBTtvZgSMfAMtZNg5hysM+I0lpf2VeynIEQUcJgAE3jvNHVaJxHtNfw+cq+ fmaSYqw5HUtiLbu9Z8G1oMOX93lIP5bK2BXUzL7UrFOypXF5ZlxAB3GneYlcVpQwMmNR rxuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b="Eh/dJbbs"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id go10-20020a17090b03ca00b00273e2f407casi4854011pjb.76.2023.10.20.14.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 14:11:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b="Eh/dJbbs"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id F21E883DB32D; Fri, 20 Oct 2023 14:11:22 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232841AbjJTVKj (ORCPT + 99 others); Fri, 20 Oct 2023 17:10:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230318AbjJTVK1 (ORCPT ); Fri, 20 Oct 2023 17:10:27 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBA4FD68; Fri, 20 Oct 2023 14:10:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1697836213; x=1698441013; i=w_armin@gmx.de; bh=mQwZ7HovL0XAV0BMMBNTr9Ft336d/JL1LOfzD0c2oJs=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=Eh/dJbbsnRvIaOb/QLKYI3GmINne3a2xuiYHq0DnFEeiRyeVXFKSVIH5KFTL36NL YhCkhm4rb9bpQKtdF4VhUw1u4xfoJHS61lIpHA4LhdXdifi4zLhBBrx5GQAEZKZxJ 3i/TNQjYfYrfWgkOZLRIY9vPLNqhxL/zLKnwmui4TwgE8b6gamhjPjSR1NxEz1Az3 QNNpDYZVucwLuOk0RjHFPuhZ0I07uHPsh0ZK3k79EhOKgGFyY3K6hFok0xalXCbc9 Vd9xuzZsanyFIXCXmLSk25A07/CpbaFfgB2JzyXvOpP6wvKSNB46L54z3KHcC9G+O irYXG4blPWRoojIkoA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MCbEf-1qkqCl3eN9-009exu; Fri, 20 Oct 2023 23:10:12 +0200 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, markgross@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/5] platform/x86: wmi: Fix probe failure when failing to register WMI devices Date: Fri, 20 Oct 2023 23:10:03 +0200 Message-Id: <20231020211005.38216-4-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231020211005.38216-1-W_Armin@gmx.de> References: <20231020211005.38216-1-W_Armin@gmx.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:K8Pj/GqNVdzXRi5ZvkOjbKr+5ZLjUujG7t6fVgbkc3m717NSP6V Y18A7m5/H1ElSS70TACGg0s4+zszPRBQdNBmlSu0yntNwkakCl+vkswZ37THoqauK53Njnz /M7Bg9mj/7UtKKdoM4//HwY0UWMURUUPyaWGdbuu9iMyUxHJUCO01yvvfvMYKjwQN7loDml 8XDfdskdYda4YvnAV/BaQ== UI-OutboundReport: notjunk:1;M01:P0:drImnaOOQ28=;AA/Bxy6dHJnX38U588CRcqYdFvo /jRkmv+JeN8SLIm4kh3GrVJAbSRyVKOBXH5rZP1EUYIKjo9Ew9rtrrZ8Xq0dTNAClLUAcYPMc 15uDjz66NLlLeba6LnOkydhmnz0NpZoyuR9U65hNEs/Nv+lF6USmavIXk9X90W0T+4e29nKA+ pPwaQKJNnIhibLU/IG6zcIVZzIrGR9Zsa57t3G7o208+UeN/3+InO3gvi5OIsz8NwkI83XKZ6 iWSwyvB67f/MrAZC1Bu6jsk/ZB3O3K3PUWZhWEGruED4U2Cqm/v3U/2WeF1jsKg8mDi1r9eFN PNpt89hteaJMaB4UT5uG17PA3pOkykCp1V3xOBdO9+zNJ1odVYa+0ss3qyXgXkSvwQacWnHmd 0yXKxuh64CCjfwVvXMM1Y0TtNKkw8Bx3q0cY7YGTI10OqHdzvPtswozKz/0IsyQe+++uvTRvt 7iCR0xMLnFTO0THocJShK2apS9uNfCuip/ADLzuzN4ssllLIN2trWFNrQ1ljqvid94AnZHhvg 4QikppiZspfFHJgxfYKNsDgEAOP1xq+pfGx2mZWmax/0W9MOXMu893F/twuDiaOSDTYc9JOK7 slGnwqaaFCiFwxeREF8TFd7GaqwRF/7uY7dI5RM4NaOT04eOf/e3jonbtGY7em0DDREc+9wxs 0IPZHIobq9f255Ipt1tWX70EDB39we3NzzxTvDSpmVXowfwLl+3flcA4xt7W3cWdBQ9B7kaZS iHNtOjI3MAs/Vlhj2OjEQN+ZjcK/R915Fi9OyDaQuobHi/lPv8W03HKqmM2Lt4qUQnLXNHLZ0 t/WujHUiHtTuIaH5Wzv561NSywc8t59TMa6zGv7rho7ZpHVtBec7G3OD+jqq0KmZa9eX5NRuk rRqAAgBikONjg0qlaeM01CRubWhUDPUHjOk9BxoEkKauQ3bVROT4gFT56myYBegwMH5vPM6Ah jqLnp+HT3Zyh7/KvZmcsj469OOA= X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Fri, 20 Oct 2023 14:11:23 -0700 (PDT) When a WMI device besides the first one somehow fails to register, retval is returned while still containing a negative error code. This causes the ACPI device failing to probe, leaving behind zombie WMI devices leading to various errors later. Fix this by handling the single error path separately and return 0 after trying to register all WMI devices. Also continue to register WMI devices even if some fail to allocate. Fixes: 6ee50aaa9a20 ("platform/x86: wmi: Instantiate all devices before ad= ding them") Signed-off-by: Armin Wolf =2D-- drivers/platform/x86/wmi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index e3984801883a..ab24ea9ffc9a 100644 =2D-- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1338,8 +1338,8 @@ static int parse_wdg(struct device *wmi_bus_dev, str= uct platform_device *pdev) struct wmi_block *wblock; union acpi_object *obj; acpi_status status; - int retval =3D 0; u32 i, total; + int retval; status =3D acpi_evaluate_object(device->handle, "_WDG", NULL, &out); if (ACPI_FAILURE(status)) @@ -1350,8 +1350,8 @@ static int parse_wdg(struct device *wmi_bus_dev, str= uct platform_device *pdev) return -ENXIO; if (obj->type !=3D ACPI_TYPE_BUFFER) { - retval =3D -ENXIO; - goto out_free_pointer; + kfree(obj); + return -ENXIO; } gblock =3D (const struct guid_block *)obj->buffer.pointer; @@ -1366,8 +1366,8 @@ static int parse_wdg(struct device *wmi_bus_dev, str= uct platform_device *pdev) wblock =3D kzalloc(sizeof(*wblock), GFP_KERNEL); if (!wblock) { - retval =3D -ENOMEM; - break; + dev_err(wmi_bus_dev, "Failed to allocate %pUL\n", &gblock[i].guid); + continue; } wblock->acpi_device =3D device; @@ -1398,9 +1398,9 @@ static int parse_wdg(struct device *wmi_bus_dev, str= uct platform_device *pdev) } } -out_free_pointer: - kfree(out.pointer); - return retval; + kfree(obj); + + return 0; } /* =2D- 2.39.2