X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fieee1394%2Fraw1394.c;h=35a9056aa30da3d0c58421591acdca1d32ed41d4;hb=73c4d347a0c98eb6599aefd1f9a91b4b071dd5e0;hp=d57a000c5ddc0d23094d901611801ffa01005176;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/drivers/ieee1394/raw1394.c b/drivers/ieee1394/raw1394.c index d57a000c5..35a9056aa 100644 --- a/drivers/ieee1394/raw1394.c +++ b/drivers/ieee1394/raw1394.c @@ -55,8 +55,13 @@ #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);