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

Reply via email to