Re: Someone broke USB

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Sun, 7 Jul 2019 20:27:18 +0200
On 2019-07-07 18:58, Hans Petter Selasky wrote:
> On 2019-07-07 18:54, Steve Kargl wrote:
>> This a 7720 line, 262KB file, do you want me to send it
>> to you in private email or put in my home directory on
>> freefall (i.e.,kargl_at_freefall.freebsd.org).
> 
> Send it to the people CC'ed, except the list.
> 

Hi,

I'm wondering if there is a race by default, that wee need to explore 
the root HUBs in a certain order?

Can you try to reverse the order in usb_needs_explore_all() in 
sys/dev/usb and put a pause("W", hz); call between each iteration?

--HPS

> void
> usb_needs_explore_all(void)
> {
>         struct usb_bus *bus;
>         devclass_t dc;
>         device_t dev;
>         int max;
> 
>         DPRINTFN(3, "\n");
> 
>         dc = usb_devclass_ptr;
>         if (dc == NULL) {
>                 DPRINTFN(0, "no devclass\n");
>                 return;
>         }
>         /*
>          * Explore all USB buses in parallel.
>          */
>         max = devclass_get_maxunit(dc);
>         while (max >= 0) {
>                 dev = devclass_get_device(dc, max);
>                 if (dev) {
>                         bus = device_get_softc(dev);
>                         if (bus) {
>                                 usb_needs_explore(bus, 1);
>                         }
>                 }
>                 max--;
>         }
> }
Received on Sun Jul 07 2019 - 16:28:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:21 UTC