* [PATCH] fix iounmap for non page aligned addresses
@ 2002-07-09 11:55 Andi Kleen
2002-07-09 14:16 ` Hugh Dickins
0 siblings, 1 reply; 2+ messages in thread
From: Andi Kleen @ 2002-07-09 11:55 UTC (permalink / raw)
To: torvalds; +Cc: linux-kernel
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;
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] fix iounmap for non page aligned addresses
2002-07-09 11:55 [PATCH] fix iounmap for non page aligned addresses Andi Kleen
@ 2002-07-09 14:16 ` Hugh Dickins
0 siblings, 0 replies; 2+ messages in thread
From: Hugh Dickins @ 2002-07-09 14:16 UTC (permalink / raw)
To: Andi Kleen; +Cc: torvalds, linux-kernel
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;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-07-09 14:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-09 11:55 [PATCH] fix iounmap for non page aligned addresses Andi Kleen
2002-07-09 14:16 ` Hugh Dickins
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.