]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.6.1/md-md.c-fix-oops-in-mddev_suspend-for-raid0.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.6.1 / md-md.c-fix-oops-in-mddev_suspend-for-raid0.patch
CommitLineData
dcf4d15d
GKH
1From 092398dce8c2406bfb0c9eebc3e764ff2ddb62a8 Mon Sep 17 00:00:00 2001
2From: Heinz Mauelshagen <heinzm@redhat.com>
3Date: Tue, 3 May 2016 19:43:57 +0200
4Subject: md: md.c: fix oops in mddev_suspend for raid0
5
6From: Heinz Mauelshagen <heinzm@redhat.com>
7
8commit 092398dce8c2406bfb0c9eebc3e764ff2ddb62a8 upstream.
9
10Introduced by upstream commit 70d9798b95562abac005d4ba71d28820f9a201eb
11
12The raid0 personality does not create mddev->thread as oposed to
13other personalities leading to its unconditional access in
14mddev_suspend() causing an oops.
15
16Patch checks for mddev->thread in order to keep the
17intention of aforementioned commit.
18
19Fixes: 70d9798b9556 ("MD: warn for potential deadlock")
20Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
21Signed-off-by: Shaohua Li <shli@fb.com>
22Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
23
24---
25 drivers/md/md.c | 2 +-
26 1 file changed, 1 insertion(+), 1 deletion(-)
27
28--- a/drivers/md/md.c
29+++ b/drivers/md/md.c
30@@ -307,7 +307,7 @@ static blk_qc_t md_make_request(struct r
31 */
32 void mddev_suspend(struct mddev *mddev)
33 {
34- WARN_ON_ONCE(current == mddev->thread->tsk);
35+ WARN_ON_ONCE(mddev->thread && current == mddev->thread->tsk);
36 if (mddev->suspended++)
37 return;
38 synchronize_rcu();