Module Name: src Committed By: manu Date: Tue Oct 23 01:49:37 UTC 2018
Modified Files: src/sys/dev/usb: uhub.c usb_subr.c Log Message: Make USB port iteration code consistent, always startint at port #1 This complements change in revision 1.140 To generate a diff of this commit: cvs rdiff -u -r1.140 -r1.141 src/sys/dev/usb/uhub.c cvs rdiff -u -r1.227 -r1.228 src/sys/dev/usb/usb_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/usb/uhub.c diff -u src/sys/dev/usb/uhub.c:1.140 src/sys/dev/usb/uhub.c:1.141 --- src/sys/dev/usb/uhub.c:1.140 Fri Oct 19 00:33:27 2018 +++ src/sys/dev/usb/uhub.c Tue Oct 23 01:49:37 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: uhub.c,v 1.140 2018/10/19 00:33:27 manu Exp $ */ +/* $NetBSD: uhub.c,v 1.141 2018/10/23 01:49:37 manu Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhub.c,v 1.18 1999/11/17 22:33:43 n_hibma Exp $ */ /* $OpenBSD: uhub.c,v 1.86 2015/06/29 18:27:40 mpi Exp $ */ @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uhub.c,v 1.140 2018/10/19 00:33:27 manu Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uhub.c,v 1.141 2018/10/23 01:49:37 manu Exp $"); #ifdef _KERNEL_OPT #include "opt_usb.h" @@ -413,11 +413,11 @@ uhub_attach(device_t parent, device_t se sizeof(struct usbd_tt), KM_SLEEP); } /* Set up data structures */ - for (p = 0; p < nports; p++) { - struct usbd_port *up = &hub->uh_ports[p]; + for (p = 1; p <= nports; p++) { + struct usbd_port *up = &hub->uh_ports[p - 1]; up->up_dev = NULL; up->up_parent = dev; - up->up_portno = p + 1; + up->up_portno = p; if (dev->ud_selfpowered) /* Self powered hub, give ports maximum current. */ up->up_power = USB_MAX_POWER; @@ -426,7 +426,7 @@ uhub_attach(device_t parent, device_t se up->up_restartcnt = 0; up->up_reattach = 0; if (UHUB_IS_HIGH_SPEED(sc)) { - up->up_tt = &tts[UHUB_IS_SINGLE_TT(sc) ? 0 : p]; + up->up_tt = &tts[UHUB_IS_SINGLE_TT(sc) ? 0 : p - 1]; up->up_tt->utt_hub = hub; } else { up->up_tt = NULL; Index: src/sys/dev/usb/usb_subr.c diff -u src/sys/dev/usb/usb_subr.c:1.227 src/sys/dev/usb/usb_subr.c:1.228 --- src/sys/dev/usb/usb_subr.c:1.227 Tue Sep 18 01:36:44 2018 +++ src/sys/dev/usb/usb_subr.c Tue Oct 23 01:49:37 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: usb_subr.c,v 1.227 2018/09/18 01:36:44 mrg Exp $ */ +/* $NetBSD: usb_subr.c,v 1.228 2018/10/23 01:49:37 manu Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */ /* @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.227 2018/09/18 01:36:44 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.228 2018/10/23 01:49:37 manu Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -1230,9 +1230,10 @@ usbd_new_device(device_t parent, struct adev = hub, hub = hub->ud_myhub) ; if (hub) { - for (p = 0; p < hub->ud_hub->uh_hubdesc.bNbrPorts; p++) { - if (hub->ud_hub->uh_ports[p].up_dev == adev) { - dev->ud_myhsport = &hub->ud_hub->uh_ports[p]; + for (p = 1; p <= hub->ud_hub->uh_hubdesc.bNbrPorts; p++) { + if (hub->ud_hub->uh_ports[p - 1].up_dev == adev) { + dev->ud_myhsport = + &hub->ud_hub->uh_ports[p - 1]; goto found; } } @@ -1558,8 +1559,8 @@ usbd_fill_deviceinfo(struct usbd_device } const int nports = dev->ud_hub->uh_hubdesc.bNbrPorts; - for (i = 0; i < __arraycount(di->udi_ports) && i < nports; i++) { - p = &dev->ud_hub->uh_ports[i]; + for (i = 1; i <= __arraycount(di->udi_ports) && i <= nports; i++) { + p = &dev->ud_hub->uh_ports[i - 1]; if (p->up_dev) err = p->up_dev->ud_addr; else { @@ -1581,7 +1582,7 @@ usbd_fill_deviceinfo(struct usbd_device else err = USB_PORT_DISABLED; } - di->udi_ports[i] = err; + di->udi_ports[i - 1] = err; } di->udi_nports = nports; } @@ -1633,9 +1634,9 @@ usbd_fill_deviceinfo_old(struct usbd_dev } const int nports = dev->ud_hub->uh_hubdesc.bNbrPorts; - for (i = 0; i < __arraycount(di->udi_ports) && i < nports; + for (i = 1; i <= __arraycount(di->udi_ports) && i <= nports; i++) { - p = &dev->ud_hub->uh_ports[i]; + p = &dev->ud_hub->uh_ports[i - 1]; if (p->up_dev) err = p->up_dev->ud_addr; else { @@ -1649,7 +1650,7 @@ usbd_fill_deviceinfo_old(struct usbd_dev else err = USB_PORT_DISABLED; } - di->udi_ports[i] = err; + di->udi_ports[i - 1] = err; } di->udi_nports = nports; }