1
0
Fork 0

[PATCH] IB/ipath: read/write correct sizes through diag interface

We must increment uaddr by size we are reading or writing, since it's passed
as a char *, not a pointer to the appropriate size.

Signed-off-by: Dave Olson <dave.olson@qlogic.com>
Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com>
Cc: "Michael S. Tsirkin" <mst@mellanox.co.il>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
hifive-unleashed-5.1
Bryan O'Sullivan 2006-07-01 04:36:14 -07:00 committed by Linus Torvalds
parent 8307c28eec
commit 6d8e9dd050
1 changed files with 5 additions and 4 deletions

View File

@ -115,7 +115,7 @@ static int ipath_read_umem64(struct ipath_devdata *dd, void __user *uaddr,
goto bail;
}
reg_addr++;
uaddr++;
uaddr += sizeof(u64);
}
ret = 0;
bail:
@ -154,7 +154,7 @@ static int ipath_write_umem64(struct ipath_devdata *dd, void __iomem *caddr,
writeq(data, reg_addr);
reg_addr++;
uaddr++;
uaddr += sizeof(u64);
}
ret = 0;
bail:
@ -192,7 +192,8 @@ static int ipath_read_umem32(struct ipath_devdata *dd, void __user *uaddr,
}
reg_addr++;
uaddr++;
uaddr += sizeof(u32);
}
ret = 0;
bail:
@ -231,7 +232,7 @@ static int ipath_write_umem32(struct ipath_devdata *dd, void __iomem *caddr,
writel(data, reg_addr);
reg_addr++;
uaddr++;
uaddr += sizeof(u32);
}
ret = 0;
bail: