diff --git a/mm/nommu.c b/mm/nommu.c
index fd4e8df..064d704 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -57,6 +57,11 @@
 struct vm_operations_struct generic_file_vm_ops = {
 };
 
+EXPORT_SYMBOL(vmalloc);
+EXPORT_SYMBOL(vfree);
+EXPORT_SYMBOL(vmalloc_to_page);
+EXPORT_SYMBOL(vmalloc_32);
+
 /*
  * Handle all mappings that got truncated by a "truncate()"
  * system call.
@@ -142,6 +147,8 @@
 	return(i);
 }
 
+EXPORT_SYMBOL(get_user_pages);
+
 DEFINE_RWLOCK(vmlist_lock);
 struct vm_struct *vmlist;
 
@@ -852,7 +859,7 @@
  error_getting_vma:
 	up_write(&nommu_vma_sem);
 	kfree(vml);
-	printk("Allocation of vml for %lu byte allocation from process %d failed\n",
+	printk("Allocation of vma for %lu byte allocation from process %d failed\n",
 	       len, current->pid);
 	show_free_areas();
 	return -ENOMEM;
@@ -909,7 +916,7 @@
 
 	for (parent = &mm->context.vmlist; *parent; parent = &(*parent)->next)
 		if ((*parent)->vma->vm_start == addr &&
-		    (*parent)->vma->vm_end == end)
+		    ((len == 0) || ((*parent)->vma->vm_end == end)))
 			goto found;
 
 	printk("munmap of non-mmaped memory by process %d (%s): %p\n",
@@ -1054,7 +1061,8 @@
 int remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
 		unsigned long to, unsigned long size, pgprot_t prot)
 {
-	return -EPERM;
+	vma->vm_start = vma->vm_pgoff << PAGE_SHIFT;
+	return 0;
 }
 
 void swap_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
@@ -1073,9 +1081,10 @@
 
 void update_mem_hiwater(struct task_struct *tsk)
 {
-	unsigned long rss = get_mm_counter(tsk->mm, rss);
+	unsigned long rss;
 
 	if (likely(tsk->mm)) {
+		rss = get_mm_counter(tsk->mm, rss);
 		if (tsk->mm->hiwater_rss < rss)
 			tsk->mm->hiwater_rss = rss;
 		if (tsk->mm->hiwater_vm < tsk->mm->total_vm)
