Messages in this thread | | | Subject | Re: 2.6.9-rc2-mm1 | From | Andi Kleen <> | Date | Mon, 20 Sep 2004 21:30:07 +0200 |
| |
Terence Ripperda <tripperda@nvidia.com> writes:
> this is some ugly code. we're doing a lookup on a physical address to > see if this is memory we previously allocated and returning a kernel > pointer to the page. > > the particular snippet in question (that uses MAXMEM) is an ugly attempt > to verify the address is a real physical address, before using __va() > on something like an i/o region. A better approach than comparing > MAXMEM would probably be to convert the address to a mapnr and compare > to max_mapnr.
pfn_valid() is intended for that. However it cannot work when you have more than 4GB memory and IO memory holes below 4GB. Testing the reserved bit of the struct page * may work in that case, although it can give false positives when you try this with random memory (some people set reserved on real memory for other reason)
-Andi
- 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/
| |