mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 13:22:57 +00:00
c05aa51378
We should merge this backport - it's needed to prevent deadlocks when dio_complete() does up_read() from IRQ context. And perhaps other places. From: David Howells <dhowells@redhat.com> [PATCH] rwsem: Make rwsems use interrupt disabling spinlocks The attached patch makes read/write semaphores use interrupt disabling spinlocks in the slow path, thus rendering the up functions and trylock functions available for use in interrupt context. This matches the regular semaphore behaviour. I've assumed that the normal down functions must be called with interrupts enabled (since they might schedule), and used the irq-disabling spinlock variants that don't save the flags. Signed-Off-By: David Howells <dhowells@redhat.com> Tested-by: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Chris Wright <chrisw@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
||
---|---|---|
.. | ||
reed_solomon | ||
zlib_deflate | ||
zlib_inflate | ||
bitmap.c | ||
bust_spinlocks.c | ||
cmdline.c | ||
crc-ccitt.c | ||
crc32.c | ||
crc32defs.h | ||
ctype.c | ||
dec_and_lock.c | ||
div64.c | ||
dump_stack.c | ||
errno.c | ||
extable.c | ||
find_next_bit.c | ||
gen_crc32table.c | ||
idr.c | ||
inflate.c | ||
int_sqrt.c | ||
iomap.c | ||
Kconfig | ||
Kconfig.debug | ||
kernel_lock.c | ||
kobject.c | ||
kobject_uevent.c | ||
kref.c | ||
libcrc32c.c | ||
Makefile | ||
parser.c | ||
prio_tree.c | ||
radix-tree.c | ||
rbtree.c | ||
rwsem-spinlock.c | ||
rwsem.c | ||
string.c | ||
vsprintf.c |