diff options
author | Michael Albaugh <Michael.Albaugh@Qlogic.com> | 2008-05-07 19:59:23 +0200 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-05-07 19:59:23 +0200 |
commit | 2889d1ef1240591fa4c72a6753e0a8d1c6e18140 (patch) | |
tree | 6540619947039fb63723fcbe69de0311bb77e9ce /drivers/infiniband/hw/ipath | |
parent | IB/ipath: Return the correct opcode for RDMA WRITE with immediate (diff) | |
download | linux-2889d1ef1240591fa4c72a6753e0a8d1c6e18140.tar.xz linux-2889d1ef1240591fa4c72a6753e0a8d1c6e18140.zip |
IB/ipath: Fix count of packets received by kernel
The loop in ipath_kreceive() that processes packets increments the
loop-index 'i' once too often, because the exit condition does not
depend on it, and is checked after the increment. By adding a check for
!last to the iterator in the for loop, we correct that in a way that is
not so likely to be re-broken by changes in the loop body.
Signed-off-by: Michael Albaugh <micheal.albaugh@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_driver.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c index acf30c06a0c0..f81dd4acdc60 100644 --- a/drivers/infiniband/hw/ipath/ipath_driver.c +++ b/drivers/infiniband/hw/ipath/ipath_driver.c @@ -1197,7 +1197,7 @@ void ipath_kreceive(struct ipath_portdata *pd) } reloop: - for (last = 0, i = 1; !last; i++) { + for (last = 0, i = 1; !last; i += !last) { hdr = dd->ipath_f_get_msgheader(dd, rhf_addr); eflags = ipath_hdrget_err_flags(rhf_addr); etype = ipath_hdrget_rcv_type(rhf_addr); |