Invalidate dcache line before accessing Setup Packet contents. Otherwise
driver will see stale content on non coherent architecture.

Signed-off-by: Vignesh Raghavendra <vigne...@ti.com>
---
 drivers/usb/cdns3/ep0.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/cdns3/ep0.c b/drivers/usb/cdns3/ep0.c
index 0b6d9cf7274e..f35a92483948 100644
--- a/drivers/usb/cdns3/ep0.c
+++ b/drivers/usb/cdns3/ep0.c
@@ -562,6 +562,10 @@ static void cdns3_ep0_setup_phase(struct cdns3_device 
*priv_dev)
        struct cdns3_endpoint *priv_ep = priv_dev->eps[0];
        int result;
 
+       /* Invalidate Setup Packet received */
+       invalidate_dcache_range(priv_dev->setup_dma,
+                               priv_dev->setup_dma + ARCH_DMA_MINALIGN);
+
        priv_dev->ep0_data_dir = ctrl->bRequestType & USB_DIR_IN;
 
        trace_cdns3_ctrl_req(ctrl);
-- 
2.25.0

Reply via email to