Received: by 2002:a05:7412:da14:b0:e2:908c:2ebd with SMTP id fe20csp1182882rdb; Sat, 7 Oct 2023 16:40:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHxSI6uddssq4dHXvNSanN6jK8DO4Aur3DefBLdBOC5UmSgqxdvEBBBQo3O4uvyVTbUzQMk X-Received: by 2002:a05:620a:f13:b0:770:9000:a40f with SMTP id v19-20020a05620a0f1300b007709000a40fmr13455759qkl.38.1696722027452; Sat, 07 Oct 2023 16:40:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696722027; cv=none; d=google.com; s=arc-20160816; b=SEbWH4pPpAhAncUE57okHpp7O79OInlg6rwWRk9nW/8deQVMGTn+QdEXjRhOYubeVW KyK47yqXZADVLwWPxlvB+4fnZMgUgKSEYNqSxAwtESK+rlVzn9EGlKSiDsFMK4zo7sfU UrXq70aWU+jaYNxq9/OLhe9fjk0MZKMDxZAP3mttgvV9vBV59ycmk33pPHm6MPaa1D5M Gi4FXUlxnkZL4bquQcERh0wFFGIEBRJayQNKkpMQ+MA2NWkPhqigt8dzjhmy52NI+Ygr iRJrC8HwDdUvHwwXdBV0FLT/fmEXIDl3LcgyyT6NcGpm3k3sc6aOHNqn+OZ7N8LcbK2Y ZrRw== 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=8KfVqr1qxxxqRnLLJWd1s6GBuyrXdAyRV8iNAMTuQpk=; b=XFaDzEdKkj+76CilTWkyLn70UO3lfApXmONm5hOO5tYUDymvrctspdsdiwBDHJlRaZ mkXlYHKILbbN1oXtzXEC0JO7CPr09zy9kbVooTqBarAzh0Qzhn1KalE3R9zAtTV+4kT0 inNOqyh2fO4rEPsm1r1/QQfCt1pIcMpTGoq0TEt3LYMdRzXq7Xq6vKBi7eq2JLnkvPfy 8L+Nt4QCtULEPq7GTH4mV6HswowhpltYMkBYyPwVPnQ2vWF7xDiKoT+3iGlSnftrEWlt wO9Dee7OucGEdQ683xV0mDxbWbmpu/KHKP7X4+mucr1/3HA+z0uFctc4Or2fLbMIca/U EnbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=GsXNuWD1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 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 snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id q15-20020a056a00084f00b00690ca3d66bbsi4868381pfk.262.2023.10.07.16.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Oct 2023 16:40:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.de header.s=s31663417 header.b=GsXNuWD1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 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 snail.vger.email (Postfix) with ESMTP id 36C1D804259C; Sat, 7 Oct 2023 16:40:26 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344227AbjJGXkQ (ORCPT + 99 others); Sat, 7 Oct 2023 19:40:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344277AbjJGXkH (ORCPT ); Sat, 7 Oct 2023 19:40:07 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB830BD; Sat, 7 Oct 2023 16:39:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1696721990; x=1697326790; 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=GsXNuWD1th1B3DclPSFXXYBH3X0ksEIpOHcAegdNjDqGIU200drq+An8esFiOlQhelNKMFDWMHr PDGFn+XXzcMbaKsv0xgNbc43R/fWPReHft1vG5BTzSgOcWR50+/+thVY9RcCp5KbuIOItRziscJKw 1KhBA3E6xaTHS81k3f8ifE0nRqHZfEjijVV9Ba+VpFMEPx032d+pnMwjtgXElhJqqPXrsFKc4gDtp 3/joaloJgUpwIK7he3dNMzAZcrfKV0YuSMgRZ3jwKuYz/UbI4YCvymrDjzfW74tSjlhfWomCEGyYg SQ0TLXKL1MNzZW4DYc6y1AdB3KzuYwb+Gckw== 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 1MfHEJ-1rVDd042FH-00gsu3; Sun, 08 Oct 2023 01:39:50 +0200 From: Armin Wolf To: hdegoede@redhat.com, markgross@kernel.org, ilpo.jarvinen@linux.intel.com Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/6] platform/x86: wmi: Decouple WMI device removal from wmi_block_list Date: Sun, 8 Oct 2023 01:39:33 +0200 Message-Id: <20231007233933.72121-7-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231007233933.72121-1-W_Armin@gmx.de> References: <20231007233933.72121-1-W_Armin@gmx.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:b7G/rOePCi7x7e+1VGql32FHdfHyPGQTQhoLJXjPsL31nV+soFc DIf+GTHg0IKHWmsL+J4ZgeBR+7HEyuc1CLIiXrMgenmfzK4dTO0FGsLcAh1uoCdfs7uqHfu 0qwL5m5rQwfbjMDL5U002nnYCrws07p8cCl5Hws098bk9W5yWTDUxRjjVTWexr9aX1XpYNW tKWTTkgapVN21v+5/wXDA== UI-OutboundReport: notjunk:1;M01:P0:JH0FVov/eNw=;OMvzziTvm5YQUyk0tojZy1KxTb9 8lwOtuVRotZnzKIiJQcOHBQ9c3lAWj6Zzm8m4vC1t2yhwwbznz6fRjZgDH6hmUogJ4vW80Xvw YS0G+9Uvxp9G5xvtpMQNuuEAevPHk1bfYchI2w+WqeTjzhROkVU+jcrf4gztAbAtS/V+v93Ll 7BZ+m53KvkbordcXwiJ9Ti5noS4bzP03v21+VkKggNojkDcXjWfaF6lPGZ9x1riLzwylxmGp8 QURRh0T33OJtCIya0jS4VhV7dKKQ6AP6F9XQPvcm6KjhPLp+zRdmZJzJenhyGES3DfXcw4u2Z 48Om3SFH66H63ZeTbVtIKIB/PW/nQcJv/cwj9I6qzEmg1pLGLLLCxhS0L6vT9KKPfKH0JwiGr BgemkFLWsABlsFsbK0ETj8W0Ej6yHn014QRXeiiKRr2FKdfo3TeExGpgko8YfOwPuEqzjKQ/2 njMmrmvkEcHWSXDichxcGvWLWgRGrXolhpuPTBp0kD5qJt46kF+rtF2umI9lSKXtrUyj0i2kX dYlLDuqlmkwwjnQBIC8O04iFXZ86HfxNUL6HyfAqCHwFlfO40yhcc0ScNDqpjnp/mzhFTX/7i SMq+cb+PmmKir5XsZesZkGuQ+SuOTC9plCA5/irAqUYuRYAboKS03kRsU2MVgLNx3MuajULeJ H8XqNCie+YRynU9r1Z7mmVfi3K3Bu96GOxkC+zkl/QpoydHeXw6dM8xQZmmbS1gUsGfxz+daB VVDRMGIrdL8UztMvz8CdzWz9x4Aevl9QCcc1ZkSP9Li6PPIwUV2kfhKKUcG3gOjpphsR1I8kf snyEJfXKPM0X3A58SjYeizvhEhPi6n1qBhXsMgi40RxCMCk2KV7KXTByXfM5BJsphGioTuQIk Kh/a9CkB463s750Eqh2i1koUj1HXFw4XDQzT9K0FgOxGBCOVv3ravUukytqro7qJ4yoBtQCz0 UaqEdg== X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net 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 (snail.vger.email [0.0.0.0]); Sat, 07 Oct 2023 16:40:26 -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