From nobody Sat Aug 23 04:50:59 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4c84Pv4ZPTz65Hc9; Sat, 23 Aug 2025 04:50:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4c84Pv3sb6z46lW; Sat, 23 Aug 2025 04:50:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755924659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IavJ2lyYmNgqt5b72yjYi8Jt6N2Vtj3Map19LtC8jtE=; b=ueyPvlT4tvdWPI12wL2hvcaUaKKpaKzpEpWOGgH2t83DTIDmDk3wnIF43+jNqbNoecp0jH PqSu96FmYuwz/rMELYGN6LJflXaUgK7LKQK6xIoUDdA3l47lcZhzm2DZadlvtulIKetwm4 aqHDkkcS0EjuOMbY8LSU3dzsaSHP3Ykw9/Z5MGAn/Q1hKb+1PJtzstSOHo8v07bBzdr6ra b5mucf5QKkhsb5n1brcczwEZSQnIPtTzM73NV6yt40U8EkZZn9GjObYgXne94rwm5epjl8 kwpB+tQHOKbg23IpA8dIxAkglT6UK5kF5mGZAx5/Sx/QvjPlxwtpMSoc3RuiIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755924659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IavJ2lyYmNgqt5b72yjYi8Jt6N2Vtj3Map19LtC8jtE=; b=xrbQU/04eQciqlsUOdG8y/HmNz1Us9vFE1fTZRMHnZPSktjXZAzLhfVaXpxHdYfZKWH7mD RI1PDMH6Bvxhzn3Dkjc+acrh96PiLx+LBshbAbl02YHiT3fFZ/KRlO4IRTglSuBBZzbZjD IoLDdOPsDX7z35Ut9jUYcHwdKWIXEJ+/RabXm4jgGnmtrJZDxnUPDCReBgyK3VXCXfls+G V3s0gsV4GwSZ1Fw+zb/fFOSIzA4Rmwp2H3GiUuOwhtgyMlBJqF4Yw6A7VPX0RExqUXHZ68 KskXiMnBM3H9+9okgAreX6lIp1LhCn8qeCNPU4GArsl01AJQKWjJiIgNtRN9tQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1755924659; a=rsa-sha256; cv=none; b=C3/6wL9kL2ZXlxkne4kZU8OJc8dX7tNZ4bu+kyUZU4Q9JDPSaanEGKs1WmnZFqOEGb0nnT 8+nNpWgCTLBl6Y7z/MwWMF2H3JKSQWOnZEX5OG4VU8sX0XoN0EzrZcdnBk2w+TDvWwbsKV gl1jbytDwjIcSZZn5GZ5WMAaldE+fqcGwPaicCv644HX+z/gYWcFNt0h/J5tCWDU4Ghs0I DDxbRb9WW3uW8JS1EIaHe+IrFIOjP5qhlFjKCwJ5r/Ww/aM8UM9RCiDjqBgtJdBllLmnDY Ng0D/O2Lg8pmG7NJWt6qT9gammjtU32fEcT34SxZXZ0UWd7Gq7Ws4NjKIDYoLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4c84Pv3S4Lz1GLb; Sat, 23 Aug 2025 04:50:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 57N4oxlL023164; Sat, 23 Aug 2025 04:50:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 57N4oxwG023161; Sat, 23 Aug 2025 04:50:59 GMT (envelope-from git) Date: Sat, 23 Aug 2025 04:50:59 GMT Message-Id: <202508230450.57N4oxwG023161@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: ShengYi Hung Subject: git: 1685192ea1fa - main - hkbd: remove erorr detection in KDSKBSTATE ioctl List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: aokblast X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1685192ea1faac28f2d4feede53e70b6a380500f Auto-Submitted: auto-generated The branch main has been updated by aokblast: URL: https://cgit.FreeBSD.org/src/commit/?id=1685192ea1faac28f2d4feede53e70b6a380500f commit 1685192ea1faac28f2d4feede53e70b6a380500f Author: ShengYi Hung AuthorDate: 2025-08-21 17:59:15 +0000 Commit: ShengYi Hung CommitDate: 2025-08-23 04:50:09 +0000 hkbd: remove erorr detection in KDSKBSTATE ioctl The KDSKBSTATE ioctl brings the LED up. However, some keyboards (like qemu keyboard) may not have LED or failed to set the LED due to unexpected reason. Therefore, removing the error check as ukbd(4) does allow the keyboard works correctly with kbdcontrol(4). Also move hw.hid.hkbd.no_leds sysctl out of HID_BUG thus users can disable setting LEDs PR: 288968 Reviewed by: wulf Tested by: trashcan@ellael.org, marklmi26-fbsd@yahoo.com, trkellers@gmail.coom Approved by: lwsu (mentor), markj (mentor) MFC after 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D52101 mvalsmva --- sys/dev/hid/hkbd.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/sys/dev/hid/hkbd.c b/sys/dev/hid/hkbd.c index 5eff7557bc42..86a2320092be 100644 --- a/sys/dev/hid/hkbd.c +++ b/sys/dev/hid/hkbd.c @@ -95,14 +95,16 @@ #ifdef HID_DEBUG static int hkbd_debug = 0; +#endif static int hkbd_no_leds = 0; static SYSCTL_NODE(_hw_hid, OID_AUTO, hkbd, CTLFLAG_RW, 0, "USB keyboard"); +#ifdef HID_DEBUG SYSCTL_INT(_hw_hid_hkbd, OID_AUTO, debug, CTLFLAG_RWTUN, &hkbd_debug, 0, "Debug level"); +#endif SYSCTL_INT(_hw_hid_hkbd, OID_AUTO, no_leds, CTLFLAG_RWTUN, &hkbd_no_leds, 0, "Disables setting of keyboard leds"); -#endif #define INPUT_EPOCH global_epoch_preempt @@ -1596,8 +1598,16 @@ hkbd_ioctl_locked(keyboard_t *kbd, u_long cmd, caddr_t arg) sc->sc_state &= ~LOCK_MASK; sc->sc_state |= *(int *)arg; - /* set LEDs and quit */ - return (hkbd_ioctl_locked(kbd, KDSETLED, arg)); + /* + * Attempt to set the keyboard LEDs; ignore the return value + * intentionally. Note: Some hypervisors/emulators (e.g., QEMU, + * Parallels—at least as of the time of writing) may fail when + * setting LEDs. This can prevent kbdmux from attaching the + * keyboard, which in turn may block the console from accessing + * it. + */ + (void)hkbd_ioctl_locked(kbd, KDSETLED, arg); + return (0); case KDSETREPEAT: /* set keyboard repeat rate (new * interface) */ @@ -1766,10 +1776,8 @@ hkbd_set_leds(struct hkbd_softc *sc, uint8_t leds) SYSCONS_LOCK_ASSERT(); DPRINTF("leds=0x%02x\n", leds); -#ifdef HID_DEBUG if (hkbd_no_leds) return (0); -#endif memset(sc->sc_buffer, 0, HKBD_BUFFER_SIZE); @@ -1820,6 +1828,7 @@ hkbd_set_leds(struct hkbd_softc *sc, uint8_t leds) SYSCONS_UNLOCK(); error = hid_write(sc->sc_dev, buf, len); SYSCONS_LOCK(); + DPRINTF(("error %d", error)); return (error); }