From: Roman Zippel Ignore empty pmd entry during iomap (these are the holes between the mappings). Signed-off-by: Roman Zippel Signed-off-by: Andrew Morton --- arch/m68k/mm/kmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff -puN arch/m68k/mm/kmap.c~m68k-fix-__iounmap-for-030 arch/m68k/mm/kmap.c --- a/arch/m68k/mm/kmap.c~m68k-fix-__iounmap-for-030 +++ a/arch/m68k/mm/kmap.c @@ -259,13 +259,15 @@ void __iounmap(void *addr, unsigned long if (CPU_IS_020_OR_030) { int pmd_off = (virtaddr/PTRTREESIZE) & 15; + int pmd_type = pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK; - if ((pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK) == _PAGE_PRESENT) { + if (pmd_type == _PAGE_PRESENT) { pmd_dir->pmd[pmd_off] = 0; virtaddr += PTRTREESIZE; size -= PTRTREESIZE; continue; - } + } else if (pmd_type == 0) + continue; } if (pmd_bad(*pmd_dir)) { _