]> git.baikalelectronics.ru Git - kernel.git/commit
rapidio/rio_cm: avoid GFP_KERNEL in atomic context
authorAlexandre Bounine <alexandre.bounine@idt.com>
Mon, 19 Sep 2016 21:44:47 +0000 (14:44 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 19 Sep 2016 22:36:17 +0000 (15:36 -0700)
commit21060812f934334a42a09e23c253845a217fb546
treeca05935b1c708bc8c982633781d46aed1b0070df
parente851b6aa84ce19b7c3af11f6745ac56282e0b471
rapidio/rio_cm: avoid GFP_KERNEL in atomic context

As reported by Alexey Khoroshilov (https://lkml.org/lkml/2016/9/9/737):
riocm_send_close() is called from rio_cm_shutdown() under
spin_lock_bh(idr_lock), but riocm_send_close() uses a GFP_KERNEL
allocation.

Fix by taking riocm_send_close() outside of spinlock protected code.

[akpm@linux-foundation.org: remove unneeded `if (!list_empty())']
Link: http://lkml.kernel.org/r/20160915175402.10122-1-alexandre.bounine@idt.com
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rapidio/rio_cm.c