mtd: Fix pointer handling in compat ioctls to use compat_ptr()

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
index 5fff04f..5b081cb 100644
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -839,7 +839,7 @@
 	struct inode *inode = file->f_path.dentry->d_inode;
 	struct mtd_file_info *mfi = file->private_data;
 	struct mtd_info *mtd = mfi->mtd;
-	void __user *argp = (void __user *)arg;
+	void __user *argp = compat_ptr(arg);
 	int ret = 0;
 
 	lock_kernel();
@@ -874,7 +874,7 @@
 		break;
 	}
 	default:
-		ret = mtd_ioctl(inode, file, cmd, arg);
+		ret = mtd_ioctl(inode, file, cmd, (unsigned long)argp);
 	}
 
 	unlock_kernel();