} 
static int iforce_usb_probe(struct usb_interface *intf,				const struct usb_device_id *id){	struct usb_device *dev = interface_to_usbdev(intf);	struct usb_host_interface *interface;	struct usb_endpoint_descriptor *epirq, *epout;	struct iforce *iforce;	interface = intf->cur_altsetting;	epirq = &interface->endpoint[0].desc;	epout = &interface->endpoint[1].desc;	if (!(iforce = kmalloc(sizeof(struct iforce) + 32, GFP_KERNEL)))		goto fail;	memset(iforce, 0, sizeof(struct iforce));	if (!(iforce->irq = usb_alloc_urb(0, GFP_KERNEL))) {		goto fail;	}	if (!(iforce->out = usb_alloc_urb(0, GFP_KERNEL))) {		goto fail;	}	if (!(iforce->ctrl = usb_alloc_urb(0, GFP_KERNEL))) {		goto fail;	}	iforce->bus = IFORCE_USB;	iforce->usbdev = dev;	iforce->cr.bRequestType = USB_TYPE_VENDOR | USB_DIR_IN | USB_RECIP_INTERFACE;	iforce->cr.wIndex = 0;	iforce->cr.wLength = 16;	usb_fill_int_urb(iforce->irq, dev, usb_rcvintpipe(dev, epirq->bEndpointAddress),			iforce->data, 16, iforce_usb_irq, iforce, epirq->bInterval);	usb_fill_bulk_urb(iforce->out, dev, usb_sndbulkpipe(dev, epout->bEndpointAddress),			iforce + 1, 32, iforce_usb_out, iforce);	usb_fill_control_urb(iforce->ctrl, dev, usb_rcvctrlpipe(dev, 0),			(void*) &iforce->cr, iforce->edata, 16, iforce_usb_ctrl, iforce);	if (iforce_init_device(iforce)) goto fail;	usb_set_intfdata(intf, iforce);	return 0;fail:	if (iforce) {		if (iforce->irq) usb_free_urb(iforce->irq);		if (iforce->out) usb_free_urb(iforce->out);		if (iforce->ctrl) usb_free_urb(iforce->ctrl);		kfree(iforce);	}	return -ENODEV;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/17dd3f0f7aa729a042af5d3318ff9b3e7781b45b/iforce-usb.c/buggy/drivers/input/joystick/iforce/iforce-usb.c