Skip to content

Commit 3b8d732

Browse files
committed
Revert "USB: EHCI: support running URB giveback in tasklet context"
This reverts commit 428aac8. This isn't quite ready for 3.12, we need some more EHCI driver changes that are just now showing up. So revert this for now, and queue it up later for 3.13. Reported-by: Alan Stern <[email protected]> Cc: Ming Lei <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 272b98c commit 3b8d732

File tree

14 files changed

+18
-13
lines changed

14 files changed

+18
-13
lines changed

drivers/usb/host/ehci-fsl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ static const struct hc_driver ehci_fsl_hc_driver = {
669669
* generic hardware linkage
670670
*/
671671
.irq = ehci_irq,
672-
.flags = HCD_USB2 | HCD_MEMORY | HCD_BH,
672+
.flags = HCD_USB2 | HCD_MEMORY,
673673

674674
/*
675675
* basic lifecycle operations

drivers/usb/host/ehci-grlib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ static const struct hc_driver ehci_grlib_hc_driver = {
4343
* generic hardware linkage
4444
*/
4545
.irq = ehci_irq,
46-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
46+
.flags = HCD_MEMORY | HCD_USB2,
4747

4848
/*
4949
* basic lifecycle operations

drivers/usb/host/ehci-hcd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ static const struct hc_driver ehci_hc_driver = {
11581158
* generic hardware linkage
11591159
*/
11601160
.irq = ehci_irq,
1161-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
1161+
.flags = HCD_MEMORY | HCD_USB2,
11621162

11631163
/*
11641164
* basic lifecycle operations

drivers/usb/host/ehci-mv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ static const struct hc_driver mv_ehci_hc_driver = {
9696
* generic hardware linkage
9797
*/
9898
.irq = ehci_irq,
99-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
99+
.flags = HCD_MEMORY | HCD_USB2,
100100

101101
/*
102102
* basic lifecycle operations

drivers/usb/host/ehci-octeon.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ static const struct hc_driver ehci_octeon_hc_driver = {
5151
* generic hardware linkage
5252
*/
5353
.irq = ehci_irq,
54-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
54+
.flags = HCD_MEMORY | HCD_USB2,
5555

5656
/*
5757
* basic lifecycle operations

drivers/usb/host/ehci-pmcmsp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ static const struct hc_driver ehci_msp_hc_driver = {
286286
#else
287287
.irq = ehci_irq,
288288
#endif
289-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
289+
.flags = HCD_MEMORY | HCD_USB2,
290290

291291
/*
292292
* basic lifecycle operations

drivers/usb/host/ehci-ppc-of.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static const struct hc_driver ehci_ppc_of_hc_driver = {
2828
* generic hardware linkage
2929
*/
3030
.irq = ehci_irq,
31-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
31+
.flags = HCD_MEMORY | HCD_USB2,
3232

3333
/*
3434
* basic lifecycle operations

drivers/usb/host/ehci-ps3.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ static const struct hc_driver ps3_ehci_hc_driver = {
7171
.product_desc = "PS3 EHCI Host Controller",
7272
.hcd_priv_size = sizeof(struct ehci_hcd),
7373
.irq = ehci_irq,
74-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
74+
.flags = HCD_MEMORY | HCD_USB2,
7575
.reset = ps3_ehci_hc_reset,
7676
.start = ehci_run,
7777
.stop = ehci_stop,

drivers/usb/host/ehci-q.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,8 @@ static int qtd_copy_status (
247247

248248
static void
249249
ehci_urb_done(struct ehci_hcd *ehci, struct urb *urb, int status)
250+
__releases(ehci->lock)
251+
__acquires(ehci->lock)
250252
{
251253
if (usb_pipetype(urb->pipe) == PIPE_INTERRUPT) {
252254
/* ... update hc-wide periodic stats */
@@ -272,8 +274,11 @@ ehci_urb_done(struct ehci_hcd *ehci, struct urb *urb, int status)
272274
urb->actual_length, urb->transfer_buffer_length);
273275
#endif
274276

277+
/* complete() can reenter this HCD */
275278
usb_hcd_unlink_urb_from_ep(ehci_to_hcd(ehci), urb);
279+
spin_unlock (&ehci->lock);
276280
usb_hcd_giveback_urb(ehci_to_hcd(ehci), urb, status);
281+
spin_lock (&ehci->lock);
277282
}
278283

279284
static int qh_schedule (struct ehci_hcd *ehci, struct ehci_qh *qh);

drivers/usb/host/ehci-sead3.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const struct hc_driver ehci_sead3_hc_driver = {
5555
* generic hardware linkage
5656
*/
5757
.irq = ehci_irq,
58-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
58+
.flags = HCD_MEMORY | HCD_USB2,
5959

6060
/*
6161
* basic lifecycle operations

drivers/usb/host/ehci-sh.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ static const struct hc_driver ehci_sh_hc_driver = {
3636
* generic hardware linkage
3737
*/
3838
.irq = ehci_irq,
39-
.flags = HCD_USB2 | HCD_MEMORY | HCD_BH,
39+
.flags = HCD_USB2 | HCD_MEMORY,
4040

4141
/*
4242
* basic lifecycle operations

drivers/usb/host/ehci-tilegx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static const struct hc_driver ehci_tilegx_hc_driver = {
6161
* Generic hardware linkage.
6262
*/
6363
.irq = ehci_irq,
64-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
64+
.flags = HCD_MEMORY | HCD_USB2,
6565

6666
/*
6767
* Basic lifecycle operations.

drivers/usb/host/ehci-w90x900.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ static const struct hc_driver ehci_w90x900_hc_driver = {
108108
* generic hardware linkage
109109
*/
110110
.irq = ehci_irq,
111-
.flags = HCD_USB2|HCD_MEMORY|HCD_BH,
111+
.flags = HCD_USB2|HCD_MEMORY,
112112

113113
/*
114114
* basic lifecycle operations

drivers/usb/host/ehci-xilinx-of.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ static const struct hc_driver ehci_xilinx_of_hc_driver = {
7979
* generic hardware linkage
8080
*/
8181
.irq = ehci_irq,
82-
.flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
82+
.flags = HCD_MEMORY | HCD_USB2,
8383

8484
/*
8585
* basic lifecycle operations

0 commit comments

Comments
 (0)