[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081225141511.GE6786@oksana.dev.rtsoft.ru>
Date: Thu, 25 Dec 2008 17:15:11 +0300
From: Anton Vorontsov <avorontsov@...mvista.com>
To: Greg Kroah-Hartman <greg@...ah.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Alan Stern <stern@...land.harvard.edu>,
David Brownell <dbrownell@...rs.sourceforge.net>,
Timur Tabi <timur@...escale.com>,
Li Yang <leoli@...escale.com>, linux-usb@...r.kernel.org,
linuxppc-dev@...abs.org, linux-kernel@...r.kernel.org
Subject: [PATCH 5/6] USB: fsl_qe_udc: Fix muram corruption by disabled
endpoints
Before freeing an endpoint's muram memory, we should stop all activity
of the endpoint, otherwise the QE UDC controller might do nasty things
with the muram memory that isn't belong to that endpoint anymore.
The qe_ep_reset() effectively flushes the hardware fifos, finishes all
late transaction and thus prevents the corruption.
Signed-off-by: Anton Vorontsov <avorontsov@...mvista.com>
Acked-by: David Brownell <dbrownell@...rs.sourceforge.net>
---
drivers/usb/gadget/fsl_qe_udc.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c
index 4726582..ea42088 100644
--- a/drivers/usb/gadget/fsl_qe_udc.c
+++ b/drivers/usb/gadget/fsl_qe_udc.c
@@ -1622,6 +1622,7 @@ static int qe_ep_disable(struct usb_ep *_ep)
nuke(ep, -ESHUTDOWN);
ep->desc = NULL;
ep->stopped = 1;
+ qe_ep_reset(udc, ep->epnum);
spin_unlock_irqrestore(&udc->lock, flags);
cpm_muram_free(cpm_muram_offset(ep->rxbase));
--
1.5.6.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists