From nobody Fri Dec 19 09:47:02 2025 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 255B81E530; Mon, 18 Dec 2023 19:24:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="F+cwJ0nc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1702927471; x=1703532271; i=w_armin@gmx.de; bh=wmxJqeTy+krnPbLSF9jAqQ4wf8RAiD4RO8JEKBF3GIA=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=F+cwJ0nclNhP1dXGLWJGMX7SZYRwJ4ILp1+U22mE3XV2bRyE7Hjj7dSVoX7PWgWj x7cT1VbX6WV6im5+z7U8LnRG5N/79H31/Uzeupb6FuqlaA8x6foPGDqBNoBY5psxd uUQcAdohzzpCUdIZoR8KnX27UQSEfRrvY5eVMPqxCzyu7qwknFF5mhPUz1TZDRzmh eOqqzsSrQbDWxD4YsmFk/piKGTmMzpWv1b9PZCXzesHZxwbEvSacPEOZcpwKLYEL0 fwpFBNZAGyyF4l2lof9cloU+BAlxe2aTasliZi/t3rCm9CGxLtqJevB61m9SPpgul mNg8fqfPZOk9RJsb7g== 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 (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mqs4f-1qtT020sBl-00mrtT; Mon, 18 Dec 2023 20:24:31 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/6] platform/x86: wmi: Remove unused variable in address space handler Date: Mon, 18 Dec 2023 20:24:15 +0100 Message-Id: <20231218192420.305411-2-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231218192420.305411-1-W_Armin@gmx.de> References: <20231218192420.305411-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:S8I+rtYqkd9hB4BTIOJFPQ8zHBXiz7Eg8j3NmD2nr4WczvFFA8y wujiEiadOwkeRBgz2LDLGy+g4hnPNzcZ9QReoZG3ccbaMUfBxm7QEVEgDytJmlk/Spkh8Gn MXftEV2FYALg9ZbOVhxJYURLme7UqXSDkIzE/o6Ws7UYFG+R9+MYPB3Hbf0vY6dXinuV9Xo OqZdkyQfdLOpRW3KM1ZUQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:pBc19rg6WvE=;ut8b/Ot7UHszPHkkeXIRDxXggIQ xgOKvUSiWRWz7dB/dHieWVkRL3HscBJEWGWS/W9gBLrRQq1UMwD7CNktv1Gp7oUMouyVFtn4O YzLTYJKKKq2GymeO+L1D55tH2WHclZSxxtAnm1idcy8OpIMSVTEv7TlZMhJP7GDps019b62So zvpCj1Gd9CIwxA1Wu0KowI6Phv2ubocXBNMEf30zlCma8zjgPvfoBX7n3U6AfI3P9wEWB2FKu vnPRSw/hGcwvWoIWp4xsZO2lFkuPgPtX43eXkL3akyZ/yX8gCWwPeFuOExn+dfHcjcmYUfE9u sMLHsokyCkd7SWWJh4A+iNVPLIENQuU1sYm+wz4GoK0RHk2/Vp30CaiEBpqijGNmyDv1jMgHy tTvthmzoLJjYshGexz4kjh8o2aI6yaQEpNKmKE5bciTyj2wAUiHHyDIkNSRGRra9gGBqKjn0j brebqpVEZzkeNGf/1MSPPmZO7btnNTP4zQkf6icZLxWczBUxth+6XlHYhEfHvC47JNxoVm1KV ZFan4LzudG7kY2iG6HTISt4MYb4iMVEd3c6yCDZGF0gqaVi8+Z53wKvCH7Jxvvxf5izReOULX DQp7Nn65XEGmROPhHahderl4ZDSCNoMmOx2egwAotGANmNg9EqzI43br3S+DiHMMX4jikK9wU c9hWhEdxH/V+VLGi+vCO9PgsmK/2hCbAXWIfY6zmGo92sG/j/kzSHS8kMu7R/v/hP0gmUSaEj Wm+uiS9NewfbnKGZYTto2/sSRI+5sSW6822ryB0boJ/lkdlrV3eXmrxHQ/fXHLB1phP2se6SW z+QE21tMw29SzGqIMAL7QGi0VQ6DUqIcYuq2/pZPkGMlOg7JGcvO5re1sA9pc5EnPnV5upOSF kc4DLt622flfN5VHPImXdpz1THs8aNsyv4/ugCujv9xPY8n5HrpsdTSKJdhtVd7NpVZrpfWdt pGEYTc0DOWCJNXy3VmjWlTdQWF4= Content-Type: text/plain; charset="utf-8" The variable "i" is always zero and only used in shift operations. Remove it to make the code more readable. Reviewed-by: Ilpo J=C3=A4rvinen Reviewed-by: Hans de Goede Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 7303702290e5..906d3a2831ae 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1144,7 +1144,7 @@ acpi_wmi_ec_space_handler(u32 function, acpi_physical= _address address, u32 bits, u64 *value, void *handler_context, void *region_context) { - int result =3D 0, i =3D 0; + int result =3D 0; u8 temp =3D 0; if ((address > 0xFF) || !value) @@ -1158,9 +1158,9 @@ acpi_wmi_ec_space_handler(u32 function, acpi_physical= _address address, if (function =3D=3D ACPI_READ) { result =3D ec_read(address, &temp); - (*value) |=3D ((u64)temp) << i; + *value =3D temp; } else { - temp =3D 0xff & ((*value) >> i); + temp =3D 0xff & *value; result =3D ec_write(address, temp); } -- 2.39.2 From nobody Fri Dec 19 09:47:02 2025 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BF595D759; Mon, 18 Dec 2023 19:24:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="ALqNN6ZR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1702927473; x=1703532273; i=w_armin@gmx.de; bh=Gv/3KB2nhnzbj6OabYsWChzNP4Kil+PLOJoDKQOnE44=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=ALqNN6ZRnYBgDRT2qDX2BbwuoOArHd6cG0fuUcFSDNTpS5LIgaRlfljTo9WxerPZ 2hrVNuvAGaOcWSftbJ4DgYK2e1n9fXveFi45AmsZmqMPBdYoNJOjadOrUt1otxOq+ w4fPna0+2n6MQNbAtZyWnMsd8GcXUq64eWJ4vD2yNdOCSsm/WIx3eZuNUTcRI6Dvv hvxHdGhVqXmECWYi+IDI+eir9MD0bj7q6Fmtw+3rEpH4Ig2cmlrBENPJ36qV+3CC+ NFQM1BEhKI2l7xhWZIvb+1+TUNqLBXdVobtxcE45EOYOLQL/6Yn2mYKCLIJdxyU4R OotIGQ8sD7ZojqEzVQ== 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 (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MVeI2-1rguDl01ky-00RX9o; Mon, 18 Dec 2023 20:24:33 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/6] platform/x86: wmi: Remove ACPI handlers after WMI devices Date: Mon, 18 Dec 2023 20:24:16 +0100 Message-Id: <20231218192420.305411-3-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231218192420.305411-1-W_Armin@gmx.de> References: <20231218192420.305411-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:NZriEJ2nLTo8Nrgwf8erNwXAao9Mznfw8e8S0oazGGnoMW/cz8o 70FHjtoWTvmbyq2FpODihG+LaB5dua/msT0nxOemY3rZKAMA3lEnTCbwcQq3cuCNgMAAoca tuonWxu8Glu5FqBgNeEvVef/xam9J53lymnWX8PaJoIiVEhtXmnvvCkmgxV5dac67J1Yu+o jiKYcT8C7KU16iItduetg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:apKLZAJ+RBk=;brH1j7rxmEpyoEn06tIqzwDUTTE 34/MWNODS5IRGY7ah3lbdEvKJtdQzuB0MQX/pj9IzN21z5e6aUbF17a8/vKBlPsYfb+vlwM9g Dfd8ySGgVYUjPMA8GAafSDDHb2RTqr24lO3Gl91quaSP8VtXhaRSrK8bn8fVcb8tCfzz/LcHx B/SC3XZE2Xm5ukr40+E5Q3vdlHo3qfFMsWVvQ9MAptvzhyzbSDgJyUoVjncJOBvNR6kBdBkTr jgCE1u6tntf0HTPpswAYyJ+6jcgf6a8IEKFJgjNlHu7F1oQES9s9xGxxcb19veo+RP+nOkt1p d3iBT7KYErEvUmLYZaApVAJSmA315LUtJsdTJE+jPsrviMuMt6tN7r7heJ0thVJw+Yd6qIxen APti9fK6RQfnnwQQaDKCVp72CbBziNVNBmjBei/hF78mQn1siq0vWy02cuBtjB41RU3WCXecT dRHxvdXedBsT67v/reBMOVjOLUxR23JZGZOV6VEkriaxwhvBZwNTPrUEymEkFpU5Hsxwyecyx zGKu8hWa7rzV6ZBYBi7410Jh+FK3cpevo2jXb20d17fZdDwBVhjHRPZdfdxhOvuBiIw7K0l3d nMM0GPXElLTvA/yc1kUwaNXhqyCG74Jk2o270GGUIAT0IyuCNJI5msRX3YOCAG1tWR56m2GJx N30+tu1XE+lvHJrGnPlQlFgDTe57JBYkWerFGeqrP9RHoSDD3PX+hK6EVciqtdMG/OLsXSiGg dEMm1kjdcMk/WW45vkZU50qzEnx2aeht9GxKBwh8KWROnaL7HQHiogbM+zvfzYuObIVNoOV4i qUo3QATwC74qn+GXvB7qssCc0gsuLJfAgF1ca4IcLbgErrLrOri7ABt0ayTxpJwrW1RxPtlWN nPm5ScaTGSOQWe04GrynFBHMg/icnm7nIqgAVA27cnilZkJOW7QlwW6ikYeSd4On4kYRvp+Ga TZqi3w== Content-Type: text/plain; charset="utf-8" When removing the ACPI notify/address space handlers, the WMI devices are still active and might still depend on ACPI EC access or WMI events. Fix this by removing the ACPI handlers after all WMI devices associated with an ACPI device have been removed. Reviewed-by: Hans de Goede Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 906d3a2831ae..2120c13e1676 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1239,13 +1239,12 @@ static void acpi_wmi_remove(struct platform_device = *device) struct acpi_device *acpi_device =3D ACPI_COMPANION(&device->dev); struct device *wmi_bus_device =3D dev_get_drvdata(&device->dev); - acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, - acpi_wmi_notify_handler); - acpi_remove_address_space_handler(acpi_device->handle, - ACPI_ADR_SPACE_EC, &acpi_wmi_ec_space_handler); - device_for_each_child_reverse(wmi_bus_device, NULL, wmi_remove_device); device_unregister(wmi_bus_device); + + acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, acpi_wmi= _notify_handler); + acpi_remove_address_space_handler(acpi_device->handle, ACPI_ADR_SPACE_EC, + &acpi_wmi_ec_space_handler); } static int acpi_wmi_probe(struct platform_device *device) -- 2.39.2 From nobody Fri Dec 19 09:47:02 2025 Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 990AA7204D; Mon, 18 Dec 2023 19:24:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="e+wtJy55" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1702927474; x=1703532274; i=w_armin@gmx.de; bh=lZGk8ts+L3vDhJqdfupckAWAlO/09kRoQ2kBWorNNa8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=e+wtJy55FZKGPOFnwAiJLIriOGEgMURpS4TLhykjNvF0wCrHP/PzN6Iyg7NbKFR6 JGVqot2KCbbCAF16aX6p5GV7+YbrwQBcrf+nWv1FLSWvPWAuNifJrpaHMxOo7WAhj 19eWxsAli9uHHrMMCqiwxd53UbWws8ATZIpuaI5IfAaTPiM/sPM/BRtXmhFasX+0R POjtuvPxoZnCLSM3Dg0y5+F8e/dg2fIfhF0+7rMLdnFDmdXESP9VtFv6pyKyDQ++6 Q+XuLQYNc9kLKAt/5+VrOeoAWt8i45yEZ4BrPEX1hiya+CX+v73YWAaXmp7MLget3 aKm7ZLYJOjSa/n5NgQ== 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 (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MXGrE-1ro21c0tqA-00YiD1; Mon, 18 Dec 2023 20:24:34 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/6] platform/x86: wmi: Use devres for resource handling Date: Mon, 18 Dec 2023 20:24:17 +0100 Message-Id: <20231218192420.305411-4-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231218192420.305411-1-W_Armin@gmx.de> References: <20231218192420.305411-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:vZKYnjeFk2UtTrBDB+In7YfNzxAq/lfhcT1S/gYYFmwAVO1iOX9 QP0bBQQoVPbs5kgkLSK3saIuLLo3Hn+PVTCgwu37BcM9OLbYVnCZ8we+zTHoiOhcpWOC6WA x3QTEnxtwtQQeczW8g+3kY7nOUp2/ktPVr+UrIVvqGI7R92i1wX8podhZ+2dy7iANrGIXJX rJzNrkVU/BWDZAxUjwx2g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:s8qAKMWLtPc=;Iu++8ZTgXY/xSOaUFYq2X3F6NSd Bk+PUen6I0x8UZbeUx9eowOHDHt/NZ540FyMQOcLH+kCsx+lZt4J7Swy6HRYkzkP4FBr0m2w1 lCHToyJpk5jIWCUPHyibBdQM1PXV5YlB946uV5ykL8qQ6nYRFga1irgazLtIEAbjJsxPQ/5/i XNHZJ2q0QyUvf0jN0ddW2bSa9tpKsOQ+frfSkb0PkQfvBg2bBvYVyswpe1KDyi/zDnKM6fOMo GD/aoa89K23FBTenxi1av4DhlZvX9laPGULSYH0jujPtjDcJEYPZjCjQtrGc/4hjV80l7/Fz2 DqW+j6fuK85vwcKmGASUw4p/002sJu4qTvw9RRnLAQVV8bPUB9fmdzlhNfM7HoCNaCbL0LI0z mzotFcMdHXWPfJ1tkhfP974I8Rnf7u1ZTSLXVwJnM4hAVhJADZLol5wklfgDAYHFRr7PWFmTn JF8TRIdbXMMhZTYnsQ27svXnEGAP25PjDCdXpiQQqiEFLML4p4Ggefd/UPMIUi1oJwEP9rXcZ He0g2iSyf3t495REjNQqurCEqMmsziZ3fp68X0YCvf9S/4OXsGIdpJ3dHQ/GTt0RHM+vEoOgx asONJDLInXldk7szdoXsHtJ+hDQ/f01EDDV1ZkN5UJoPpzcI4eYssJxXUtMHXiQdfb55FA159 lZLbhrNVKHcS2tA6dU5VSRxcfqWhmNurd8WezTB6865HmpzWuhKfMEkth55kPPrZyeq9ab6gE 2UcMaaiJlvyXfiYkc5snetCcnOZd61pRu9KZnAL3h0N0YGIDC5ENea3pO75ScgY12rY+RoaAc /jxGV8MkKikxAsIec/1qPVctKRQxsK+WVnQNCM/BhOJsBU0FInpBspL6X7mBFIt/+NX+eW+FD HOX7bBvzdgHC33KjrDhdt7FtScOcfkaOq1vDhF7EPAnaO9blfI8UEXrS9Kj6rx99NUJLCg4vD zQ/Cbq0mCVAM7PldfmAmrIJ9HTM= Content-Type: text/plain; charset="utf-8" Use devres for cleaning up the ACPI handlers and the WMI bus device to simplify the error handling. Reviewed-by: Hans de Goede Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 58 +++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 2120c13e1676..4bc5da70c1b0 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1236,17 +1236,33 @@ static int wmi_remove_device(struct device *dev, vo= id *data) static void acpi_wmi_remove(struct platform_device *device) { - struct acpi_device *acpi_device =3D ACPI_COMPANION(&device->dev); struct device *wmi_bus_device =3D dev_get_drvdata(&device->dev); device_for_each_child_reverse(wmi_bus_device, NULL, wmi_remove_device); - device_unregister(wmi_bus_device); +} + +static void acpi_wmi_remove_notify_handler(void *data) +{ + struct acpi_device *acpi_device =3D data; acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, acpi_wmi= _notify_handler); +} + +static void acpi_wmi_remove_address_space_handler(void *data) +{ + struct acpi_device *acpi_device =3D data; + acpi_remove_address_space_handler(acpi_device->handle, ACPI_ADR_SPACE_EC, &acpi_wmi_ec_space_handler); } +static void acpi_wmi_remove_bus_device(void *data) +{ + struct device *wmi_bus_dev =3D data; + + device_unregister(wmi_bus_dev); +} + static int acpi_wmi_probe(struct platform_device *device) { struct acpi_device *acpi_device; @@ -1268,6 +1284,10 @@ static int acpi_wmi_probe(struct platform_device *de= vice) dev_err(&device->dev, "Error installing EC region handler\n"); return -ENODEV; } + error =3D devm_add_action_or_reset(&device->dev, acpi_wmi_remove_address_= space_handler, + acpi_device); + if (error < 0) + return error; status =3D acpi_install_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, @@ -1275,39 +1295,31 @@ static int acpi_wmi_probe(struct platform_device *d= evice) NULL); if (ACPI_FAILURE(status)) { dev_err(&device->dev, "Error installing notify handler\n"); - error =3D -ENODEV; - goto err_remove_ec_handler; + return -ENODEV; } + error =3D devm_add_action_or_reset(&device->dev, acpi_wmi_remove_notify_h= andler, + acpi_device); + if (error < 0) + return error; wmi_bus_dev =3D device_create(&wmi_bus_class, &device->dev, MKDEV(0, 0), NULL, "wmi_bus-%s", dev_name(&device->dev)); - if (IS_ERR(wmi_bus_dev)) { - error =3D PTR_ERR(wmi_bus_dev); - goto err_remove_notify_handler; - } + if (IS_ERR(wmi_bus_dev)) + return PTR_ERR(wmi_bus_dev); + + error =3D devm_add_action_or_reset(&device->dev, acpi_wmi_remove_bus_devi= ce, wmi_bus_dev); + if (error < 0) + return error; + dev_set_drvdata(&device->dev, wmi_bus_dev); error =3D parse_wdg(wmi_bus_dev, device); if (error) { pr_err("Failed to parse WDG method\n"); - goto err_remove_busdev; + return error; } return 0; - -err_remove_busdev: - device_unregister(wmi_bus_dev); - -err_remove_notify_handler: - acpi_remove_notify_handler(acpi_device->handle, ACPI_ALL_NOTIFY, - acpi_wmi_notify_handler); - -err_remove_ec_handler: - acpi_remove_address_space_handler(acpi_device->handle, - ACPI_ADR_SPACE_EC, - &acpi_wmi_ec_space_handler); - - return error; } int __must_check __wmi_driver_register(struct wmi_driver *driver, -- 2.39.2 From nobody Fri Dec 19 09:47:02 2025 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F2C47346C; Mon, 18 Dec 2023 19:24:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="IRSgRbOR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1702927475; x=1703532275; i=w_armin@gmx.de; bh=yBaISgjLgSkrk947Vjw+ExCxzpblr64RVT6udQOT+ys=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=IRSgRbOR3YhXyUzCh7o+45Uu0tdNpbOJCOFJx72N/CE59ZckkMrtlpoXxlOOmbVy K/eT36AjnKh7ULyWZuirGzLGAZoQzXySAA345qPYvpmlsvbhax02LfkvcpWEhNQUS HrCJhFdlKyWINVgB5G2aCy6IYB9TF477XV3+2zDreZZn9J5QWesx9bN+ADQZvBlGm sZDHaqclML4MObMCttuCUlLDGX2VGvbtyVNw5O0CM9/eD5OxHjWSc4+FJ6btH8FVa SNiWjS3NDZrF69KZ/VAcQwbdnbfw0RPWviCaAwUtj7wa0WO9KgnGYiYyTPZasoXn7 8oLbh6NvohX7wiIKTg== 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 (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MwQXN-1qz0ti2jbh-00sNuR; Mon, 18 Dec 2023 20:24:35 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/6] platform/x86: wmi: Create WMI bus device first Date: Mon, 18 Dec 2023 20:24:18 +0100 Message-Id: <20231218192420.305411-5-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231218192420.305411-1-W_Armin@gmx.de> References: <20231218192420.305411-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:z5mGJIGngMBNMuhxr0StFE+zdHVI6DL7+DYf1/N9jov2N9xGU1c jAiA8HArjl1Sh18uC7zdBZec76hVx5yI9xrPbdtWpCcHUQu4CHekwzteTH8fEDk/MHEdsWh gbueqNEGp65xZjqagPt85+HY375Mrn4d18r05Ne1e/rvrDX2D6HJM0tw3HUjXlGMHjsEttD MJcIgig01RDqnl2PdEdjg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:fDk05zc077U=;nYkcBn+F0BztAT9FptfL1JVN1jn VFPNorOQwmSbGNE8Jwr0kPtqAsBJwmou5EGwTwZqqA4nLYklBzY4aUQOfBMYkwuTSNe79qo/S V/ZHgTFaieeMi97AtqhXzp7Bt/7RMprz3zM0ZbHiGsxDNWFBBp8lrhr4OeCwuhWfpGPnjJLP0 1XZKUxiVDOrLKpCHY7vRo0RbXCSjqJKpO/+uRidOGXpR8nHffQUeaH8ljxOL+E9jDLKNkHVoy v2yvfiwtpbNyCYAME7BNIYUzJCQRh3qhCjWUXNrR52igSBfFizs5KEFLMEzQyE7ph94UeRc3W X0y1K4DhdU5g4qkrlZPuoPKR2cN2C6G1GAYmp0/sN7LpsXsCHB5I15vA696UXFz7jsSMn1gdY aHnliaqA3jY48V3ZGuXcm5Kjspn/cD6rK3UjV0WXKvEcyLSGpcdmqnjUFkX/6KGWtwjdTakOV c2grpi8GkK/HZEteGrD16fmWqAh6HaFuJOlA3bA3yAFtQEkIzAokxYfR0wC0v2PAMM6kCmhqB mYJ0n+bxUYLD9ApmszcQZH96sN1dmvYryyV/XC9tcVq93QQhOFcOxeAwKR63oTzlOHpQAVEms aC1FTRYdGQb/ypEZFGjc7FTr7ErLlhzTMboI9QoRJBjMc5gPskmPOGXlN9r40P0A+Ic+os19f a2TofqnSI5vraZOMKecfUgJMVQbtKC6PN6QIAA2ekK9HY+MUxVzE/upvEAx5kTh8ClzMh1cjw TylANtnOf7bYE5/DdC2KteruCHQZSAsrPLaVtL4c78/rNoL019bRUTMSST1O3D49Z9jbgZcnS gHq5Y15EqMK0/DB2/C2sQ84yfZY1kCe7bhLj98eIlYXVcflNC1bHNOWlwyvC8081+hQoFcNIP 1P2SUPjYsU1qAAjO1xUBtl8fVc/6VbZYekvIinrh8PXgx1IDJR0+MXUSddFY3i85Krin8kK2q PBHHgRePhP2X/D7CGY7KIp2RPU0= Content-Type: text/plain; charset="utf-8" Create the WMI bus device first so that it can be used by the ACPI handlers. Reviewed-by: Hans de Goede Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 4bc5da70c1b0..e2bfdc61c4ce 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1276,6 +1276,17 @@ static int acpi_wmi_probe(struct platform_device *de= vice) return -ENODEV; } + wmi_bus_dev =3D device_create(&wmi_bus_class, &device->dev, MKDEV(0, 0), = NULL, "wmi_bus-%s", + dev_name(&device->dev)); + if (IS_ERR(wmi_bus_dev)) + return PTR_ERR(wmi_bus_dev); + + error =3D devm_add_action_or_reset(&device->dev, acpi_wmi_remove_bus_devi= ce, wmi_bus_dev); + if (error < 0) + return error; + + dev_set_drvdata(&device->dev, wmi_bus_dev); + status =3D acpi_install_address_space_handler(acpi_device->handle, ACPI_ADR_SPACE_EC, &acpi_wmi_ec_space_handler, @@ -1302,17 +1313,6 @@ static int acpi_wmi_probe(struct platform_device *de= vice) if (error < 0) return error; - wmi_bus_dev =3D device_create(&wmi_bus_class, &device->dev, MKDEV(0, 0), - NULL, "wmi_bus-%s", dev_name(&device->dev)); - if (IS_ERR(wmi_bus_dev)) - return PTR_ERR(wmi_bus_dev); - - error =3D devm_add_action_or_reset(&device->dev, acpi_wmi_remove_bus_devi= ce, wmi_bus_dev); - if (error < 0) - return error; - - dev_set_drvdata(&device->dev, wmi_bus_dev); - error =3D parse_wdg(wmi_bus_dev, device); if (error) { pr_err("Failed to parse WDG method\n"); -- 2.39.2 From nobody Fri Dec 19 09:47:02 2025 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02C6573478; Mon, 18 Dec 2023 19:24:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="q40M1z8L" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1702927477; x=1703532277; i=w_armin@gmx.de; bh=vd+n3ykeVoDXsg6HoG9Wxn2uSy55W8TbILg2TIyowI0=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=q40M1z8L85apvsoIEutg3OZS/aAAU5azx+5qVu0PN/3y7vobOfHEcE7O6Zuny24a atNqIQAd6uvFCdwfFhM9fbK18MHxTenlrNgDFxIEYZUdYjK6ygPMmabp5cRD2FatM eKfO2ikUapLxsuDfHfAP6Vr5B78aLHlrBTsayGKG71aDhANWiupCFVZYVDpB/mbnA bYDMkSbSiOeaRmBqOt0GkNC+ewQfVOpcT4uZAd8pUvZyog/VpN9lfk5RXvVUW5vZt a2fvVeNFQ7x+mUH+HBmc9DDw1yrpWmLaau9NoaL9mScLYugIQHgL7ZZqKp22+NU82 y5ni20mgvwqOxMVqSg== 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 1Mn2W5-1qqjRK2dwF-00k8C8; Mon, 18 Dec 2023 20:24:37 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/6] platform/x86: wmi: Decouple ACPI notify handler from wmi_block_list Date: Mon, 18 Dec 2023 20:24:19 +0100 Message-Id: <20231218192420.305411-6-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231218192420.305411-1-W_Armin@gmx.de> References: <20231218192420.305411-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:W5xgdnKOVfKDbnxkuaVs1m5ipC0Omumkv6Nw8+kiqzsWz2uFQGy 963QzzGnaxm9N3GbKtkaLbzhdPNzSV4MRljTq6vRMfcPyuGe7evQ0I7lloSVOOhU6QM3ism qndCkPHV2hLUAe6CsO1233FP8MsiW1TGom8c+2W/RekfUd1+o7qpWh/j2hMsP6rdZfoJ2VO hWEls8PUwKNcnGFDHcH5Q== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:3rnNqCtiyqc=;Peo1RUPq8Yka48T2bAy/0l0VKJE RxsJJ6gKV/eZTf6OQ//91pyDtqbbolgEZXyNcQLlRqRwfgSOORCC/1cbkCYu4xx3hBOaS4ocs 3KKoLVMg7g5kV60C//5uB2T47taxNKp+MFpOVHXkjDSjQAC8OmWkbCgoNVVHt3tkDeEcXDoTs TQAbcFuxuAGAyRym/KnFIb6MBVnHmimMNXoPqogYXnYZER+ASoCpCRtd9PzS9hKislEBBlYo9 GoHSlLvd5kaBU0OcZHoA8ekjQA8NcCDb1yS/dudKHzMQx6joXp3087JWHOx+Zy8qG6ROeSnri mrLM3EBUzEyk8Q58+aBb1oGz3oPvDj3PrLBxj6CzRkPJJ2JOoV/8v+uxddbJubaauFHGT79Ni /iOyAOUK/Y38gkYPArnu6TUWG3VBxvXdQDN9wd/mJcF/YkdKRxvQwzqyMETTy70d2ldcQi6qE 1sTAd1RgenXTUGIbBNr18FhjboOmq3WBy3ShKBaMikYjz16S2JbBJluBdhraguXmnDtGvsJce lYu0vjWy2cXHlsUuPgcLIULoIU2bJ56W/yutbGOghfu3nUtbuPDlK81Bx/KpMHFGZq5QgsCmL fwz5d7C7inPBVVvZUVE5BkDeobdy1FJpZdG4SZErsLL5g8IqHFvDZhJ+SarzmnjLfbbMaBWFN 9RzkX9ObenzGXlxGkpaGMNrnatLN6Y94iMmPDF2Hdf4dd55IStt/KW+/3VzNWkGOzmhJF5OBC kSFOrtEkskjVG6pdnfwfRzA33QY2wjnATqJM1bfuvkR2aDAoTZL8hQ9jqeRHcIcjDAhsJmcyO Gp9qO+HBpPb7w1THZS0bAEab4zBq5/51s9nTCxZWyKAI/CO6mK/CGWb6Qaq9ArG+x64BL040E +djHbWVcxgg6LCEYCZoBUDJoLHXb2sBcheL7oop6r8tFvIeRaYridNxuYSiRkeCBBCauAcX8j z8onX57/yuzBaalgh1SUB7v7kkc= Content-Type: text/plain; charset="utf-8" Currently, the ACPI notify handler searches all WMI devices for a matching WMI event device. This is inefficient since only WMI devices associated with the notified ACPI device need to be searched. Use the WMI bus device and device_for_each_child() to search for a matching WMI event device instead. Reviewed-by: Hans de Goede Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 46 +++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index e2bfdc61c4ce..559a99ebc624 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1176,24 +1176,13 @@ acpi_wmi_ec_space_handler(u32 function, acpi_physic= al_address address, } } -static void acpi_wmi_notify_handler(acpi_handle handle, u32 event, - void *context) +static int wmi_notify_device(struct device *dev, void *data) { - struct wmi_block *wblock =3D NULL, *iter; - - list_for_each_entry(iter, &wmi_block_list, list) { - struct guid_block *block =3D &iter->gblock; - - if (iter->acpi_device->handle =3D=3D handle && - (block->flags & ACPI_WMI_EVENT) && - (block->notify_id =3D=3D event)) { - wblock =3D iter; - break; - } - } + struct wmi_block *wblock =3D dev_to_wblock(dev); + u32 *event =3D data; - if (!wblock) - return; + if (!(wblock->gblock.flags & ACPI_WMI_EVENT && wblock->gblock.notify_id = =3D=3D *event)) + return 0; /* If a driver is bound, then notify the driver. */ if (test_bit(WMI_PROBED, &wblock->flags) && wblock->dev.dev.driver) { @@ -1205,7 +1194,7 @@ static void acpi_wmi_notify_handler(acpi_handle handl= e, u32 event, status =3D get_event_data(wblock, &evdata); if (ACPI_FAILURE(status)) { dev_warn(&wblock->dev.dev, "failed to get event data\n"); - return; + return -EIO; } } @@ -1215,13 +1204,20 @@ static void acpi_wmi_notify_handler(acpi_handle han= dle, u32 event, kfree(evdata.pointer); } else if (wblock->handler) { /* Legacy handler */ - wblock->handler(event, wblock->handler_data); + wblock->handler(*event, wblock->handler_data); } - acpi_bus_generate_netlink_event( - wblock->acpi_device->pnp.device_class, - dev_name(&wblock->dev.dev), - event, 0); + acpi_bus_generate_netlink_event(wblock->acpi_device->pnp.device_class, + dev_name(&wblock->dev.dev), *event, 0); + + return -EBUSY; +} + +static void acpi_wmi_notify_handler(acpi_handle handle, u32 event, void *c= ontext) +{ + struct device *wmi_bus_dev =3D context; + + device_for_each_child(wmi_bus_dev, &event, wmi_notify_device); } static int wmi_remove_device(struct device *dev, void *data) @@ -1300,10 +1296,8 @@ static int acpi_wmi_probe(struct platform_device *de= vice) if (error < 0) return error; - status =3D acpi_install_notify_handler(acpi_device->handle, - ACPI_ALL_NOTIFY, - acpi_wmi_notify_handler, - NULL); + status =3D acpi_install_notify_handler(acpi_device->handle, ACPI_ALL_NOTI= FY, + acpi_wmi_notify_handler, wmi_bus_dev); if (ACPI_FAILURE(status)) { dev_err(&device->dev, "Error installing notify handler\n"); return -ENODEV; -- 2.39.2 From nobody Fri Dec 19 09:47:02 2025 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1961B74E18; Mon, 18 Dec 2023 19:24:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="qHQ+kTO+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1702927480; x=1703532280; i=w_armin@gmx.de; bh=8xcRS4toKnQj2X27ThuiST1cF613b/lRiEqma2uezJw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=qHQ+kTO+138KHKZMQD8j3zmW9TQ7RaND+tLp54ET91nuGKkc75pFVJL/OWweRIHb 8t58GaeTcOC86MCBsEfhgShtRv4DXJoZj1y4hnxjGXFJxTEp/J9TEvWY0s2V4Ly9a rOLqsunFMOSHkLzsZt9CaNYn0SZk2AWu7EBMM+HwlhuH1mxt6qw0G+4NttRw630KI UbWqlollhIWAnwbpd2Hdf5MaThJDIDg8ikGzJ78JN+qIizYOWqjbLzsdB55+cbL9O uzAmYh0P1SDIAKAjJ7RiDYPr6v0/TqhS0ODwrCclGyKd/d2Hqu/fRoIKdfZsFzCCF lVMOf/2uf+UBYOY/Ag== 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 (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MV67y-1rhSSE06kg-00S7zN; Mon, 18 Dec 2023 20:24:40 +0100 From: Armin Wolf To: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/6] platform/x86: wmi: Simplify get_subobj_info() Date: Mon, 18 Dec 2023 20:24:20 +0100 Message-Id: <20231218192420.305411-7-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231218192420.305411-1-W_Armin@gmx.de> References: <20231218192420.305411-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:JJpqrj7iaYiG8Q8VKBhDxjgqXLmD4e3e1HfFdXhL8oifTZUsq40 YPW/znJwDNgKUd8QoBmCMG9Mbs4EaBcQ2w3i5V0l1CMx5321qfmWx/fzOzTSAjLIHVFLfEa SDfUbR1xivK85813OouVHTk9kOCSw45BSFkxyIyFvqA/sRRVkINhb97Ibfhgq9c/z0Z/FBi 0BLazZeG6gb0CuqTAwlIA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:8DBsO9zt8vE=;Lgts6BU2rDjAkv83v5ftHJbk1cq 3TdBM54kTm9YSiom/AUBfOGkFkFMhXD1v547LJZkl1Omnst2ScFBICd05JFUYhya51bkp689L TAWvtKIx807u4r4CNeX3K5xuHjXV3csijd3fcjANXyq52bhhGN+NmxJdzNCdSqATrCFQ4JOTO dUCy0WlHaUQAlBG0WAnwbal7xVVfqbd51dwbP2mQ17xuVk77Lu7UBKzn0MxYWXTsiQUuJBZks EaQBOIyh2f5r77fUvQ/vmZCSlcm3iK6m1J5JOAokfMDejyGzbidkdZJ0tKe4rMzgbNUrauN9E VgPYi2c1nfbSuKkth9sy+naRVDqkuCGY2ZM8hjRnDLEdAgsQz4fxtokBcT+HSW33QWOJLC1jM VBgNIqCPXNTOmjzsrb6q7HwgsxlHvcrHvBlYncpRisdbeo66q67WfJJJt6qiARSGfKpk2LMXw N6z2oZqbx1QsglWLjKHHz3f3SPHZ+T0sBNZY3u5NKxjd9+GJxLNTo+Rz9Z/SpNdx0v+U96b41 kMq5K4C/3CZ9ywlJWQ5VXK1GmI/VbLWs+u0JMVjDEniKIy2m2POrp7CM7wY8yEVazbWCOhwpt 5mc8j3tlPfKU/axjvskRyPalfnfVlTRjFpiRgPVpucvprg2RL60xlLAj82CAsRbwEs7zLJ0d3 QZojCWlTn1QNlB7v4C9vrsrauzSQgzuH0RDo7cbNI2eOP4vFF7UuS6wiqP9KU2AP4c06pvtck Rbc8Hn+o1FtT/RT+aZbpWYuQjQAsgufI11wtEMn2C3hw22aUycdrjPd+palL9FJzpYTnOVqx/ Z9VvyiODsRkWM8BwHY/Gmp1nsnYDD5JqaifDsO6ffrHoeVCOTFmgrH5ewp0sEG555PewTK6P4 YHTcci3BFsalIxPnPULM2iplxXB2uym4hUGy7VaPVZ/puU9CQ1t/mGn0i/bsqX+qvyiMl3kTn 02bbnA== Content-Type: text/plain; charset="utf-8" All callers who call get_subobj_info() with **info being NULL should better use acpi_has_method() instead. Convert the only caller who does this to acpi_has_method() to drop the dummy info handling. Reviewed-by: Hans de Goede Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 559a99ebc624..a7cfcbf92432 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -132,23 +132,19 @@ static const void *find_guid_context(struct wmi_block= *wblock, static int get_subobj_info(acpi_handle handle, const char *pathname, struct acpi_device_info **info) { - struct acpi_device_info *dummy_info, **info_ptr; acpi_handle subobj_handle; acpi_status status; - status =3D acpi_get_handle(handle, (char *)pathname, &subobj_handle); + status =3D acpi_get_handle(handle, pathname, &subobj_handle); if (status =3D=3D AE_NOT_FOUND) return -ENOENT; - else if (ACPI_FAILURE(status)) - return -EIO; - info_ptr =3D info ? info : &dummy_info; - status =3D acpi_get_object_info(subobj_handle, info_ptr); if (ACPI_FAILURE(status)) return -EIO; - if (!info) - kfree(dummy_info); + status =3D acpi_get_object_info(subobj_handle, info); + if (ACPI_FAILURE(status)) + return -EIO; return 0; } @@ -998,9 +994,7 @@ static int wmi_create_device(struct device *wmi_bus_dev, kfree(info); get_acpi_method_name(wblock, 'S', method); - result =3D get_subobj_info(device->handle, method, NULL); - - if (result =3D=3D 0) + if (acpi_has_method(device->handle, method)) wblock->dev.setable =3D true; out_init: -- 2.39.2