From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=74.125.82.177 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794204673; b=zIGbbRD56STHcLuy6wqkqaJgShYLCaMUqI1g30P1towoRRiIP6b19ZZDqxmD+i/0k16l 0LnQXTFplbWWBKUNF8/TBARIr5POAKD+HT/4FFHVQOIrHKagGoTvGhd7L2sdyP31jVBDC GDwJhfi+hPlKIrdt018/DNV0b0/xM1vleGx1HB2moBZxyGYjqBg0NE8JbPnNYB/xw1kZV sw6FM+7RnQ/qbPmRFUf+GkvK2vXxteRp2dfamg/K5PFMwyEBXxW2AWo0CkceMEmURBN19 WQr+/uGOg7Jf0QhIlDQoh0WFSRNRgjvVB5u62Co+MXDPwbieQ0MtTKPuDxHSAvvN3Ew== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794204673; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Forwarded-Encrypted:X-Gm-Message-State:X-Gm-Gg:X-Received:Received: From:To:Cc:Subject:Date:Message-ID:X-Mailer:In-Reply-To:References: MIME-Version:Content-Transfer-Encoding; bh=TomoyXuW3KzDnQ4RGzocEg0P8W0o7cjVqZCap0ep/+M=; b=1bKX9bxTgqb7wtyufI+BXGMT4b72wQ/4g4E79TzY48vmhRzuapmffdM63PUPzMZKLM9A 2+KG+wB1+Vzw6gsoiSBZX7j0/upCKtRmB9tw74AyFEaAKJf7pPyQzsauVxJhJaI21WdcD Tim/GeZ+YYfXl9jBQYowKnouR6I1QftRmtWjMnb7voyyfqjbwerVplhcrAF6/cy7ghbb1 4FulPcj8Fg0l0QitTfm/a3BMTUQlYkzTRwe2KsTHRkI3s3AakUy6vbgNUAX2efyR3/JyE 6MIAKVbL2ejyOne0fOIj5Zed/kGePo1lF3j9nLKS9BbxjD+wq3iS94ohV9ect1OCjlA== 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="N/cIv6lV"; arc=none smtp.remote-ip=74.125.82.177 Received: from mail-dy1-f177.google.com (mail-dy1-f177.google.com [74.125.82.177]) (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 0625C606A326 for ; Mon, 9 Nov 2026 06:11:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 0625C606A326 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=N/cIv6lV Received: by mail-dy1-f177.google.com with SMTP id 5a478bee46e88-37071c0f42aso1044058eec.0 for ; Sun, 08 Nov 2026 22:11:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794204672; x=1794809472; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=TomoyXuW3KzDnQ4RGzocEg0P8W0o7cjVqZCap0ep/+M=; b=N/cIv6lV8NTkVBBSUycvVcrj7rND78t8AE/YqsYo9OzA1BJ91Kx6BTU4uJzZt9RUwe 8fZ8kUzRGssO/FOseDzPt43d5H7XzWtIhH720k+ooYQHcQCPUOOytdFMfUThBb01wXKC jX8nFtWoMdW90I8yXPcWVSopiLvkeglrIuH2AUnGZpndpQruDTVKYqL6aXJnCZ+rgzs1 9RVnMCEgIG69vnjXPkoie2QaDGHm3P/U4cKvD+rTuv7ZykvSWx6nK5RB09Og1n23NwuK oCn5V688CYorifP/d4IymWPHOLsBkzh2WEwO9csFIj96qmlipgvwlUaSwYbFm6wFhUDX BkHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794204672; x=1794809472; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=TomoyXuW3KzDnQ4RGzocEg0P8W0o7cjVqZCap0ep/+M=; b=JtqezdU57Vviol/NASsK75HBTdjUZNdwK2NTkxRsV0OWOHfisJnWLnduhh9ag7t3s3 AOvJZVePJMQJjgDjKlT+tEvnGUNSM3dN7IF7nf45hTkIY/L5f7bJbS+so7XOekwEamiZ liQ6MzwDMrcmQUCmAxSYOB+vvmnexKs4HFerHwvCnRSUt1doDYq8LUf4ekvzxuKliTzZ n+HN4JNAcCu00KpGUmDpawxxYXlf3/b9/IqIZHIoROeswEITs9ibsjP1Ns+ANSZ3P8Rc wJ2Q2ahMercLVDUWEOfUB33dF5j6F6Ef+fdIViUq0VuiW1FfTxJjib+GF4606Wsc8qbN Kfqg== X-Forwarded-Encrypted: i=1; AL+hErHbSyObHd5+LgSk59t+72p+GiZPJlwZ7g9i7TKw5HOOmIz3g+48Gxm7LPLuMj2LzS/3P1Z4mXB6Thh+UXQ=@vger.kernel.org X-Gm-Message-State: APuU4Z9qNT4+PUhp9tpdOQdplotN8UamiRZR2iAbdIiV43E2Jhhpfv4e JWy19WSK8vTV+mQ3aCC9tPNgWHnenDB2DIF/dHT6CDs2RdqDAiJs68Wr X-Gm-Gg: AYBFou0uFQQM0oHBZN2CAHYYC5s2m+1YlrYkc0YsBpJFP1oSEm6qRr6fzD3nENNEva9 zihcK73XipsZ9uLQ0dutiMFMK05e3H88UCvNeYlc8LZg9DKgBUz/VDfO4jNuK0Qs7ptrJnzs/3C QocDpa7/D7C7Y0MPhRVIyc/2SM7MuDeloNGsLPtPR/TG8T8lxLzvTV1yp3WMCT0CGjALgjaDvg3 Edf79Uo+O8dVLYGI7gkWKzd6GswA/PkiwimZ9zhOkLrxNlXeBjEHTZRedJSrkCBJzrk2+dRkxm/ p19UWRfzFU3WRXtXosLxtRJZqnI9n8Is0zZhgp1ob0s/KHFeiO23HCQJOmYVPWhXHPdH3Awq8si TVKv0PNc6BfzH69XmxB0XO9snhmYckoaAfgtzw6l64XFZo8fFTn4SvscdDPhw5VGHqaHET3We/T GtG4rBArBcZkLqRhQ5PMbxuocH4Sf/xrU4Xe7U2MB+NOrneFcnweM+Ta891JuqyY+Gqwz9yho7o 3nZ6uRcR1sQas3mm9ypTss4/2gNqonBE0vsXbq4kRdK47oEFC/OuSTmVTaMOrnPIidelPATAtBB vHywHMSsfO7s65c13HLnU4sGzzWdVCxPiHmifH5yLb4npUwUyqQlzsT9fA9kQdgb7aS4JV3wSJ7 WGdHwHdknOTZAXfQr X-Received: by 2002:a05:693c:415a:10b0:36c:9af3:2309 with SMTP id 5a478bee46e88-3725827055emr6050311eec.0.1794204672142; Sun, 08 Nov 2026 22:11:12 -0800 (PST) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:3588:b56:78bf:db5e]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-372661ede11sm12201192eec.21.2026.11.08.22.11.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Nov 2026 22:11:11 -0800 (PST) From: Dmitry Torokhov To: Jiri Kosina , Benjamin Tissoires , Gideon Heinz Cc: =?UTF-8?q?Filipe=20La=C3=ADns?= , Bastien Nocera , Hans de Goede , Edwin Velds , Stuart Hayhurst , Andrey Smirnov , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH 03/18] HID: logitech-hidpp: drain G920 FF workqueue before closing transport Date: Sun, 8 Nov 2026 22:10:47 -0800 Message-ID: <20261109061103.2887636-4-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.56.0.506.g506a7eabc5-goog In-Reply-To: <20261109061103.2887636-1-dmitry.torokhov@gmail.com> References: <20261109061103.2887636-1-dmitry.torokhov@gmail.com> 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-Transfer-Encoding: 8bit Probe no longer keeps the HID transport open indefinitely, so the underlying USB interrupt IN endpoint only stays active while the HID transport is held open. When the last input user closes the device after input core flushes active effects, or when the device is inhibited with commands still queued, releasing the HID transport shuts down transport I/O unless another client holds it open. Queued force-feedback commands then fail to receive their HID++ replies, causing command timeouts and leaving stale slot mappings behind. Override the input close callback once G920 force feedback is initialized so the force-feedback send queue drains completely before closing the HID transport. Fixes: 91cf9a98ae41 ("HID: logitech-hidpp: make .probe usbhid capable") Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov --- drivers/hid/hid-logitech-hidpp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c index 40ebab5241b7..476c0f0eb086 100644 --- a/drivers/hid/hid-logitech-hidpp.c +++ b/drivers/hid/hid-logitech-hidpp.c @@ -2815,6 +2815,15 @@ static void hidpp_ff_destroy(struct ff_device *ff) kfree(data->effect_ids); } +static void hidpp_ff_close(struct input_dev *dev) +{ + struct hid_device *hid = input_get_drvdata(dev); + struct hidpp_ff_private_data *data = dev->ff->private; + + flush_workqueue(data->wq); + hid_hw_close(hid); +} + static int hidpp_ff_init(struct hidpp_device *hidpp, struct hidpp_ff_private_data *data) { @@ -2897,6 +2906,8 @@ static int hidpp_ff_init(struct hidpp_device *hidpp, ff->set_autocenter = hidpp_ff_set_autocenter; ff->destroy = hidpp_ff_destroy; + dev->close = hidpp_ff_close; + /* Create sysfs interface */ error = device_create_file(&(hidpp->hid_dev->dev), &dev_attr_range); if (error) -- 2.56.0.506.g506a7eabc5-goog