RDMA/cxgb3: Program hardware IRD with correct value
authorRoland Dreier <rdreier@cisco.com>
Fri, 28 Mar 2008 17:28:17 +0000 (10:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 28 Mar 2008 17:45:32 +0000 (10:45 -0700)
commit1f71f50342c6fe4fbdebe63b0fd196972a70e281
tree44e39c73f0e194e3a7df6c5a34e667161b2f0dc4
parent8c178beeb20ce3801c4851d41342d0ca32ad292c
RDMA/cxgb3: Program hardware IRD with correct value

Because of a typo in iwch_accept_cr(), the cxgb3 connection handling
code programs the hardware IRD (incoming RDMA read queue depth) with
the value that is passed in for the ORD (outgoing RDMA read queue
depth).  In particular this means that if an application passes in IRD
> 0 and ORD = 0 (which is a completely sane and valid thing to do for
an app that expects only incoming RDMA read requests), then the
hardware will end up programmed with IRD = 0 and the app will fail in
a mysterious way.

Fix this by using "ep->ird" instead of "ep->ord" in the intended place.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Acked-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/infiniband/hw/cxgb3/iwch_cm.c