diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index a49638f41e45a1073eceb0a9adf8d62f1713c931..8cc55f0f0e5cd7be8dfc335da0cd7625404a0d12 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -525,6 +525,8 @@ static void oom_reap_task(struct task_struct *tsk)
 
 static int oom_reaper(void *unused)
 {
+	set_freezable();
+
 	while (true) {
 		struct task_struct *tsk = NULL;