24f3f6b5ef
This avoids a deadlock in the IGMP code where one core gets a read lock, another core starts trying to get a write lock (thus blocking new readers), and then the first core tries to recursively re-acquire the read lock. We still try to preserve some degree of balance by giving priority to additional write lockers that come along while the lock is held for write, so they can all complete quickly and return the lock to the readers. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> |
||
---|---|---|
.. | ||
atomic_32.c | ||
atomic_asm_32.S | ||
cacheflush.c | ||
checksum.c | ||
cpumask.c | ||
delay.c | ||
exports.c | ||
Makefile | ||
mb_incoherent.S | ||
memchr_32.c | ||
memcpy_32.S | ||
memcpy_tile64.c | ||
memmove.c | ||
memset_32.c | ||
spinlock_32.c | ||
spinlock_common.h | ||
strchr_32.c | ||
strlen_32.c | ||
uaccess.c | ||
usercopy_32.S |