Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 881c8b1e authored by Alexander Potapenko's avatar Alexander Potapenko
Browse files

UPSTREAM: lib/test_meminit.c: use GFP_ATOMIC in RCU critical section

Upstream commit 733d1d1a7745 ("lib/test_meminit.c: use GFP_ATOMIC in RCU
critical section").

kmalloc() shouldn't sleep while in RCU critical section, therefore use
GFP_ATOMIC instead of GFP_KERNEL.

The bug was spotted by the 0day kernel testing robot.

Link: http://lkml.kernel.org/r/20190725121703.210874-1-glider@google.com


Fixes: 7e659650cbda ("lib: introduce test_meminit module")
Signed-off-by: default avatarAlexander Potapenko <glider@google.com>
Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Reported-by: default avatarkernel test robot <lkp@intel.com>
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>

Change-Id: I0cc435a0a5478e590180f720e3548d6e27789a1e
Bug: 138435492
Test: Boot cuttlefish with and without
Test:   CONFIG_INIT_ON_ALLOC_DEFAULT_ON/CONFIG_INIT_ON_FREE_DEFAULT_ON
Signed-off-by: default avatarAlexander Potapenko <glider@google.com>
parent c41e798f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -222,7 +222,7 @@ static int __init do_kmem_cache_size(size_t size, bool want_ctor,
		 * Copy the buffer to check that it's not wiped on
		 * free().
		 */
		buf_copy = kmalloc(size, GFP_KERNEL);
		buf_copy = kmalloc(size, GFP_ATOMIC);
		if (buf_copy)
			memcpy(buf_copy, buf, size);