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 <[EMAIL PROTECTED]> Signed-off-by: Bryan O'Sullivan <[EMAIL PROTECTED]> diff -r 8fbb5d71823a -r a7c1ad1e090b drivers/infiniband/hw/ipath/ipath_diag.c --- a/drivers/infiniband/hw/ipath/ipath_diag.c Thu Jun 29 14:33:26 2006 -0700 +++ b/drivers/infiniband/hw/ipath/ipath_diag.c Thu Jun 29 14:33:26 2006 -0700 @@ -115,7 +115,7 @@ static int ipath_read_umem64(struct ipat goto bail; } reg_addr++; - uaddr++; + uaddr += sizeof(u64); } ret = 0; bail: @@ -154,7 +154,7 @@ static int ipath_write_umem64(struct ipa writeq(data, reg_addr); reg_addr++; - uaddr++; + uaddr += sizeof(u64); } ret = 0; bail: @@ -192,7 +192,8 @@ static int ipath_read_umem32(struct ipat } reg_addr++; - uaddr++; + uaddr += sizeof(u32); + } ret = 0; bail: @@ -231,7 +232,7 @@ static int ipath_write_umem32(struct ipa writel(data, reg_addr); reg_addr++; - uaddr++; + uaddr += sizeof(u32); } ret = 0; bail: - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html