Messages in this thread | | | Date | Fri, 21 May 2004 16:22:33 -0400 | From | nardelli <> | Subject | Re: [linux-usb-devel] [PATCH] visor: Fix Oops on disconnect |
| |
jkroon@cs.up.ac.za wrote: >>I've made all of the changes that recommended below. If it looks like >>I've missed anything, please indicate so. >> >> > > > [snip] > > >>>>+ if (num_ports <= 0 || num_ports > 2) { >>> >>> >>>I like the idea of this check, but you are trying to test for a negative >>>value on a __u16 variable, which is always unsigned. So that check will >>>never be true :) > > > What happens if num_ports == 0? Not that hardware should ever report that. > > [snip] > >
Short answer: A warning is logged and num_ports defaults to 2.
Long answer:
Unfortunately, it does not apear that this class of device sends any kind of connect info back in repsonse to VISOR_GET_CONNECTION_INFORMATION, PALM_GET_EXT_CONNECTION_INFORMATION, or for that matter any request under 200 (or some similiar number - I don't remember how far I tested).
Based upon a usb packet capture under windoze, I believe that the device is not capable of this. I'd really like some kind of documentation on the connection protocol, but I've come up completely empty handed in that regard.
The packet capture available at http://bugzilla.kernel.org/attachment.cgi?id=2924&action=view shows the attempt to send both VISOR_GET_CONNECTION_INFORMATION (3) and PALM_GET_EXT_CONNECTION_INFORMATION (4) requests. Both times nothing is returned.
In any case, when no valid connection info is found, num_ports is initially set to 0, a warning is logged, and num_ports defaults to 2.
-- Joe Nardelli jnardelli@infosciences.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |