This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / ieee1394 / raw1394.c
index d57a000..35a9056 100644 (file)
 #include "raw1394.h"
 #include "raw1394-private.h"
 
-#define int2ptr(x) ((void __user *)(unsigned long)x)
+#if BITS_PER_LONG == 64
+#define int2ptr(x) ((void __user *)x)
 #define ptr2int(x) ((u64)(unsigned long)(void __user *)x)
+#else
+#define int2ptr(x) ((void __user *)(u32)x)
+#define ptr2int(x) ((u64)(unsigned long)(void __user *)x)
+#endif
 
 #ifdef CONFIG_IEEE1394_VERBOSEDEBUG
 #define RAW1394_DEBUG
@@ -1624,7 +1629,7 @@ static int arm_register(struct file_info *fi, struct pending_request *req)
         if (another_host) {
                 DBGMSG("another hosts entry is valid -> SUCCESS");
                 if (copy_to_user(int2ptr(req->req.recvb),
-                        &addr->start,sizeof(u64))) {
+                        int2ptr(&addr->start),sizeof(u64))) {
                         printk(KERN_ERR "raw1394: arm_register failed "
                               " address-range-entry is invalid -> EFAULT !!!\n");
                         vfree(addr->addr_space_buffer);