diff options
author | Arjan van de Ven <arjanv@infradead.org> | 2004-10-27 18:25:43 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-27 18:25:43 -0700 |
commit | e1f40fc0cf09f591b474a0c17fc4e5ca7438c7dd (patch) | |
tree | 9f767cf3b4ab8a74038a61cd10f50537ad6f15f7 /mm | |
parent | 0e5079135a7ac864ca6f9135bbbb8de0f5191e85 (diff) | |
download | history-e1f40fc0cf09f591b474a0c17fc4e5ca7438c7dd.tar.gz |
[PATCH] vmalloc_to_page helper
After William did the remap_pfn_range change, a very common pattern became:
page = page_to_pfn(vmalloc_to_page((void *)pos));
if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
the patch below adds a very simple helper, vmalloc_to_pfn() to simplify this
a bit.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memory.c | 10 | ||||
-rw-r--r-- | mm/nommu.c | 6 |
2 files changed, 16 insertions, 0 deletions
diff --git a/mm/memory.c b/mm/memory.c index e5c68a782442bb..2f2ba8b1b03278 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1805,6 +1805,16 @@ struct page * vmalloc_to_page(void * vmalloc_addr) EXPORT_SYMBOL(vmalloc_to_page); +/* + * Map a vmalloc()-space virtual address to the physical page frame number. + */ +unsigned long vmalloc_to_pfn(void * vmalloc_addr) +{ + return page_to_pfn(vmalloc_to_page(vmalloc_addr)); +} + +EXPORT_SYMBOL(vmalloc_to_pfn); + #if !defined(CONFIG_ARCH_GATE_AREA) #if defined(AT_SYSINFO_EHDR) diff --git a/mm/nommu.c b/mm/nommu.c index c99c32fd30d11e..1e780d5c58127a 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -144,6 +144,12 @@ struct page * vmalloc_to_page(void *addr) return virt_to_page(addr); } +unsigned long vmalloc_to_pfn(void *addr) +{ + return page_to_pfn(virt_to_page(addr)); +} + + long vread(char *buf, char *addr, unsigned long count) { memcpy(buf, addr, count); |