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.
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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 <[email protected]> @@ -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 ?
