break; 
static void hid_ctrl(struct urb *urb, struct pt_regs *regs){	struct hid_device *hid = urb->context;	unsigned long flags;	int unplug = 0;	spin_lock_irqsave(&hid->ctrllock, flags);	switch (urb->status) {		case 0:			/* success */			if (hid->ctrl[hid->ctrltail].dir == USB_DIR_IN)				hid_input_report(hid->ctrl[hid->ctrltail].report->type, urb, 0, regs);		case -ESHUTDOWN:	/* unplug */		case -EILSEQ:		/* unplug timectrl on uhci */			unplug = 1;		case -ECONNRESET:	/* unlink */		case -ENOENT:		case -EPIPE:		/* report not available */			break;		default:		/* error */			warn("ctrl urb status %d received", urb->status);	}	if (unplug)		hid->ctrltail = hid->ctrlhead;	else		hid->ctrltail = (hid->ctrltail + 1) & (HID_CONTROL_FIFO_SIZE - 1);	if (hid->ctrlhead != hid->ctrltail) {		if (hid_submit_ctrl(hid)) {			clear_bit(HID_CTRL_RUNNING, &hid->iofl);			wake_up(&hid->wait);		}		spin_unlock_irqrestore(&hid->ctrllock, flags);		return;	}	clear_bit(HID_CTRL_RUNNING, &hid->iofl);	spin_unlock_irqrestore(&hid->ctrllock, flags);	wake_up(&hid->wait);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c4786ca8a4274a0bbffe217917972943348bed64/hid-core.c/clean/drivers/usb/input/hid-core.c