summaryrefslogtreecommitdiffstats
path: root/mm/thrash.c
diff options
context:
space:
mode:
authorDavide Libenzi <davidel@xmailserver.org>2009-06-17 16:25:58 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-18 13:03:41 -0700
commit3fe4a975d662f11037cb710f8b4b158a3e38f9c0 (patch)
tree07986fcbf75f9a85c177aa3e7a2472e9833e4565 /mm/thrash.c
parent36025a812eebb34a478cfc1d3a538472591498b0 (diff)
downloadblackbird-op-linux-3fe4a975d662f11037cb710f8b4b158a3e38f9c0.tar.gz
blackbird-op-linux-3fe4a975d662f11037cb710f8b4b158a3e38f9c0.zip
epoll: fix nested calls support
This fixes a regression in 2.6.30. I unfortunately accepted a patch time ago, to drop the "current" usage from possible IRQ context, w/out proper thought over it. The patch switched to using the CPU id by bounding the nested call callback with a get_cpu()/put_cpu(). Unfortunately the ep_call_nested() function can be called with a callback that grabs sleepy locks (from own f_op->poll()), that results in epic fails. The following patch uses the proper "context" depending on the path where it is called, and on the kind of callback. This has been reported by Stefan Richter, that has also verified the patch is his previously failing environment. Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Reported-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/thrash.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud