
From: Jeff Dike <jdike@addtoit.com>

This patch rounds up the size of a file used for iomem emulation up to the
nearest page.  This makes mmap work much better on the last page of the
file.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/um/kernel/mem_user.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff -puN arch/um/kernel/mem_user.c~uml-iomem-fix arch/um/kernel/mem_user.c
--- 25/arch/um/kernel/mem_user.c~uml-iomem-fix	Tue Sep 14 18:29:28 2004
+++ 25-akpm/arch/um/kernel/mem_user.c	Tue Sep 14 18:29:28 2004
@@ -143,7 +143,7 @@ static int __init parse_iomem(char *str,
 	struct iomem_region *new;
 	struct uml_stat buf;
 	char *file, *driver;
-	int fd, err;
+	int fd, err, size;
 
 	driver = str;
 	file = strchr(str,',');
@@ -171,10 +171,12 @@ static int __init parse_iomem(char *str,
 		goto out_close;
 	}
 
+	size = (buf.ust_size + UM_KERN_PAGE_SIZE) & ~(UM_KERN_PAGE_SIZE - 1);
+
 	*new = ((struct iomem_region) { .next		= iomem_regions,
 					.driver		= driver,
 					.fd		= fd,
-					.size		= buf.ust_size,
+					.size		= size,
 					.phys		= 0,
 					.virt		= 0 });
 	iomem_regions = new;
_
