On Thu, May 16, 2013 at 01:17:10PM +0300, Alexander Shishkin wrote: > Michael Grzeschik <mgr@xxxxxxxxxxxxxx> writes: > > > From: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > > > > This patch removes the restriction of having a limited amount of only > > four active tds on one endpoint. We use the linked list implementation > > to manage all tds which get added and removed by hardware_{en,de}queue. > > > > The removal of this restriction adds the driver to run into a hardware > > errata. It's possible that the hardware will still address an transfer > > descriptor that already got cleaned up. To solve this the patch also > > postpone the cleanup of processed tds by one. > > > > Some nitpicking below: > > > +/* > > + * free_pending_td: remove a pending request for the endpoint > > + * @mEp: endpoint > > + */ > > +void free_pending_td(struct ci13xxx_ep *mEp) > > Looks like a missing "static". Right! > > > +{ > > + struct td_node *pending = mEp->pending_td; > > + > > + dma_pool_free(mEp->td_pool, pending->ptr, pending->dma); > > + pending->ptr = NULL; > > Why? Oops, this should be mEp->pending_td = NULL; Otherwise an once used ci13xxx_ep would still contain a valid pointer to pending_td on restart. > > > + kfree(pending); > > +} > > + > Thanks, Michael -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- 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