intf->class_dev = class_device_create(usb_class, MKDEV(USB_MAJOR, minor), &intf->dev, "%s", temp); 
intf->class_dev = class_device_create(usb_class, NULL, MKDEV(USB_MAJOR, minor), &intf->dev, "%s", temp); 
int usb_register_dev(struct usb_interface *intf,		     struct usb_class_driver *class_driver){	int retval = -EINVAL;	int minor_base = class_driver->minor_base;	int minor = 0;	char name[BUS_ID_SIZE];	char *temp;#ifdef CONFIG_USB_DYNAMIC_MINORS	/* 	 * We don't care what the device tries to start at, we want to start	 * at zero to pack the devices into the smallest available space with	 * no holes in the minor range.	 */	minor_base = 0;#endif	intf->minor = -1;	dbg ("looking for a minor, starting at %d", minor_base);	if (class_driver->fops == NULL)		goto exit;	spin_lock (&minor_lock);	for (minor = minor_base; minor < MAX_USB_MINORS; ++minor) {		if (usb_minors[minor])			continue;		usb_minors[minor] = class_driver->fops;		retval = 0;		break;	}	spin_unlock (&minor_lock);	if (retval)		goto exit;	intf->minor = minor;	/* handle the devfs registration */	snprintf(name, BUS_ID_SIZE, class_driver->name, minor - minor_base);	devfs_mk_cdev(MKDEV(USB_MAJOR, minor), class_driver->mode, name);	/* create a usb class device for this usb interface */	temp = strrchr(name, '/');	if (temp && (temp[1] != 0x00))		++temp;	else		temp = name;	intf->class_dev = class_device_create(usb_class, MKDEV(USB_MAJOR, minor), &intf->dev, "%s", temp);	if (IS_ERR(intf->class_dev)) {		spin_lock (&minor_lock);		usb_minors[intf->minor] = NULL;		spin_unlock (&minor_lock);		devfs_remove (name);		retval = PTR_ERR(intf->class_dev);	}exit:	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/53f4654272df7c51064825024340554b39c9efba/file.c/clean/drivers/usb/core/file.c