summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'openvz-sources/022.072/5223_diff-usb-kbddetach-20060216.patch')
-rw-r--r--openvz-sources/022.072/5223_diff-usb-kbddetach-20060216.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/openvz-sources/022.072/5223_diff-usb-kbddetach-20060216.patch b/openvz-sources/022.072/5223_diff-usb-kbddetach-20060216.patch
deleted file mode 100644
index 6d644d9..0000000
--- a/openvz-sources/022.072/5223_diff-usb-kbddetach-20060216.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-# This is a BitKeeper generated diff -Nru style patch.
-#
-# ChangeSet
-# 2005/01/13 13:32:43+01:00 vojtech@suse.cz
-# input: Handle -EILSEQ return code in the HID driver completion
-# handlers as unplug.
-# Flush request queue on unplug, too.
-#
-# Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
-#
-# drivers/usb/input/hid-core.c
-# 2005/01/13 13:32:33+01:00 vojtech@suse.cz +18 -5
-# input: Handle -EILSEQ return code in the HID driver completion
-# handlers as unplug.
-# Flush request queue on unplug, too.
-#
-# Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
-#
---- ./drivers/usb/input/hid-core.c.ukbdt 2006-02-16 14:10:14.000000000 +0300
-+++ ./drivers/usb/input/hid-core.c 2006-02-16 15:18:35.000000000 +0300
-@@ -924,7 +924,8 @@ static void hid_irq_in(struct urb *urb,
- break;
- case -ECONNRESET: /* unlink */
- case -ENOENT:
-- case -ESHUTDOWN:
-+ case -ESHUTDOWN: /* unplug */
-+ case -EILSEQ: /* unplug timeout on uhci */
- return;
- default: /* error */
- warn("input irq status %d received", urb->status);
-@@ -1132,12 +1133,15 @@ static void hid_irq_out(struct urb *urb,
- {
- struct hid_device *hid = urb->context;
- unsigned long flags;
-+ int unplug = 0;
-
- switch (urb->status) {
- case 0: /* success */
-+ case -ESHUTDOWN: /* unplug */
-+ case -EILSEQ: /* unplug timeout on uhci */
-+ unplug = 1;
- case -ECONNRESET: /* unlink */
- case -ENOENT:
-- case -ESHUTDOWN:
- break;
- default: /* error */
- warn("output irq status %d received", urb->status);
-@@ -1145,7 +1149,10 @@ static void hid_irq_out(struct urb *urb,
-
- spin_lock_irqsave(&hid->outlock, flags);
-
-- hid->outtail = (hid->outtail + 1) & (HID_OUTPUT_FIFO_SIZE - 1);
-+ if (unplug)
-+ hid->outtail = hid->outhead;
-+ else
-+ hid->outtail = (hid->outtail + 1) & (HID_OUTPUT_FIFO_SIZE - 1);
-
- if (hid->outhead != hid->outtail) {
- if (hid_submit_out(hid)) {
-@@ -1169,6 +1176,7 @@ static void hid_ctrl(struct urb *urb, st
- {
- struct hid_device *hid = urb->context;
- unsigned long flags;
-+ int unplug = 0;
-
- spin_lock_irqsave(&hid->ctrllock, flags);
-
-@@ -1176,16 +1184,21 @@ static void hid_ctrl(struct urb *urb, st
- case 0: /* success */
- if (hid->ctrl[hid->ctrltail].dir == USB_DIR_IN)
- hid_input_report(hid->ctrl[hid->ctrltail].report->type, urb, regs);
-+ case -ESHUTDOWN: /* unplug */
-+ case -EILSEQ: /* unplug timectrl on uhci */
-+ unplug = 1;
- case -ECONNRESET: /* unlink */
- case -ENOENT:
-- case -ESHUTDOWN:
- case -EPIPE: /* report not available */
- break;
- default: /* error */
- warn("ctrl urb status %d received", urb->status);
- }
-
-- hid->ctrltail = (hid->ctrltail + 1) & (HID_CONTROL_FIFO_SIZE - 1);
-+ 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)) {