lkml.org 
[lkml]   [2002]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] fix iounmap for non page aligned addresses
On Tue, 9 Jul 2002, Andi Kleen wrote:
>
> 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.

Good.

> Also fix a potential off by one bug.

Niggle: changing "< high_memory" to "<= high_memory"? I think that
change is wrong (though admittedly no wronger than what's in 2.4).

So long as VMALLOC_OFFSET enforces an arbitrary gap of at least 8MB
between high_memory and the vmalloc address area, it doesn't matter.
But one day someone may remove that gap (why not?) to make a few
more addresses available, then "<= high_memory" test could go wrong.

Hugh

> --- 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/

\
 
 \ /
  Last update: 2005-03-22 13:27    [W:0.026 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site