> after looking over the spec, i didn't see this question addressed.  do you?
> it's a byte, so in theory there could be 255 configurations.

Section 9.6 on device descriptors - this applies to every device,
not just hubs.  (Although the iMac keyboard does in fact contain
a hub.)

Yes of course there can be up to 255 configurations.  In practice
there won't, but the word "bug" in the error message hints that the
programmer was aware that it was not particularly good practice to
declare a fixed size array instead of looking at bNumConfigurations
and allocating an array of the correct size.

A large part of the reason the usb keyboard/mouse driver has generated
so much embarrassment is that it's got too many fixed size arrays, which
keep overflowing when a new raspberry pi user tries another complicated
type of mouse or keyboard.

A case could be made for just reading in one configuration descriptor
and ignoring any others, since as far as I can see every plan 9 usb
device driver selects config 0 without checking for other possibilities.

But looking at this particular keyboard, I think the flurry of usb i/o
errors suggests there's a more fundamental problem than descriptor
parsing.  That's why I asked whether you'd changed something in your
usb kernel driver.


Reply via email to