copy_from_user() returns non-zero on faults..


---

 25-akpm/drivers/char/mem.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/char/mem.c~write_kmem-fix drivers/char/mem.c
--- 25/drivers/char/mem.c~write_kmem-fix	2004-03-26 12:35:04.637516000 -0800
+++ 25-akpm/drivers/char/mem.c	2004-03-26 12:35:04.639515696 -0800
@@ -311,7 +311,7 @@ static ssize_t write_kmem(struct file * 
 				len = PAGE_SIZE;
 			if (len) {
 				written = copy_from_user(kbuf, buf, len);
-				if (written != len) {
+				if (written) {
 					ssize_t ret;
 
 					free_page((unsigned long)kbuf);

_