On Wed, Sep 01, 2021 at 02:22:03PM +0200, Peter N. M. Hansteen wrote: > SENDBUG: -*- sendbug -*- > SENDBUG: Lines starting with `SENDBUG' will be removed automatically. > SENDBUG: > SENDBUG: Choose from the following categories: > SENDBUG: > SENDBUG: system user library documentation kernel alpha amd64 arm hppa > i386 m88k mips64 powerpc sh sparc sparc64 vax > SENDBUG: > SENDBUG: > To: [email protected] > Subject: USB regression: on latest amd64 snapshot, plugging in my USB > headset freezes the system > From: [email protected] > Cc: [email protected] > Reply-To: [email protected] > > >Synopsis: USB regression: on latest amd64 snapshot, plugging in my USB > headset freezes the system > >Category: USB > >Environment: > System : OpenBSD 7.0 > Details : OpenBSD 7.0-beta (GENERIC.MP) #195: Mon Aug 23 23:41:21 > MDT 2021 > > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > > Architecture: OpenBSD.amd64 > Machine : amd64 > >Description: > Previously recorded as working, I discovered today that on the 23 > August snapshot, plugging in my > USB headset freezes the system. Mouse (trackpad), keyboard and network > (iwx) all dead. Hard reset needed. > >How-To-Repeat: > Find USB headset, plug in > >Fix: > to be determined, likely a recent USB commit needs a closer look.
Should be solved by the following commit: commit da425875dc1ba65b624bb01a56274feae09bb0a8 Author: anton <[email protected]> Date: Wed Aug 25 05:48:02 2021 +0000 Remove the KB_DEFAULT flag from the wskbd keymap layout. Presence of this flag will cause wskbd to discard the given keymap layout and instead favor the layout of the associated wsmux. This is not a problem while attaching ucc(4) during boot as the wsmux uses the default layout at this point. However, if the layout is changed using /etc/kbdtype from rc(8) during boot, attaching ucc(4) at this point would cause wskbd_attach() to get stuck in an infinite loop: wskbdX: cannot load keymap, falling back to default ... which in turn is caused by ucc(4) only providing a us layout and using anything else in /etc/kbdtype would not work. I missed this as I don't use /etc/kbdtype but cwen@ and Mazzurco Riccardo <mazzurco dot riccardo at protonmail dot com> reported the same problem. diff --git sys/dev/usb/ucc.c sys/dev/usb/ucc.c index cdd5d0f3c07..26f7393e16a 100644 --- sys/dev/usb/ucc.c +++ sys/dev/usb/ucc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ucc.c,v 1.9 2021/08/25 05:47:15 anton Exp $ */ +/* $OpenBSD: ucc.c,v 1.10 2021/08/25 05:48:02 anton Exp $ */ /* * Copyright (c) 2021 Anton Lindqvist <[email protected]> @@ -281,7 +281,7 @@ ucc_attach_wskbd(struct ucc_softc *sc) sc->sc_keydesc[0].map_size = sc->sc_maplen; sc->sc_keydesc[0].map = sc->sc_map; sc->sc_keymap.keydesc = sc->sc_keydesc; - sc->sc_keymap.layout = KB_US | KB_DEFAULT; + sc->sc_keymap.layout = KB_US; sc->sc_wskbddev = config_found(&sc->sc_hdev.sc_dev, &a, wskbddevprint); }
