struct usb_hub {
struct usb_interface *intf; /* the "real" device */
- struct usb_device *hdev;
struct urb *urb; /* for interrupt polling pipe */
+ struct completion *urb_complete; /* wait for urb to end */
+ unsigned int urb_active:1;
/* buffer for urb ... 1 bit each for hub and children, rounded up */
char (*buffer)[(USB_MAXCHILDREN + 1 + 7) / 8];
struct list_head event_list; /* hubs w/data or errs ready */
unsigned long event_bits[1]; /* status change bitmask */
- unsigned long change_bits[1]; /* ports with logical connect
- status change */
#if USB_MAXCHILDREN > 31 /* 8*sizeof(unsigned long) - 1 */
#error event_bits[] is too short!
#endif