From: Markus Lidel <Markus.Lidel@shadowconnect.com>

- use compat_ptr to convert 32-bit pointer to 64-bit pointer in
  i2o_cfg_passthru32.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/message/i2o/i2o_config.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -puN drivers/message/i2o/i2o_config.c~i2o-fixes-compiler-warning-on-x86_64-in-i2o_config drivers/message/i2o/i2o_config.c
--- 25/drivers/message/i2o/i2o_config.c~i2o-fixes-compiler-warning-on-x86_64-in-i2o_config	Thu Aug 19 16:24:05 2004
+++ 25-akpm/drivers/message/i2o/i2o_config.c	Thu Aug 19 16:24:05 2004
@@ -42,6 +42,7 @@
 #include <linux/spinlock.h>
 #include <linux/smp_lock.h>
 #include <linux/ioctl32.h>
+#include <linux/compat.h>
 #include <linux/syscalls.h>
 
 #include <asm/uaccess.h>
@@ -646,9 +647,11 @@ static int i2o_cfg_passthru32(unsigned f
 
 	cmd = (struct i2o_cmd_passthru32 __user *)arg;
 
-	if (get_user(iop, &cmd->iop) || get_user(user_msg, &cmd->msg))
+	if (get_user(iop, &cmd->iop) || get_user(i, &cmd->msg))
 		return -EFAULT;
 
+	user_msg = compat_ptr(i);
+
 	c = i2o_find_iop(iop);
 	if (!c) {
 		pr_debug("controller %d not found\n", iop);
_