From: Mikulas Patocka Date: Mon, 2 Feb 2015 14:39:02 +0000 (-0500) Subject: sched/wait: Remove might_sleep() from wait_event_cmd() X-Git-Tag: v3.19~7^2~1 X-Git-Url: https://git.kernelconcepts.de/?a=commitdiff_plain;h=3e87523897e18a3e17fc8955ed795188be737ff1;hp=bb2bc55a694d45cdeda91b6f28ab2adec28125ef;p=karo-tx-linux.git sched/wait: Remove might_sleep() from wait_event_cmd() The patch e22b886a8a43 ("sched/wait: Add might_sleep() checks") introduced a bug in the raid5 subsystem. The function raid5_quiesce() (and resize_stripes()) uses the 'cmd' part to release and acquire a spinlock (so we call the sleep primitives in atomic context), and therefore we cannot do the might_sleep() check. Remove it. Fixes: e22b886a8a43 ("sched/wait: Add might_sleep() checks") Signed-off-by: Mikulas Patocka Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1502020935580.13510@file01.intranet.prod.int.rdu2.redhat.com Signed-off-by: Ingo Molnar --- diff --git a/include/linux/wait.h b/include/linux/wait.h index 2232ed16635a..37423e0e1379 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -363,7 +363,6 @@ do { \ */ #define wait_event_cmd(wq, condition, cmd1, cmd2) \ do { \ - might_sleep(); \ if (condition) \ break; \ __wait_event_cmd(wq, condition, cmd1, cmd2); \