aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-01-18 07:33:08 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-01-18 07:33:08 -0500
commit12b6b01cb47dc3eefbef866592193661dad7afb9 (patch)
tree47d23fb1b9657ea6107bc64d91e85de56717bedc /arch/sh/mm
parent4f744affc345f8b158615e0cdd01d1f4985837c3 (diff)
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>
Diffstat (limited to 'arch/sh/mm')
-rw-r--r--arch/sh/mm/ioremap.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/sh/mm/ioremap.c b/arch/sh/mm/ioremap.c
index 24f6ba6bff71..e8b65f645aed 100644
--- a/arch/sh/mm/ioremap.c
+++ b/arch/sh/mm/ioremap.c
@@ -142,6 +142,12 @@ void __iounmap(void __iomem *addr)
142 if (iomapping_nontranslatable(vaddr)) 142 if (iomapping_nontranslatable(vaddr))
143 return; 143 return;
144 144
145 /*
146 * There's no VMA if it's from an early fixed mapping.
147 */
148 if (iounmap_fixed(addr) == 0)
149 return;
150
145#ifdef CONFIG_PMB 151#ifdef CONFIG_PMB
146 /* 152 /*
147 * Purge any PMB entries that may have been established for this 153 * Purge any PMB entries that may have been established for this