diff -urpN linux-2.6.13.2.orig/arch/sh/boards/landisk/landisk_pwb.c linux-2.6.13.2/arch/sh/boards/landisk/landisk_pwb.c
--- linux-2.6.13.2.orig/arch/sh/boards/landisk/landisk_pwb.c	2005-09-29 22:09:08.000000000 +0900
+++ linux-2.6.13.2/arch/sh/boards/landisk/landisk_pwb.c	2005-10-03 20:58:23.000000000 +0900
@@ -108,11 +108,11 @@ static int swdrv_close(struct inode *ino
 static int swdrv_read(struct file *filp, char *buff, size_t count,
 		      loff_t * ppos)
 {
-	int minor, error;
+	int minor;
 	minor = (int)(filp->private_data);
 
-	if ((error = access_ok(VERIFY_WRITE, (void *)buff, count)))
-		return error;
+	if (!access_ok(VERIFY_WRITE, (void *)buff, count))
+		return -EFAULT;
 
 	if (minor == SHUTDOWN_BTN_MINOR) {
 		if (landisk_btn & 0x10) {
