--- drivers/usb/core/message.c.orig 2004-03-25 18:34:04.000000000 +0100 +++ drivers/usb/core/message.c 2004-03-25 18:42:41.267697224 +0100 @@ -1178,10 +1178,17 @@ dev->bus->busnum, dev->devpath, configuration, alt->desc.bInterfaceNumber); + } + + /* all interfaces are initialized, we can now + * register them + */ + for (i = 0; i < cp->desc.bNumInterfaces; ++i) { + struct usb_interface *intf = cp->interface[i]; dev_dbg (&dev->dev, "registering %s (config #%d, interface %d)\n", intf->dev.bus_id, configuration, - alt->desc.bInterfaceNumber); + intf->cur_altsetting->desc.bInterfaceNumber); device_register (&intf->dev); usb_create_driverfs_intf_files (intf); }