Add missing claim multiple report ids conditionals to uhidev drivers.
authoranton <anton@openbsd.org>
Mon, 22 Nov 2021 11:29:17 +0000 (11:29 +0000)
committeranton <anton@openbsd.org>
Mon, 22 Nov 2021 11:29:17 +0000 (11:29 +0000)
sys/dev/usb/ukbd.c
sys/dev/usb/ums.c
sys/dev/usb/umstc.c
sys/dev/usb/utpms.c
sys/dev/usb/uwacom.c

index 5854373..528bbec 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ukbd.c,v 1.84 2021/09/12 06:58:08 anton Exp $ */
+/*     $OpenBSD: ukbd.c,v 1.85 2021/11/22 11:29:17 anton Exp $ */
 /*      $NetBSD: ukbd.c,v 1.85 2003/03/11 16:44:00 augustss Exp $        */
 
 /*
@@ -201,6 +201,9 @@ ukbd_match(struct device *parent, void *match, void *aux)
        int size;
        void *desc;
 
+       if (UHIDEV_CLAIM_MULTIPLE_REPORTID(uha))
+               return (UMATCH_NONE);
+
        uhidev_get_report_desc(uha->parent, &desc, &size);
        if (!hid_is_collection(desc, size, uha->reportid,
            HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_KEYBOARD)))
index 12f47bb..c217e9b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ums.c,v 1.50 2021/09/12 06:58:08 anton Exp $ */
+/*     $OpenBSD: ums.c,v 1.51 2021/11/22 11:29:17 anton Exp $ */
 /*     $NetBSD: ums.c,v 1.60 2003/03/11 16:44:00 augustss Exp $        */
 
 /*
@@ -93,6 +93,9 @@ ums_match(struct device *parent, void *match, void *aux)
        int size;
        void *desc;
 
+       if (UHIDEV_CLAIM_MULTIPLE_REPORTID(uha))
+               return (UMATCH_NONE);
+
        uhidev_get_report_desc(uha->parent, &desc, &size);
 
        if (hid_is_collection(desc, size, uha->reportid,
index 47c0848..4bebeb4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: umstc.c,v 1.6 2021/09/12 06:58:08 anton Exp $ */
+/*     $OpenBSD: umstc.c,v 1.7 2021/11/22 11:29:18 anton Exp $ */
 
 /*
  * Copyright (c) 2020 joshua stein <jcs@jcs.org>
@@ -80,6 +80,9 @@ umstc_match(struct device *parent, void *match, void *aux)
        int size;
        void *desc;
 
+       if (UHIDEV_CLAIM_MULTIPLE_REPORTID(uha))
+               return (UMATCH_NONE);
+
        if (!usb_lookup(umstc_devs, uha->uaa->vendor, uha->uaa->product))
                return UMATCH_NONE;
 
index 77f5abb..944431e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: utpms.c,v 1.11 2020/10/23 21:23:58 tobhe Exp $        */
+/*     $OpenBSD: utpms.c,v 1.12 2021/11/22 11:29:18 anton Exp $        */
 
 /*
  * Copyright (c) 2005, Johan WallĂ©n
@@ -269,6 +269,9 @@ utpms_match(struct device *parent, void *match, void *aux)
        usb_interface_descriptor_t *id;
        int i;
 
+       if (UHIDEV_CLAIM_MULTIPLE_REPORTID(uha))
+               return (UMATCH_NONE);
+
        id = usbd_get_interface_descriptor(uha->uaa->iface);
        if (id == NULL ||
            id->bInterfaceSubClass != UISUBCLASS_BOOT ||
index ff67e39..e039a96 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uwacom.c,v 1.4 2021/09/12 06:58:08 anton Exp $        */
+/*     $OpenBSD: uwacom.c,v 1.5 2021/11/22 11:29:18 anton Exp $        */
 
 /*
  * Copyright (c) 2016 Frank Groeneveld <frank@frankgroeneveld.nl>
@@ -75,6 +75,9 @@ uwacom_match(struct device *parent, void *match, void *aux)
        int size;
        void *desc;
 
+       if (UHIDEV_CLAIM_MULTIPLE_REPORTID(uha))
+               return (UMATCH_NONE);
+
        if (usb_lookup(uwacom_devs, uha->uaa->vendor,
            uha->uaa->product) == NULL)
                return (UMATCH_NONE);