Received: by 2002:a05:7412:f690:b0:e2:908c:2ebd with SMTP id ej16csp1288597rdb; Fri, 20 Oct 2023 14:11:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IECH3dsfNnLL3AQTz4zeFDda5nIm0PQqU/owT2VE9yQvfsZxdcvSszlRBDWD20HCw0tYE39 X-Received: by 2002:a17:90a:1913:b0:27d:1376:3ae1 with SMTP id 19-20020a17090a191300b0027d13763ae1mr3362066pjg.0.1697836264117; Fri, 20 Oct 2023 14:11:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697836264; cv=none; d=google.com; s=arc-20160816; b=v2HWgaUHJtIEZWcye3IKkE/woHODdaULiwZme2UY3PHuOkObk/umjg6QBxPE/uE6XO JaOBRDfgZn/zFpr/Vm0rZHQ9ig59XKnvEP62ct6vv01lciFl/RPIiNZMQt1KRKJ52E9b RhaN8voLhwKPc1pfvmWMk9u/KaejqVuGROLEqNmdjzSA2uC0d7OHAXeiRx0OJCHeQ6TH YzC5gglf7k9JooqDkQUyGpRJAZ/X55xRsfUYeYnMB11d4UPgTJO7YrOa7weYV78r1tUh g/w+0mVp3DNXy4kgadOpLzGgMf02bmXw+MCOzFhW7KZuUpWFNlGWqlRtFm9emr/wg2Eu Hs5w== 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=bLBMeADjXm342rj7jwMNt5vfiyMugW29eCUd/V6swEQ=; fh=mlGq6PayYEZsp/+lQoaQb08ZaGzsJscMQg2+wc8B3Uo=; b=MgHKvPUwY3+KxmiB2g0z0Nh+ESrNQ5sH/QYIfzFcBypAEx2XGEQ6Y44Y3tyFXdWL3C 4Jyx/t933gtU0fdmcIweKiIb8694jcpSZRH3ZJ3XA1SAMIYDjBYR3fL8HkS4dZLF2od2 k2aSmYYMt6wNYL4R4WDdRZndvoSoVawV+UmkmYdvY3YfOYv0P5rFwpGtit8LS9SW697P vxSwdtWu2oeR6dpxwwR0fxK5zLC1AqqgoGZBiRypBgIUcLhQIUc8m/kw1P87zg6k4LT0 Hyxd1fy7qk+CHoiWET6Hox4D3lg7CmPNNXabzBgjjZnswnECD0wSOoMojPzZjQ7g+mMV TDfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=oF08p2AQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id e11-20020a17090a804b00b00276671731e3si5208485pjw.136.2023.10.20.14.11.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 14:11:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=oF08p2AQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (Postfix) with ESMTP id 9614582E17F4; Fri, 20 Oct 2023 14:11:01 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230028AbjJTVKm (ORCPT + 99 others); Fri, 20 Oct 2023 17:10:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230306AbjJTVK1 (ORCPT ); Fri, 20 Oct 2023 17:10:27 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 576F8112; Fri, 20 Oct 2023 14:10:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1697836215; x=1698441015; i=w_armin@gmx.de; bh=kFgVOLW+XKGG9Dulheyn+xrEGtWuwccHJv/X261e87w=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=oF08p2AQTIHOWJIgWlit3N2rt74aIraiIs3Uvwq76EKVcbfe68jdrNqqZB/khtPV 1qcBcKKT6UA3XUw33wddSnHcbn5Cp86+amTqBwAHOph/g6PUMEz5uGPLKROm123J3 0nn7Uq6ogQuVNRrAHz6wUwH4Z+BRqvv0IuH7NdrviHGadPPTjUBZ+AR5JFoqJ7EeY L2Ks0l+VMJ01X+D+Xx+4mp8rgZXDJ92/YmqI5OjdZ/jSJISbFJ24oyHKUjGyyGSb+ 22yevMiDwsK9I/IJbFEa8U4ToYtnFXC9zvIuI1XBzuOOJ+pVf2aXjqU+U9pHrfDLt PmXLHwoWtIRen6SDQw== 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 1MORAa-1r9pkH05gU-00Pz4b; Fri, 20 Oct 2023 23:10:15 +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 5/5] platform/x86: wmi: Decouple WMI device removal from wmi_block_list Date: Fri, 20 Oct 2023 23:10:05 +0200 Message-Id: <20231020211005.38216-6-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:upUz/s9hYkGaaetVpAZiTov/Dp6BZHRY9u7NNsKYG7ZsPneSYaN kME8qFo2oFWNV1icG+l8vgEWvmCLw+N9F/U9yhDgCOx9N8ajPePy5lBbyFo/CcfwlczOeS+ 9Y+moiM3hwxCZvXpyqjgC3zf8Bn1M3r5AFSxUWuoTDcj3xGZMRn1OKZeXZWQ2G5gi29w3Bw tReZ3vESZ9jJESGeFeMCg== UI-OutboundReport: notjunk:1;M01:P0:uRYRACoYQNg=;xJ5zlELhxwZnziIgQaehFu6ytf2 HQ0FxqEdXu93Z51O0juNh54QHy1xunaclvigTJ5UgUGlO6I85mafj1t1YebP0Enfi2lZH3/WA ofXjOKaIvfNM6VseXzheZLYXkreZUplT3n951nJDs1UNdZXtifS1F8v/nWGa709+1NfJUqrIp f89xcxz6L8kBB2fw8HhjZRgqbNxBTE+c1KLEsMG4ISxMUP87yHyBhwlQvxqDd+1SieVQVdNtE TJP+gkVTqLYEgFbU5T29i5pvn9lDNEKaiFbIoXWLjUFx7ZF0qb77wuO1Ffvvj0O57oiProqI0 dJUjbxGAAnOJhxUME+Dvu/4bCWrVXscf6zLmNJHkcN+PMUifbow5HFblT92DrwR991tNZNf62 1OHoxdR6yNZNXO9g/7Q4tRfDIUJyc3tjVRvy7X8c/F0vNarIkWtms20XiT5orqrxsTabnyCCi SOXJFnbVChsHaAMIsvUbmW7/7X3V0Pk6dwa2Dg6M04TtLsfEUYA5u293MQNjLAvZvbCS6tZGh dM4h4LP7u0q/DxF8tY9r0Lq4d4iL2vQ9zanJATo5LBm76AAOaLimYCHOSznsLiirbvCaXXbus yVwodVY2fSVAPTuNkkVfz0UadAAyZdqv0h5o/PDoWO2odsgK/h2oAHZPpM64TRlX+8NYDcQho aS9KlBzDtu8u1fx1eYvXQ1rKlxMBQSYM4DrX2TySoQSVkntjt6UMTpqZETJ2JvSCLB3Y8bABQ js/dcukxoHGnrtiebHokoghBFiYC1H4DHwwQmwK5rt6TpyWx5lReUoHUE0AUA+Vo94GmoI0Vo pNo90t1URQO1xS7wfkAEdaW3pdyQsuPB7qnRjpKmyg/MF/Oa3M3YsQKSsrKFskwtvUMkZt098 S2fkks0mwQYsqszg0n9Rj0Zjraask6IR0fha7HlAU0/C7Z5qNClYPkUwW2QLxAhFkcJ5k7nBx 92vDKjSAAYpAwnlJhtJjFjuRMak= 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 lipwig.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 (lipwig.vger.email [0.0.0.0]); Fri, 20 Oct 2023 14:11:01 -0700 (PDT) Use device_for_each_child_reverse() to find and unregister WMI devices belonging to a WMI bus device instead of iterating thru the entire wmi_block_list. Signed-off-by: Armin Wolf =2D-- drivers/platform/x86/wmi.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 6b3b2fe464d2..5c27b4aa9690 100644 =2D-- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -1280,19 +1280,6 @@ static int wmi_add_device(struct platform_device *p= dev, struct wmi_device *wdev) return device_add(&wdev->dev); } -static void wmi_free_devices(struct acpi_device *device) -{ - struct wmi_block *wblock, *next; - - /* Delete devices for all the GUIDs */ - list_for_each_entry_safe(wblock, next, &wmi_block_list, list) { - if (wblock->acpi_device =3D=3D device) { - list_del(&wblock->list); - device_unregister(&wblock->dev.dev); - } - } -} - static bool guid_already_parsed_for_legacy(struct acpi_device *device, co= nst guid_t *guid) { struct wmi_block *wblock; @@ -1487,16 +1474,28 @@ static void acpi_wmi_notify_handler(acpi_handle ha= ndle, u32 event, event, 0); } +static int wmi_remove_device(struct device *dev, void *data) +{ + struct wmi_block *wblock =3D dev_to_wblock(dev); + + list_del(&wblock->list); + device_unregister(dev); + + return 0; +} + 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); - wmi_free_devices(acpi_device); - device_unregister(dev_get_drvdata(&device->dev)); + + device_for_each_child_reverse(wmi_bus_device, NULL, wmi_remove_device); + device_unregister(wmi_bus_device); } static int acpi_wmi_probe(struct platform_device *device) =2D- 2.39.2