Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b312d799 authored by Daniel Drake's avatar Daniel Drake Committed by John W. Linville
Browse files

[PATCH] zd1211rw: usb_clear_halt not allowed in IRQ context



We will reimplement halt-clearing later, when we have periodic
housekeeping routines in place. This will do as a temporary fix, the
EPIPE case has not yet been seen.

Signed-off-by: default avatarDaniel Drake <dsd@gentoo.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 522536f6
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -375,10 +375,8 @@ static void int_urb_complete(struct urb *urb, struct pt_regs *pt_regs)
	case -ENODEV:
	case -ENOENT:
	case -ECONNRESET:
		goto kfree;
	case -EPIPE:
		usb_clear_halt(urb->dev, EP_INT_IN);
		/* FALL-THROUGH */
		goto kfree;
	default:
		goto resubmit;
	}
@@ -580,10 +578,8 @@ static void rx_urb_complete(struct urb *urb, struct pt_regs *pt_regs)
	case -ENODEV:
	case -ENOENT:
	case -ECONNRESET:
		return;
	case -EPIPE:
		usb_clear_halt(urb->dev, EP_DATA_IN);
		/* FALL-THROUGH */
		return;
	default:
		dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
		goto resubmit;
@@ -749,11 +745,9 @@ static void tx_urb_complete(struct urb *urb, struct pt_regs *pt_regs)
	case -ENODEV:
	case -ENOENT:
	case -ECONNRESET:
	case -EPIPE:
		dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
		break;
	case -EPIPE:
		usb_clear_halt(urb->dev, EP_DATA_OUT);
		/* FALL-THROUGH */
	default:
		dev_dbg_f(urb_dev(urb), "urb %p error %d\n", urb, urb->status);
		goto resubmit;