diff --git a/arch/sh/mm/ioremap.c b/arch/sh/mm/ioremap.c
index 24f6ba6bff715d4233a5e04dedaea584621db0b3..e8b65f645aeda7de719535b794764436e5447f20 100644
--- a/arch/sh/mm/ioremap.c
+++ b/arch/sh/mm/ioremap.c
@@ -142,6 +142,12 @@ void __iounmap(void __iomem *addr)
 	if (iomapping_nontranslatable(vaddr))
 		return;
 
+	/*
+	 * There's no VMA if it's from an early fixed mapping.
+	 */
+	if (iounmap_fixed(addr) == 0)
+		return;
+
 #ifdef CONFIG_PMB
 	/*
 	 * Purge any PMB entries that may have been established for this