From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=74.125.82.52 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794380238; b=wAkBWdFQq4OTS/slg+SQkRp18CS8y6Ymi4oJy9uw0dvozf391fy4EotICZuMsXUy2acG a+B0R5Hxfn06nR8ADkEii2vFDeaFrWzaZSD+nbfXARXhONFzDOVWjVXq2DLsillA0AYae t1Yr5oU1xvuDFWpPad9I1nIDbcsCFsSe0CVCk0HUhEtZQsqdczGlDZrJGL6YwbCI7BacD QH8EQfuY3LieZG89ipWMOjqCa4MHhmhpZ2lOi81oN+Gnc0b29oRuRPvRLngHTxDaMfV01 13E4xLxRzo8W0wxzFta/0iI3yPiyAUd6qr2YBWdnapHhRpaKNKwChb+7TS3tcuATiDQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794380238; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Forwarded-Encrypted:X-Gm-Message-State:X-Gm-Gg:X-Received:Received: From:Date:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding: Message-Id:References:In-Reply-To:To:Cc:X-Mailer; bh=bhvMvFH7eU7owbTmWTGdGWX6kvxc3rwopdiBlGg5XF8=; b=QQ6ZAP4dBhQOsT7smPekDgTCBmMYYPmE3q4BWlHbF/HhsDVGwbkdkx7oLKOJKBzJP9Vx V9UiMmdB/ZvL1EYwS8c+aVgVzkoQUw7ojagFx1mNAamgs3+ZaljpHKCRZjNLr5VV+RWSr JmH/LegHCiUkohHXn7NZY7vk6xc6StVKLF21ERcTlpkDGthuPMdPlh0I8a41n66zdbu3j YNdLE2jURgl//fO6u3k/b9bEwxC22wHsc9wQyzN4Kt4TohJPgoZhZrHYy0z0PNSYDsACT zLIf+1fOagIsx/FiC6iuu3Ks+cV5lYa/mAzPvVicEH54QgoNgvTJNBAfsr7CKardUBw== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b="LK8Yr/IV"; arc=none smtp.remote-ip=74.125.82.52 Received: from mail-dl1-f52.google.com (mail-dl1-f52.google.com [74.125.82.52]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1D63606ED8F for ; Wed, 11 Nov 2026 06:57:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org D1D63606ED8F Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=LK8Yr/IV Received: by mail-dl1-f52.google.com with SMTP id a92af1059eb24-1a8cc11ac42so2811153c88.0 for ; Tue, 10 Nov 2026 22:57:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794380237; x=1794985037; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bhvMvFH7eU7owbTmWTGdGWX6kvxc3rwopdiBlGg5XF8=; b=LK8Yr/IVHhomlJCMcrR2W/GqKRjNatfGvq2QMkM2j8rsiX5+8aerEfcVy7R9Giz/O1 2QLo5dm75Wc9820FkOdm6Wm34j61yktpPbgJJZPAnE9Bfgm67YbS6Lj38LQ16MCIYd2k 7TnJJTcnAbpw0M6Gnp5DKb5eKnlNLHjhzNw4uSwl+z2xuXQ7DtSTRzUDK6At0uraUtk6 RtIwvzFIIz4ZpqFplCkTsjZWtEAEAQww+40NbDbThnu90ECMNXBkr8A2b+uS1f0ZZiNY NZGkZqxMCmt/4hrVnPPOHWgW7TcTsDvRevmscRLveQbrz7+cCZ8otZuo1KfhR4Fp/oBF Lz5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794380237; x=1794985037; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=bhvMvFH7eU7owbTmWTGdGWX6kvxc3rwopdiBlGg5XF8=; b=Ia9LuUPPFIcoS+sKlqIsvsq0WGR75/K172IfK+El0BN2mZxTaYl6rrUJispC+eZZm9 0Mn4sdk486+AWCtQMAweScODT6qXRFiXzc6ZWZdvCUU/bmTJOJhCsD9MjQ8KSMdWGWGA syjTcQTDNGuukoSEek2H88d9Wlxe9ZbE8R0BPc2cqr5X6UQocub6EoVMXR7NvpejgjO6 emH5E4LwjdBgVOnTzsv/MXlQ08TjJTz+1vAjSeMVzACtuOIjFKNZCtm92XCbARPxoq6S 6musYS4lPcDZIl158LCajgXY+iGi3nhlVAQ/Ifaj6yL6igvP4feeZCPY0deBhaPNg+dw HOtw== X-Forwarded-Encrypted: i=1; AL+hErFIOHGwOSOu0eAn+lMcXeTJwex9RZlfNFAhXyRvDF3lwQTTLtpctDBAiFNPoSvx7u1sBHsfGYvZI78fma8=@vger.kernel.org X-Gm-Message-State: APuU4Z9ya9Mm5RIHrGAeKwW85SMSBeUMxdcY9vx/P3bJOpaWNx5mYk5/ eHZyyxZO9fOyr4vvEaxWGZAGKS66Lcu6Mmjkonvha+A3IryBLO0FERfq X-Gm-Gg: AYBFou3MqxRldqBSbiC1X+DZwHzOR5Urx67zFQDtR4wjdSJBH/qs2//hy5BKuV4+iQw vD0bn0b+Kmh4WFCxksKWMTxqRuD2KDNqxALV7/sgj1wyFDyDhAbjxHb0a3LMdpsqz59zQtr6h6a N/D9NxfKGXDMKUU52R2zoCCVeWoteIGtbj9s8/6X9ElihiQLuhGkxE4RVnxlR8XN7N+/WJq1uVq IoJsoszLX3E7gXNm685IXyqxhluAyncBPblGRjHQ/iaJyHqkwrXVbuQR8DLnfhWNmFKxOtbJjfA 9vFmXVGv9DAn6WQmNMRN5wzh7ksJ/nTDQFumfqQ0W4H4svGYqt8zpDYjp99JT2tjshalu3jA2kF j7sUwXqjlmmYRR8OtqYModZD1RBIXdoIRzl7mex4mjiqiWu4envpPS2Fi9YQKLlKvzN4TYv1D5z Wnruw88xbGWS8IeOHXmnoJFBvT2dgcgDJCp6/g5OZ2g3R8J6rKlftLaAIRpzdojaAOhIjqyTmBT 17PRvBADv0UAFG9YtwYdm6Foy6QuXMBSJ05KLjdxexuGy9A8EopO/m/pVNi25iJiRKBHwWQyKbg Dfsaem5f429ROlEUhJYnQ+3ppll9zf4ghBmPq9mrFRh67r1hOh+Ru5ZrCfuohfQRwJcGqbg4CpN 3zGy3L4Ocz2FE9eJ0+FI= X-Received: by 2002:a05:7022:b058:10b0:185:33ab:4d55 with SMTP id a92af1059eb24-1b3c137c87emr1138700c88.29.1794380236899; Tue, 10 Nov 2026 22:57:16 -0800 (PST) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:311a:ad7a:93f8:96c8]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1b3b5b11435sm13858121c88.4.2026.11.10.22.57.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Nov 2026 22:57:16 -0800 (PST) From: Dmitry Torokhov Date: Tue, 10 Nov 2026 22:48:30 -0800 Subject: [PATCH v2 32/33] HID: logitech-hidpp: manage ps_attribute_group with devm_device_add_group() X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261110-hid-logitech-hidpp-v2-32-30743e91d83b@gmail.com> References: <20261110-hid-logitech-hidpp-v2-0-30743e91d83b@gmail.com> In-Reply-To: <20261110-hid-logitech-hidpp-v2-0-30743e91d83b@gmail.com> To: Jiri Kosina , Benjamin Tissoires , Gideon Heinz Cc: =?utf-8?q?Filipe_La=C3=ADns?= , Bastien Nocera , Hans de Goede , Edwin Velds , Stuart Hayhurst , Andrey Smirnov , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.17-dev-e56a4 Managing the power-supply sysfs attribute group manually requires explicit cleanup in both probe failure paths and device removal, even though all surrounding device state uses devres. Switch to devm_device_add_group() while keeping synchronous creation before connecting subdrivers and non-fatal warning behavior on failure. Drop the manual removal calls, eliminate the empty start-failure unwind label in probe, and simplify device removal accordingly. Tested-by: Gideon Heinz Signed-off-by: Dmitry Torokhov --- drivers/hid/hid-logitech-hidpp.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c index be3c2649b0e3..019b917c3b90 100644 --- a/drivers/hid/hid-logitech-hidpp.c +++ b/drivers/hid/hid-logitech-hidpp.c @@ -4638,7 +4638,7 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id) return ret; /* indicates we are handling the battery properties in the kernel */ - ret = sysfs_create_group(&hdev->dev.kobj, &ps_attribute_group); + ret = devm_device_add_group(&hdev->dev, &ps_attribute_group); if (ret) hid_warn(hdev, "Cannot allocate sysfs group for %s\n", hdev->name); @@ -4652,7 +4652,7 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id) ret = hid_hw_start(hdev, 0); if (ret) { hid_err(hdev, "hw start failed\n"); - goto hid_hw_start_fail; + return ret; } ret = hid_hw_open(hdev); @@ -4711,8 +4711,6 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id) hid_hw_close(hdev); hid_hw_open_fail: hid_hw_stop(hdev); -hid_hw_start_fail: - sysfs_remove_group(&hdev->dev.kobj, &ps_attribute_group); return ret; } @@ -4721,22 +4719,19 @@ static void hidpp_remove(struct hid_device *hdev) struct hidpp_device *hidpp = hid_get_drvdata(hdev); bool claimed_input; - if (!hidpp) - return hid_hw_stop(hdev); - - sysfs_remove_group(&hdev->dev.kobj, &ps_attribute_group); - - claimed_input = hdev->claimed & HID_CLAIMED_INPUT; - hdev->claimed &= ~HID_CLAIMED_INPUT; - if (claimed_input) - hidpp->input = NULL; - - hid_device_io_start(hdev); - disable_work_sync(&hidpp->work); - disable_work_sync(&hidpp->reset_hi_res_work); - if (claimed_input) - hidinput_disconnect(hdev); - hid_device_io_stop(hdev); + if (hidpp) { + claimed_input = hdev->claimed & HID_CLAIMED_INPUT; + hdev->claimed &= ~HID_CLAIMED_INPUT; + if (claimed_input) + hidpp->input = NULL; + + hid_device_io_start(hdev); + disable_work_sync(&hidpp->work); + disable_work_sync(&hidpp->reset_hi_res_work); + if (claimed_input) + hidinput_disconnect(hdev); + hid_device_io_stop(hdev); + } hid_hw_stop(hdev); } -- 2.56.0.542.g3ef89b7020-goog