Hi Chen, On Mon, 2012-05-21 at 01:05 +0000, Chen Peter-B29397 wrote: > > > > > > USB controller may access a wrong address for the dTD (endpoint transfer > > descriptor) and then hang. This happens a lot when doing tests with > > g_ether module and iperf, a tool for measuring maximum TCP and UDP > > bandwidth. > > > > This hardware bug is explained in detail by errata number 2858 for i.MX23: > > http://cache.freescale.com/files/dsp/doc/errata/IMX23CE.pdf > > > > Does this patch fix your problem? yes, it does! :-) > > +#if defined CONFIG_ARCH_MX51 || defined CONFIG_SOC_IMX35 > > +#define POSTPONE_FREE_LAST_DTD > > +#else > > +#undef POSTPONE_FREE_LAST_DTD > > +#endif > > + > All i.mx SoC has this problem, if PowerPC also has this problem, you can > delete #if defined. Else, you can define it for all i.mx SoC > (CONFIG_ARCH_MXC | CONFIG_ARCH_MXS) I was unsure about this too. I can only test imx35. And mx51 was defined in your tree. So these two should be defined anyway. Marvell doesn't use any defines in mv_udc_core for their fix, so I would be fine without ifdefs too. Any objections? Please see next mail with patch v2. Thanks, -- Christoph -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html