diff --git a/mm/util.c b/mm/util.c
index 34e57fae959decc1edf0805ca5bf40b1ef40d8de..4b93ffa6df96e7837a2f72233a9d3663c1ef06d8 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -156,12 +156,7 @@ void *memdup_user(const void __user *src, size_t len)
 {
 	void *p;
 
-	/*
-	 * Always use GFP_KERNEL, since copy_from_user() can sleep and
-	 * cause pagefault, which makes it pointless to use GFP_NOFS
-	 * or GFP_ATOMIC.
-	 */
-	p = kmalloc_track_caller(len, GFP_KERNEL);
+	p = kmalloc_track_caller(len, GFP_USER);
 	if (!p)
 		return ERR_PTR(-ENOMEM);