diff --git a/mm/gup.c b/mm/gup.c
index 7bc1ba9ce4403be192a6a4655257c5690ebf8726..41da0bd61bec3609c7f7ee60f213ee48854652c4 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -465,7 +465,7 @@ static int follow_pfn_pte(struct vm_area_struct *vma, unsigned long address,
 		pte_t *pte, unsigned int flags)
 {
 	/* No page to get reference */
-	if (flags & FOLL_GET)
+	if (flags & (FOLL_GET | FOLL_PIN))
 		return -EFAULT;
 
 	if (flags & FOLL_TOUCH) {