linux-stable/arch/tile/lib
Chris Metcalf 24f3f6b5ef arch/tile: fix rwlock so would-be write lockers don't block new readers
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>
2010-11-15 09:18:49 -05:00
..
atomic_32.c tile: replace some BUG_ON checks with BUILD_BUG_ON checks 2010-10-05 12:49:35 -04:00
atomic_asm_32.S
cacheflush.c arch/tile: Split the icache flush code off to a generic <arch> header. 2010-07-06 13:41:46 -04:00
checksum.c
cpumask.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
delay.c
exports.c arch/tile: properly export __mb_incoherent for modules 2010-10-14 15:12:55 -04:00
Makefile arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
mb_incoherent.S
memchr_32.c
memcpy_32.S arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
memcpy_tile64.c arch/tile: complete migration to new kmap_atomic scheme 2010-11-01 15:30:36 -04:00
memmove.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
memset_32.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
spinlock_32.c arch/tile: fix rwlock so would-be write lockers don't block new readers 2010-11-15 09:18:49 -05:00
spinlock_common.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
strchr_32.c
strlen_32.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
uaccess.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
usercopy_32.S