From nobody Sun Feb 8 01:51:46 2026 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E01833C1BB for ; Fri, 30 Jan 2026 15:52:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769788337; cv=none; b=EZCeWpAzhMYDcc5wVHq0KiJO2OPRUUphUlZ6WrphhdI8QAF6j2OvRJOu6mGgjBzvOUHs6p1N1DQHo5os4jge65cj+xP82hs05LZsmZMKrZl8fzCiPAUjsBhCnW7kB4jJReL/ZN8/uMCGfwm+3BGKGSOHiZfWi2vQsfkFMqeMVRA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769788337; c=relaxed/simple; bh=aOn0zKgktrR/dJ0qnkNJB5RH5iaBZO2j7mYYORTlGns=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=nvs/xFpxRfKGG6XAUcpG34b+dPbv92jcJ1Ga1apuK9eBPOvFXP9RTi0fUfpUsTEnHVncjMG8O34pj1EH45BwjYoCv52uYVDRdb6GnSFIznTKkjrLRmtFal/dgF5ijehcQXwlvIUpL27aitQc7tAnoyjjNLApraVEF95UjuAYAwo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fYa/H1cI; arc=none smtp.client-ip=209.85.216.43 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.b="fYa/H1cI" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-34be2be4b7cso1142152a91.3 for ; Fri, 30 Jan 2026 07:52:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769788336; x=1770393136; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=R0nr7kLygIkn4gygXUJpzcRLikAfYanLXoCp6q8pPKk=; b=fYa/H1cIK9kKTa2rdwRO6HuDIx1ONPbqWjJKWhbyt/qaSttRCKjZ+XqXmmwU6OQMjd vsxolgmP2mkzVX8t0OUD+Qtc81UAKVhwOEieK/JW+19LnD2lXMuvmaIX6p42EiCVG+ok TDOCzR5NsH0Ww4Z98OVfDlQq4OqUXpEcXT8rmAevyBge/yPsNWkpX8VjjXJeqIFPSGiM cEHMeNaWa5pnXuYDmiJLbLsVth7rsyEXOKXLCfshoX8sJdSku3FzPwIGJzrDZSFn2iDV 10G00vXeB1dXEDUfSXp3U4IbQ/kH4AXz3qnmIHIoK6H4XeTNI4HaANMkrQNw3s7TJC+7 HVHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769788336; x=1770393136; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=R0nr7kLygIkn4gygXUJpzcRLikAfYanLXoCp6q8pPKk=; b=RFoSdM6iP+H434B+vST6xng8Aok7DWZLaKDDwpOxElJY787xp0z0ySYJ97LC29gf9L 629/aSqNWoF5iDhcZmzMZfSMW/e98xfZnQ0M9BfHY0lCRyfr3ZWmlr2SJzWRKp8q1Qzu A+0+hyGVL85bExHQEIEvFx5i99K61+fyvy7tyg1lip+hDpYEvw2TQX/hCJDMVH7+coC7 17GyBPMoLaYlxuIO23mbHQal0G7GzBb41gmMZeR3sUrr+5pWuFRyUq5RXlWj/0OQfq7S ItwAmOUZx9POEmhdJhqzl4YGhp+Iq86VqCD3ddKx85HxQS5UkaLZAY1xQwW0i2EtqIEn smlg== X-Forwarded-Encrypted: i=1; AJvYcCV6zT7Oi3V55zFA3OR3V3ftLoyKMoSMfW5pL9neMoimPB3CY4LLO9o3WMvZYfpbFOH6WiyOTGrVXNrEyXg=@vger.kernel.org X-Gm-Message-State: AOJu0YxgH9a7Hl3Q0xbV5zTlvIAlauMbhqGMyqmn19s5iDi3Sl5hzsIw GtL7aLDRtqBl4Im/owM3JRCLM0z5Jma6tBU4LNRym1riM1qJ5mZ9Hy0K X-Gm-Gg: AZuq6aLOabjf2b03oIv9ThAa3MhR4bBncacGYxPwGorr3FM/uS/Cp0660X7sVSfccwz rg7zL4D1sqAuYoz4I9QhnD0d0rKsLHw767UnyV5UNn2qJy/2dltU3w6evTGM72SIuNBGltQ2Egv RiT4obgDEshnKHauMziUwNhC6nzUJWkmneIYiMDIPQUIPd92t/YYxYVmByQU4DI98bo4UgH9CB8 zoaOHRaevfxVctxEIeTM3gpqk2T0O0qmGZ3Lt3ZMlkeZm130cJaHci8Bc+Sivy7em7mIkaDeOiv HMYJfUxOzZU1U7fbqz//Nhce6RKlJQYSn/OQ0qqUQvwBCouATuuuzaf+4x4p6qvnvnjcbj5SIBL UVxyxydIHcbKy8y4zkCnBWSXAf2O9O6wwMdYqwm3+FgaNdQGUTKyB+9MQQGI1dVs7svGPIJzXgg eIEnTivPLg6UBbpQLx0rgJyrb29qw= X-Received: by 2002:a17:90b:5705:b0:343:7714:4cab with SMTP id 98e67ed59e1d1-3543b3b22e8mr3079599a91.22.1769788335410; Fri, 30 Jan 2026 07:52:15 -0800 (PST) Received: from chandna.localdomain ([106.222.232.101]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82379b4ea8bsm10607509b3a.22.2026.01.30.07.52.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jan 2026 07:52:14 -0800 (PST) From: Sahil Chandna To: jikos@kernel.org, bentiss@kernel.org, connorbelli2003@gmail.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sahil Chandna , syzbot+13f8286fa2de04a7cd48@syzkaller.appspotmail.com Subject: [PATCH] HID: asus: Add check for cancelling fn_lock_sync_work Date: Fri, 30 Jan 2026 21:22:04 +0530 Message-ID: <20260130155204.96831-1-chandna.sahil@gmail.com> X-Mailer: git-send-email 2.50.1 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 Content-Type: text/plain; charset="utf-8" syzbot reported a workqueue warning where fn_lock_sync_work is cancelled during device removal before the work has been initialized. This can happen when the device is disconnected while initialization is still in progress. Fix this by initializing fn_lock_sync_work before marking fn_lock as enabled, and by using fn_lock as a flag in the remove path. This ensures cancel_work_sync() is only called for initialized work. Fixes: f631011e36b8 ("HID: hid-asus: Implement fn lock for Asus ProArt P16") Reported-by: syzbot+13f8286fa2de04a7cd48@syzkaller.appspotmail.com Signed-off-by: Sahil Chandna --- drivers/hid/hid-asus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c index 1b9793f7c07e..bb85a36de14f 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -960,8 +960,8 @@ static int asus_input_configured(struct hid_device *hde= v, struct hid_input *hi) } =20 if (drvdata->quirks & QUIRK_HID_FN_LOCK) { - drvdata->fn_lock =3D true; INIT_WORK(&drvdata->fn_lock_sync_work, asus_sync_fn_lock); + drvdata->fn_lock =3D true; asus_kbd_set_fn_lock(hdev, true); } =20 @@ -1343,7 +1343,7 @@ static void asus_remove(struct hid_device *hdev) cancel_work_sync(&drvdata->kbd_backlight->work); } =20 - if (drvdata->quirks & QUIRK_HID_FN_LOCK) + if ((drvdata->quirks & QUIRK_HID_FN_LOCK) && drvdata->fn_lock) cancel_work_sync(&drvdata->fn_lock_sync_work); =20 hid_hw_stop(hdev); --=20 2.50.1