On 13-12-12 06:20 AM, Peter Zijlstra wrote: > On Thu, Dec 12, 2013 at 12:18:09PM +0100, Peter Zijlstra wrote: >> On Wed, Dec 11, 2013 at 08:06:37PM -0500, Paul Gortmaker wrote:
[...] >>> + >>> +unsigned int >>> +__swake_up(struct swait_queue_head *head, unsigned int state, unsigned int >>> num) >>> +{ >>> + unsigned long flags; >>> + int woken; >>> + >>> + if (!swaitqueue_active(head)) >>> + return 0; >>> + >>> + raw_spin_lock_irqsave(&head->lock, flags); >>> + woken = __swake_up_locked(head, state, num); >>> + raw_spin_unlock_irqrestore(&head->lock, flags); >>> + return woken; >>> +} >>> +EXPORT_SYMBOL(__swake_up); >> >> Urgh, fail. Do not put unbounded loops in raw_spin_lock. >> >> I think I posted a patch a while back to cure this. > > tada! > > lkml.kernel.org/r/20131004145625.gn3...@twins.programming.kicks-ass.net Yep, I linked to that at the bottom of the 0/3 -- I was still hoping we could find a way to somehow do that w/o passing the flags around between functions... perhaps it isn't possible... -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/