diff --git a/arch/unicore32/mm/ioremap.c b/arch/unicore32/mm/ioremap.c
index a0840fa054318437139bdfadb6c1eaa96107e6c3..bf012b2b71a91ad61118c9cf0e54a587d715aa19 100644
--- a/arch/unicore32/mm/ioremap.c
+++ b/arch/unicore32/mm/ioremap.c
@@ -143,11 +143,13 @@ void __iomem *__uc32_ioremap_pfn_caller(unsigned long pfn,
 	/*
 	 * Don't allow RAM to be mapped
 	 */
-	if (pfn_valid(pfn))
+	if (pfn_valid(pfn)) {
 		WARN(1, "BUG: Your driver calls ioremap() on\n"
 			"system memory.  This leads to architecturally\n"
 			"unpredictable behaviour, and ioremap() will fail in\n"
 			"the next kernel release. Please fix your driver.\n");
+		return NULL;
+	}
 
 	type = get_mem_type(mtype);
 	if (!type)