[PATCH] fix iounmap for non page aligned addresses

Andi Kleen (ak@muc.de)
Tue, 9 Jul 2002 13:55:34 +0200


Hi Linus,

This fixes a problem introduced by the pageattr ioremap/unmap patches.
iounmap lost the ability to free non page aligned addresses, which
are e.g. used by the bootflag code. This patch fixes this.

Also fix a potential off by one bug.

-Andi

--- linux-work/arch/i386/mm/ioremap.c.~2~ Tue Jun 18 02:13:09 2002
+++ linux/arch/i386/mm/ioremap.c Fri Jun 21 14:42:23 2002
@@ -213,9 +213,9 @@
void iounmap(void *addr)
{
struct vm_struct *p;
- if (addr < high_memory)
+ if (addr <= high_memory)
return;
- p = remove_kernel_area(addr);
+ p = remove_kernel_area(PAGE_MASK & (unsigned long) addr);
if (!p) {
printk("__iounmap: bad address %p\n", addr);
return;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/