Re: DEBUG_LOCKS_WARN_ON(in_interrupt()) triggering in socket code

From: Michal Kubecek
Date: Fri Aug 21 2015 - 10:09:09 EST


On Fri, Aug 21, 2015 at 03:42:33PM +0200, Jason A. Donenfeld wrote:
> Ahhh, interesting, so it turns out you can't do a number of things
> with a read_lock_bh held, because it increases the softirq count.
> Mystery solved.

You must not do anything that can sleep (like taking a mutex) while
holding a rwlock (even for reading) as someone else could call
write_lock() on the same rwlock on the same CPU in the meantime and
would end up spinning indefinitely while waiting for you to release it.

Michal Kubecek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/