diff --git a/mm/memory.c b/mm/memory.c
index b6e5fd2..8c94061 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2775,6 +2775,11 @@ static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned lo
 			return -ENOMEM;
 
 		expand_stack(vma, address);
+	} else if ((vma->vm_flags & VM_GROWSUP) && address == vma->vm_end) {
+		if (find_vma(vma->vm_mm, address) != vma)
+			return -ENOMEM;
+
+		expand_stack(vma, address);
 	}
 	return 0;
 }

