On 05/08/21(Thu) 09:41, Aaron Bieber wrote: > > Stuart Henderson writes: > > > On 2021/07/13 01:29, Anindya Mukherjee wrote: > >> I have a Cyber Power CP1500PFCLCDa UPS and get exactly the same crash on > >> the > >> latest snapshot if the USB cable is unplugged. My dmesg is very similar so > >> I've > >> omitted it, but I'd also be happy to help debug this issue. > >> > >> Regards, > >> Anindya > >> > > > > First try backing out the "Allow uhidev child devices to claim selective > > report ids" commit from March. > > Here is a diff that reverts: > > 2021-03-08 6545f693 jcs Add another Type Cover device > 2021-03-08 1f85050a jcs regen > 2021-03-08 fc9d2605 jcs Add Surface Pro Type Cover > 2021-03-08 f31b43ce jcs Allow uhidev child devices to claim selective > report ids > > With them reverted, my UPS(s) no longer trigger panics on disconnect.
The bugs lies in upd_match() and has been introduced with the change containing UHIDEV_CLAIM_MULTIPLE_REPORTID. upd(4) owns all the reportID of a USB device, so a "uha.claimed" logic similar to what has been written for umt_match() is missing. > diff --git a/sys/dev/usb/fido.c b/sys/dev/usb/fido.c > index c6d846aaa84..77bd9b12175 100644 > --- a/sys/dev/usb/fido.c > +++ b/sys/dev/usb/fido.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: fido.c,v 1.3 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: fido.c,v 1.2 2019/12/18 05:09:53 deraadt Exp $ */ > > /* > * Copyright (c) 2019 Reyk Floeter <r...@openbsd.org> > @@ -63,7 +63,7 @@ fido_match(struct device *parent, void *match, void *aux) > void *desc; > int ret = UMATCH_NONE; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (ret); > > /* Find the FIDO usage page and U2F collection */ > diff --git a/sys/dev/usb/ucycom.c b/sys/dev/usb/ucycom.c > index ca8636f0a7f..ca6d6e9c6b2 100644 > --- a/sys/dev/usb/ucycom.c > +++ b/sys/dev/usb/ucycom.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: ucycom.c,v 1.39 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: ucycom.c,v 1.38 2020/02/25 10:03:39 mpi Exp $ */ > /* $NetBSD: ucycom.c,v 1.3 2005/08/05 07:27:47 skrll Exp $ */ > > /* > @@ -165,7 +165,7 @@ ucycom_match(struct device *parent, void *match, void > *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > return (usb_lookup(ucycom_devs, uha->uaa->vendor, uha->uaa->product) != > NULL ? > diff --git a/sys/dev/usb/ugold.c b/sys/dev/usb/ugold.c > index 752ecff64d2..865618cc17d 100644 > --- a/sys/dev/usb/ugold.c > +++ b/sys/dev/usb/ugold.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: ugold.c,v 1.17 2021/04/05 16:26:06 landry Exp $ */ > +/* $OpenBSD: ugold.c,v 1.15 2020/08/17 04:26:57 gnezdo Exp $ */ > > /* > * Copyright (c) 2013 Takayoshi SASANO <u...@openbsd.org> > @@ -113,7 +113,7 @@ ugold_match(struct device *parent, void *match, void *aux) > int size; > void *desc; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > if (usb_lookup(ugold_devs, uha->uaa->vendor, uha->uaa->product) == NULL) > diff --git a/sys/dev/usb/uhid.c b/sys/dev/usb/uhid.c > index 085c1523ccf..ba21e8cf96f 100644 > --- a/sys/dev/usb/uhid.c > +++ b/sys/dev/usb/uhid.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: uhid.c,v 1.84 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: uhid.c,v 1.83 2021/01/29 16:59:41 sthen Exp $ */ > /* $NetBSD: uhid.c,v 1.57 2003/03/11 16:44:00 augustss Exp $ */ > > /* > @@ -115,7 +115,7 @@ uhid_match(struct device *parent, void *match, void *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > return (UMATCH_IFACECLASS_GENERIC); > diff --git a/sys/dev/usb/uhidev.c b/sys/dev/usb/uhidev.c > index cbd0b8336f6..2333c260d71 100644 > --- a/sys/dev/usb/uhidev.c > +++ b/sys/dev/usb/uhidev.c > @@ -1,5 +1,4 @@ > /* $OpenBSD: uhidev.c,v 1.92 2021/03/18 09:21:53 anton Exp $ */ > -/* $NetBSD: uhidev.c,v 1.14 2003/03/11 16:44:00 augustss Exp $ */ > > /* > * Copyright (c) 2001 The NetBSD Foundation, Inc. > @@ -250,28 +249,21 @@ uhidev_attach(struct device *parent, struct device > *self, void *aux) > > uha.uaa = uaa; > uha.parent = sc; > - uha.reportid = UHIDEV_CLAIM_MULTIPLE_REPORTID; > - uha.nreports = nrepid; > - uha.claimed = malloc(nrepid, M_TEMP, M_WAITOK|M_ZERO); > + uha.reportid = UHIDEV_CLAIM_ALLREPORTID; > > - /* Look for a driver claiming multiple report IDs first. */ > + /* Look for a driver claiming all report IDs first. */ > dev = config_found_sm(self, &uha, NULL, uhidevsubmatch); > if (dev != NULL) { > for (repid = 0; repid < nrepid; repid++) { > /* > * Could already be assigned by uhidev_set_report_dev(). > */ > - if (sc->sc_subdevs[repid] != NULL) > - continue; > - > - if (uha.claimed[repid]) > + if (sc->sc_subdevs[repid] == NULL) > sc->sc_subdevs[repid] = (struct uhidev *)dev; > } > + return; > } > > - free(uha.claimed, M_TEMP, nrepid); > - uha.claimed = NULL; > - > for (repid = 0; repid < nrepid; repid++) { > DPRINTF(("%s: try repid=%d\n", __func__, repid)); > if (hid_report_size(desc, size, hid_input, repid) == 0 && > @@ -362,7 +354,7 @@ uhidevprint(void *aux, const char *pnp) > > if (pnp) > printf("uhid at %s", pnp); > - if (uha->reportid != 0 && uha->reportid != > UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid != 0 && uha->reportid != UHIDEV_CLAIM_ALLREPORTID) > printf(" reportid %d", uha->reportid); > return (UNCONF); > } > diff --git a/sys/dev/usb/uhidev.h b/sys/dev/usb/uhidev.h > index ad66873ea75..d11b0ad5fde 100644 > --- a/sys/dev/usb/uhidev.h > +++ b/sys/dev/usb/uhidev.h > @@ -81,9 +81,7 @@ struct uhidev_attach_arg { > struct usb_attach_arg *uaa; > struct uhidev_softc *parent; > uint8_t reportid; > -#define UHIDEV_CLAIM_MULTIPLE_REPORTID 255 > - uint8_t nreports; > - uint8_t *claimed; > +#define UHIDEV_CLAIM_ALLREPORTID 255 > }; > > int uhidev_report_type_conv(int); > diff --git a/sys/dev/usb/ujoy.c b/sys/dev/usb/ujoy.c > index ca461e5969a..18a35d737b9 100644 > --- a/sys/dev/usb/ujoy.c > +++ b/sys/dev/usb/ujoy.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: ujoy.c,v 1.2 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: ujoy.c,v 1.1 2021/01/23 05:08:36 thfr Exp $ */ > > /* > * Copyright (c) 2021 Thomas Frohwein <t...@openbsd.org> > @@ -104,7 +104,7 @@ ujoy_match(struct device *parent, void *match, void *aux) > void *desc; > int ret = UMATCH_NONE; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (ret); > > /* Find the general usage page and gamecontroller collections */ > diff --git a/sys/dev/usb/umstc.c b/sys/dev/usb/umstc.c > index 0f232671f95..71cd2d2b829 100644 > --- a/sys/dev/usb/umstc.c > +++ b/sys/dev/usb/umstc.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: umstc.c,v 1.4 2021/03/08 14:39:34 jcs Exp $ */ > +/* $OpenBSD: umstc.c,v 1.3 2020/09/14 15:21:08 deraadt Exp $ */ > > /* > * Copyright (c) 2020 joshua stein <j...@jcs.org> > @@ -70,7 +70,6 @@ const struct cfattach umstc_ca = { > static const struct usb_devno umstc_devs[] = { > { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_TYPECOVER }, > { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_TYPECOVER2 }, > - { USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_TYPECOVER3 }, > }; > > int > diff --git a/sys/dev/usb/umt.c b/sys/dev/usb/umt.c > index 3aa45bf298a..4218fdefe97 100644 > --- a/sys/dev/usb/umt.c > +++ b/sys/dev/usb/umt.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: umt.c,v 1.4 2021/03/24 02:49:57 jcs Exp $ */ > +/* $OpenBSD: umt.c,v 1.2 2020/08/23 11:08:02 mglocker Exp $ */ > /* > * USB multitouch touchpad driver for devices conforming to > * Windows Precision Touchpad standard > @@ -64,8 +64,8 @@ const struct wsmouse_accessops umt_accessops = { > }; > > int umt_match(struct device *, void *, void *); > -int umt_find_winptp_reports(struct uhidev_softc *, void *, int, int *, > - int *, int *); > +int umt_find_winptp_reports(struct uhidev_softc *, void *, int, > + struct umt_softc *); > void umt_attach(struct device *, struct device *, void *); > int umt_hidev_get_report(struct device *, int, int, void *, int); > int umt_hidev_set_report(struct device *, int, int, void *, int); > @@ -86,19 +86,13 @@ int > umt_match(struct device *parent, void *match, void *aux) > { > struct uhidev_attach_arg *uha = (struct uhidev_attach_arg *)aux; > - int input = 0, conf = 0, cap = 0; > int size; > void *desc; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) { > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) { > uhidev_get_report_desc(uha->parent, &desc, &size); > - if (umt_find_winptp_reports(uha->parent, desc, size, &input, > - &conf, &cap)) { > - uha->claimed[input] = 1; > - uha->claimed[conf] = 1; > - uha->claimed[cap] = 1; > + if (umt_find_winptp_reports(uha->parent, desc, size, NULL)) > return (UMATCH_DEVCLASS_DEVSUBCLASS); > - } > } > > return (UMATCH_NONE); > @@ -106,17 +100,16 @@ umt_match(struct device *parent, void *match, void *aux) > > int > umt_find_winptp_reports(struct uhidev_softc *parent, void *desc, int size, > - int *input, int *config, int *cap) > + struct umt_softc *sc) > { > int repid; > - int finput = 0, fconf = 0, fcap = 0; > + int input = 0, conf = 0, cap = 0; > > - if (input != NULL) > - *input = -1; > - if (config != NULL) > - *config = -1; > - if (cap != NULL) > - *cap = -1; > + if (sc != NULL) { > + sc->sc_rep_input = -1; > + sc->sc_rep_config = -1; > + sc->sc_rep_cap = -1; > + } > > for (repid = 0; repid < parent->sc_nrepid; repid++) { > if (hid_report_size(desc, size, hid_input, repid) == 0 && > @@ -126,26 +119,26 @@ umt_find_winptp_reports(struct uhidev_softc *parent, > void *desc, int size, > > if (hid_is_collection(desc, size, repid, > HID_USAGE2(HUP_DIGITIZERS, HUD_TOUCHPAD))) { > - finput = 1; > - if (input != NULL && *input == -1) > - *input = repid; > + input = 1; > + if (sc != NULL && sc->sc_rep_input == -1) > + sc->sc_rep_input = repid; > } else if (hid_is_collection(desc, size, repid, > HID_USAGE2(HUP_DIGITIZERS, HUD_CONFIG))) { > - fconf = 1; > - if (config != NULL && *config == -1) > - *config = repid; > + conf = 1; > + if (sc != NULL && sc->sc_rep_config == -1) > + sc->sc_rep_config = repid; > } > > /* capabilities report could be anywhere */ > if (hid_locate(desc, size, HID_USAGE2(HUP_DIGITIZERS, > HUD_CONTACT_MAX), repid, hid_feature, NULL, NULL)) { > - fcap = 1; > - if (cap != NULL && *cap == -1) > - *cap = repid; > + cap = 1; > + if (sc != NULL && sc->sc_rep_cap == -1) > + sc->sc_rep_cap = repid; > } > } > > - return (fconf && finput && fcap); > + return (conf && input && cap); > } > > void > @@ -167,8 +160,7 @@ umt_attach(struct device *parent, struct device *self, > void *aux) > sc->sc_quirks = usbd_get_quirks(sc->sc_hdev.sc_udev)->uq_flags; > > uhidev_get_report_desc(uha->parent, &desc, &size); > - umt_find_winptp_reports(uha->parent, desc, size, &sc->sc_rep_input, > - &sc->sc_rep_config, &sc->sc_rep_cap); > + umt_find_winptp_reports(uha->parent, desc, size, sc); > > memset(mt, 0, sizeof(sc->sc_mt)); > > diff --git a/sys/dev/usb/uoaklux.c b/sys/dev/usb/uoaklux.c > index c97bdf57285..3932b139a51 100644 > --- a/sys/dev/usb/uoaklux.c > +++ b/sys/dev/usb/uoaklux.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: uoaklux.c,v 1.14 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: uoaklux.c,v 1.13 2017/04/08 02:57:25 deraadt Exp $ */ > > /* > * Copyright (c) 2012 Yojiro UO <y...@nui.org> > @@ -107,7 +107,7 @@ uoaklux_match(struct device *parent, void *match, void > *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > if (uoaklux_lookup(uha->uaa->vendor, uha->uaa->product) == NULL) > diff --git a/sys/dev/usb/uoakrh.c b/sys/dev/usb/uoakrh.c > index 1e1e49a426c..66a030409de 100644 > --- a/sys/dev/usb/uoakrh.c > +++ b/sys/dev/usb/uoakrh.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: uoakrh.c,v 1.16 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: uoakrh.c,v 1.15 2017/04/08 02:57:25 deraadt Exp $ */ > > /* > * Copyright (c) 2012 Yojiro UO <y...@nui.org> > @@ -110,7 +110,7 @@ uoakrh_match(struct device *parent, void *match, void > *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > if (uoakrh_lookup(uha->uaa->vendor, uha->uaa->product) == NULL) > diff --git a/sys/dev/usb/uoakv.c b/sys/dev/usb/uoakv.c > index 2963e47da0d..a8cdb734001 100644 > --- a/sys/dev/usb/uoakv.c > +++ b/sys/dev/usb/uoakv.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: uoakv.c,v 1.14 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: uoakv.c,v 1.13 2017/04/08 02:57:25 deraadt Exp $ */ > > /* > * Copyright (c) 2012 Yojiro UO <y...@nui.org> > @@ -110,7 +110,7 @@ uoakv_match(struct device *parent, void *match, void *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > if (uoakv_lookup(uha->uaa->vendor, uha->uaa->product) == NULL) > diff --git a/sys/dev/usb/upd.c b/sys/dev/usb/upd.c > index ad65b77718b..50cc25af08f 100644 > --- a/sys/dev/usb/upd.c > +++ b/sys/dev/usb/upd.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: upd.c,v 1.29 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: upd.c,v 1.28 2021/01/29 16:59:41 sthen Exp $ */ > > /* > * Copyright (c) 2015 David Higgs <hig...@gmail.com> > @@ -155,7 +155,7 @@ upd_match(struct device *parent, void *match, void *aux) > int ret = UMATCH_NONE; > int i; > > - if (uha->reportid != UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid != UHIDEV_CLAIM_ALLREPORTID) > return (ret); > > DPRINTF(("upd: vendor=0x%04x, product=0x%04x\n", uha->uaa->vendor, > diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs > index be2674988fb..ab27d9d8fdc 100644 > --- a/sys/dev/usb/usbdevs > +++ b/sys/dev/usb/usbdevs > @@ -1,4 +1,4 @@ > -$OpenBSD: usbdevs,v 1.740 2021/05/18 14:23:03 kevlo Exp $ > +$OpenBSD: usbdevs,v 1.731 2021/02/27 03:03:40 jsg Exp $ > /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ > > /* > @@ -3125,7 +3125,6 @@ product MICROSOFT DOCKETH2 0x07c6 Surface Dock > Ethernet > product MICROSOFT SURFETH 0x0927 Surface Ethernet > product MICROSOFT TYPECOVER 0x096f Surface Go Type Cover > product MICROSOFT TYPECOVER2 0x09b5 Surface Go Type Cover > -product MICROSOFT TYPECOVER3 0x09c0 Surface Pro Type Cover > > /* Microtech products */ > product MICROTECH SCSIDB25 0x0004 SCSI-DB25 > diff --git a/sys/dev/usb/usbdevs.h b/sys/dev/usb/usbdevs.h > index c8956e5a562..47cb4ccdecc 100644 > --- a/sys/dev/usb/usbdevs.h > +++ b/sys/dev/usb/usbdevs.h > @@ -1,11 +1,3 @@ > -/* $OpenBSD: usbdevs.h,v 1.752 2021/05/18 14:23:53 kevlo Exp $ */ > - > -/* > - * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. > - * > - * generated from: > - * OpenBSD: usbdevs,v 1.740 2021/05/18 14:23:03 kevlo Exp > - */ > /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ > > /* > @@ -3132,7 +3124,6 @@ > #define USB_PRODUCT_MICROSOFT_SURFETH 0x0927 /* Surface > Ethernet */ > #define USB_PRODUCT_MICROSOFT_TYPECOVER 0x096f /* Surface Go > Type Cover */ > #define USB_PRODUCT_MICROSOFT_TYPECOVER2 0x09b5 /* > Surface Go Type Cover */ > -#define USB_PRODUCT_MICROSOFT_TYPECOVER3 0x09c0 /* > Surface Pro Type Cover */ > > /* Microtech products */ > #define USB_PRODUCT_MICROTECH_SCSIDB25 0x0004 /* SCSI-DB25 */ > diff --git a/sys/dev/usb/usbdevs_data.h b/sys/dev/usb/usbdevs_data.h > index 97421f8ea74..83f908f7a58 100644 > --- a/sys/dev/usb/usbdevs_data.h > +++ b/sys/dev/usb/usbdevs_data.h > @@ -1,11 +1,3 @@ > -/* $OpenBSD: usbdevs_data.h,v 1.746 2021/05/18 14:23:53 kevlo Exp $ > */ > - > -/* > - * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. > - * > - * generated from: > - * OpenBSD: usbdevs,v 1.740 2021/05/18 14:23:03 kevlo Exp > - */ > /* $NetBSD: usbdevs,v 1.322 2003/05/10 17:47:14 hamajima Exp $ */ > > /* > @@ -7581,10 +7573,6 @@ const struct usb_known_product usb_known_products[] = { > USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_TYPECOVER2, > "Surface Go Type Cover", > }, > - { > - USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_TYPECOVER3, > - "Surface Pro Type Cover", > - }, > { > USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25, > "SCSI-DB25", > diff --git a/sys/dev/usb/uslhcom.c b/sys/dev/usb/uslhcom.c > index 15291aae645..39db391aecd 100644 > --- a/sys/dev/usb/uslhcom.c > +++ b/sys/dev/usb/uslhcom.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: uslhcom.c,v 1.7 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: uslhcom.c,v 1.6 2017/04/08 02:57:25 deraadt Exp $ */ > > /* > * Copyright (c) 2015 SASANO Takayoshi <u...@openbsd.org> > @@ -115,7 +115,7 @@ uslhcom_match(struct device *parent, void *match, void > *aux) > struct uhidev_attach_arg *uha = aux; > > /* use all report IDs */ > - if (uha->reportid != UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid != UHIDEV_CLAIM_ALLREPORTID) > return UMATCH_NONE; > > return (usb_lookup(uslhcom_devs, > diff --git a/sys/dev/usb/uthum.c b/sys/dev/usb/uthum.c > index d368472c19a..601abdc64ab 100644 > --- a/sys/dev/usb/uthum.c > +++ b/sys/dev/usb/uthum.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: uthum.c,v 1.35 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: uthum.c,v 1.34 2020/02/14 14:55:30 mpi Exp $ */ > > /* > * Copyright (c) 2009, 2010 Yojiro UO <y...@nui.org> > @@ -167,7 +167,7 @@ uthum_match(struct device *parent, void *match, void *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > if (uthum_lookup(uha->uaa->vendor, uha->uaa->product) == NULL) > diff --git a/sys/dev/usb/utrh.c b/sys/dev/usb/utrh.c > index c74ca0746ca..cd6f43c06d9 100644 > --- a/sys/dev/usb/utrh.c > +++ b/sys/dev/usb/utrh.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: utrh.c,v 1.24 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: utrh.c,v 1.23 2020/02/25 10:03:39 mpi Exp $ */ > > /* > * Copyright (c) 2009 Yojiro UO <y...@nui.org> > @@ -93,7 +93,7 @@ utrh_match(struct device *parent, void *match, void *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > return (usb_lookup(utrh_devs, uha->uaa->vendor, uha->uaa->product) != > NULL ? > diff --git a/sys/dev/usb/utwitch.c b/sys/dev/usb/utwitch.c > index a7a5479700f..cc8396a21dd 100644 > --- a/sys/dev/usb/utwitch.c > +++ b/sys/dev/usb/utwitch.c > @@ -1,4 +1,4 @@ > -/* $OpenBSD: utwitch.c,v 1.21 2021/03/08 14:35:57 jcs Exp $ */ > +/* $OpenBSD: utwitch.c,v 1.20 2020/02/25 10:03:39 mpi Exp $ */ > > /* > * Copyright (c) 2010 Yojiro UO <y...@nui.org> > @@ -107,7 +107,7 @@ utwitch_match(struct device *parent, void *match, void > *aux) > { > struct uhidev_attach_arg *uha = aux; > > - if (uha->reportid == UHIDEV_CLAIM_MULTIPLE_REPORTID) > + if (uha->reportid == UHIDEV_CLAIM_ALLREPORTID) > return (UMATCH_NONE); > > return (usb_lookup(utwitch_devs, uha->uaa->vendor, uha->uaa->product) > != NULL ?