diff --git a/mm/vmscan.c b/mm/vmscan.c
index 466fc3144fffc64f2f4bd59e23ee52eaa032ff9a..f134db6478d3fc7282998f4702dff85554ff537c 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -699,6 +699,9 @@ void drop_slab_node(int nid)
 	do {
 		struct mem_cgroup *memcg = NULL;
 
+		if (fatal_signal_pending(current))
+			return;
+
 		freed = 0;
 		memcg = mem_cgroup_iter(NULL, NULL, NULL);
 		do {