Title: [8927] trunk/drivers/usb/host/isp1760-hcd.c: [#5873] Trunk kernel crashed when testing bonnie++ for usb1761 driver
- Revision
- 8927
- Author
- hennerich
- Date
- 2010-06-18 04:36:09 -0400 (Fri, 18 Jun 2010)
Log Message
[#5873] Trunk kernel crashed when testing bonnie++ for usb1761 driver
Fix BUG_ON(!skip_map) issue. When we busy wait in order to guarantee
ISP1760 timing requirements, we need to make sure that the previous
write
actually drained the hardware.
Add mmiowb()I/O write barrier before the ndelay() to ensure ordering of
I/O space writes. This will make sure that writes
following the barrier will arrive after all previous writes.
Modified Paths
Diff
Modified: trunk/drivers/usb/host/isp1760-hcd.c (8926 => 8927)
--- trunk/drivers/usb/host/isp1760-hcd.c 2010-06-18 08:33:22 UTC (rev 8926)
+++ trunk/drivers/usb/host/isp1760-hcd.c 2010-06-18 08:36:09 UTC (rev 8927)
@@ -859,6 +859,7 @@
* almost immediately. With ISP1761, this register requires a delay of
* 195ns between a write and subsequent read (see section 15.1.1.3).
*/
+ mmiowb();
ndelay(195);
skip_map = isp1760_readl(hcd->regs + HC_ATL_PTD_SKIPMAP_REG);
@@ -900,6 +901,7 @@
* almost immediately. With ISP1761, this register requires a delay of
* 195ns between a write and subsequent read (see section 15.1.1.3).
*/
+ mmiowb();
ndelay(195);
skip_map = isp1760_readl(hcd->regs + HC_INT_PTD_SKIPMAP_REG);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits