git-svn-id: svn://localhost/svn/linux-kernel/tr...@7693 526b6c2d-f592-4532-a319-5dd88ccb003d --- mm/nommu.c | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/mm/nommu.c b/mm/nommu.c index 8687973..d28ab94 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -360,14 +360,26 @@ EXPORT_SYMBOL(vmalloc_32_user); void *vmap(struct page **pages, unsigned int count, unsigned long flags, pgprot_t prot) { - BUG(); - return NULL; + unsigned int i; + void *new_map, *page_data; + + new_map = kmalloc(count << PAGE_SHIFT, GFP_KERNEL); + if (!new_map) + return NULL; + + for (i = 0; i < count; ++i) { + page_data = kmap(pages[i]); + memcpy(new_map + (i << PAGE_SHIFT), page_data, PAGE_SIZE); + kunmap(page_data); + } + + return new_map; } EXPORT_SYMBOL(vmap); void vunmap(const void *addr) { - BUG(); + kfree(addr); } EXPORT_SYMBOL(vunmap); -- 1.6.5.4 _______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev