[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>
This commit is contained in:
committed by
Linus Torvalds
parent
8307c28eec
commit
6d8e9dd050
@@ -115,7 +115,7 @@ static int ipath_read_umem64(struct ipath_devdata *dd, void __user *uaddr,
|
|||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
reg_addr++;
|
reg_addr++;
|
||||||
uaddr++;
|
uaddr += sizeof(u64);
|
||||||
}
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
bail:
|
bail:
|
||||||
@@ -154,7 +154,7 @@ static int ipath_write_umem64(struct ipath_devdata *dd, void __iomem *caddr,
|
|||||||
writeq(data, reg_addr);
|
writeq(data, reg_addr);
|
||||||
|
|
||||||
reg_addr++;
|
reg_addr++;
|
||||||
uaddr++;
|
uaddr += sizeof(u64);
|
||||||
}
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
bail:
|
bail:
|
||||||
@@ -192,7 +192,8 @@ static int ipath_read_umem32(struct ipath_devdata *dd, void __user *uaddr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
reg_addr++;
|
reg_addr++;
|
||||||
uaddr++;
|
uaddr += sizeof(u32);
|
||||||
|
|
||||||
}
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
bail:
|
bail:
|
||||||
@@ -231,7 +232,7 @@ static int ipath_write_umem32(struct ipath_devdata *dd, void __iomem *caddr,
|
|||||||
writel(data, reg_addr);
|
writel(data, reg_addr);
|
||||||
|
|
||||||
reg_addr++;
|
reg_addr++;
|
||||||
uaddr++;
|
uaddr += sizeof(u32);
|
||||||
}
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
bail:
|
bail:
|
||||||
|
Reference in New Issue
Block a user