diff --git a/mm/memory.c b/mm/memory.c
index 1d61c5fe12ef..72e1dfa84819 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -4348,6 +4348,9 @@ int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
 		return -EINVAL;
 
 	maddr = ioremap_prot(phys_addr, PAGE_ALIGN(len + offset), prot);
+	if (!maddr)
+		return -ENOMEM;
+
 	if (write)
 		memcpy_toio(maddr + offset, buf, len);
 	else