Messages in this thread | | | From | Daniel Phillips <> | Subject | Re: Bug: Discontigmem virt_to_page() [Alpha,ARM,Mips64?] | Date | Sun, 28 Apr 2002 00:10:20 +0200 |
| |
On Friday 26 April 2002 20:27, Russell King wrote: > Hi, > > I've been looking at some of the ARM discontigmem implementations, and > have come across a nasty bug. To illustrate this, I'm going to take > part of the generic kernel, and use the Alpha implementation to > illustrate the problem we're facing on ARM. > > I'm going to argue here that virt_to_page() can, in the discontigmem > case, produce rather a nasty bug when used with non-direct mapped > kernel memory arguments.
It's tough to follow, even when you know the code. While cooking my config_nonlinear patch I noticed the line you're concerned about and regarded it with deep suspicion. My patch does this:
- page = virt_to_page(__va(phys_addr)); + page = phys_to_page(phys_addr);
And of course took care that phys_to_page does the right thing in all cases.
<plug> The new config_nonlinear was designed as a cleaner, more powerful replacement for all non-numa uses of config_discontigmem. </plug>
-- Daniel - 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/
| |