diff --git a/mm/gup.c b/mm/gup.c
index 6f47697f8fb0b2320cd5df12f2e073ba1b0ee598..0d8d76f10ac61f6c2fe5e98cdb999eeeb8cb620c 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -843,7 +843,7 @@ static int get_gate_page(struct mm_struct *mm, unsigned long address,
 			goto unmap;
 		*page = pte_page(*pte);
 	}
-	if (unlikely(!try_get_page(*page))) {
+	if (unlikely(!try_grab_page(*page, gup_flags))) {
 		ret = -ENOMEM;
 		goto unmap;
 	}