David Brownell wrote:
The musb_h_disable() routine can oops in some cases:
- It's not safe to read hep->hcpriv outside musb->lock, since it gets changed on completion IRQ paths.
- The list iterators aren't safe to use in that way; just remove the first element while !list_empty(), so deletions on other code paths can't make trouble.
We need two "scrub the list" loops because only one branch should touch hardware and advance the schedule.
[ dbrownell@xxxxxxxxxxxxxxxxxxxxx: massively simplify patch description; add key points as code comments ]
Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
NAK. I request that you stop editing and submitting this particular patch. I've resubmmited it already with a better description and comments...
WBR, Sergei -- 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