usb: ehci: remove wmb in qh_update
authorMing Lei <tom.leiming@gmail.com>
Mon, 5 Sep 2011 13:05:55 +0000 (21:05 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 18 Sep 2011 08:38:59 +0000 (01:38 -0700)
qh_refresh is always called when the qh is idle and has not been
linked into hardware queue, so EHCI will not access overlay of
the qh at this time. Just before linking qh into hardware queue, there
has already one wmb to order writing qh descriptor and writing dma
address of the qh into hardware queue, so HC can always see
up-to-date qh descriptor once the qh is fetched with its dma address
by EHCI.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-q.c

index 6ce0b3a9a0f9af53366a7c8092046e36e89ae29c..726bd9d74ebbd4ef5f86bd9fd2316621c1933421 100644 (file)
@@ -111,8 +111,6 @@ qh_update (struct ehci_hcd *ehci, struct ehci_qh *qh, struct ehci_qtd *qtd)
                }
        }
 
-       /* HC must see latest qtd and qh data before we clear ACTIVE+HALT */
-       wmb ();
        hw->hw_token &= cpu_to_hc32(ehci, QTD_TOGGLE | QTD_STS_PING);
 }