Преглед на файлове

sh: Handle unmapping of fixed slots transparently in iounmap().

iounmap() should balance whatever is done by ioremap(). Presently
ioremap() can do any of fixed mappings, PMB mappings, or page table
mappings. Presently only the latter two are handled through the standard
unmap path, so tie in the fixed unmapping, too.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt преди 15 години
родител
ревизия
12b6b01cb4
променени са 1 файла, в които са добавени 6 реда и са изтрити 0 реда
  1. 6 0
      arch/sh/mm/ioremap.c

+ 6 - 0
arch/sh/mm/ioremap.c

@@ -142,6 +142,12 @@ void __iounmap(void __iomem *addr)
 	if (iomapping_nontranslatable(vaddr))
 	if (iomapping_nontranslatable(vaddr))
 		return;
 		return;
 
 
+	/*
+	 * There's no VMA if it's from an early fixed mapping.
+	 */
+	if (iounmap_fixed(addr) == 0)
+		return;
+
 #ifdef CONFIG_PMB
 #ifdef CONFIG_PMB
 	/*
 	/*
 	 * Purge any PMB entries that may have been established for this
 	 * Purge any PMB entries that may have been established for this