Re: Bug in ioremap: boundary case is wrong

Alan Cox (alan@lxorguk.ukuu.org.uk)
Sun, 26 Jul 1998 17:24:27 +0100 (BST)


> > The x86 ioremap starts with
> >
> > if(phys_addr < virt_to_phys(high_memory))
> > return phys_to_virt(phys_addr);
> >
> > If you vremap an area whose end point is over the high_memory point your
> > memory mapping breaks. [...]
>
> this case is sick anyway, what does it mean to have a single mapping going
> across the end of memory? We should rather do:
>
> if(phys_addr < virt_to_phys(high_memory)) {
> if (phys_addr+size > high_memory)
> panic("huh?");
> return phys_to_virt(phys_addr);
> }

Perhaps. But one or the other is needed, as right now its wrong ;)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html