Title: [7693] trunk/mm/nommu.c: nommu: implement vmap/vunmap with kmalloc
- Revision
- 7693
- Author
- vapier
- Date
- 2009-10-21 05:17:36 -0400 (Wed, 21 Oct 2009)
Log Message
nommu: implement vmap/vunmap with kmalloc
Modified Paths
Diff
Modified: trunk/mm/nommu.c (7692 => 7693)
--- trunk/mm/nommu.c 2009-10-20 18:33:54 UTC (rev 7692)
+++ trunk/mm/nommu.c 2009-10-21 09:17:36 UTC (rev 7693)
@@ -403,14 +403,26 @@
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);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits