Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7b1a1a3 authored by Roman Zippel's avatar Roman Zippel Committed by Linus Torvalds
Browse files

[PATCH] m68k: fix __iounmap for 030



Ignore empty pmd entry during iomap (these are the holes between the
mappings).

Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 6bf9f755
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -259,13 +259,15 @@ void __iounmap(void *addr, unsigned long size)

		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)) {