IB/srp: Implement SRP_CRED_REQ and SRP_AER_REQ
authorDavid Dillow <dillowda@ornl.gov>
Fri, 8 Oct 2010 18:40:47 +0000 (14:40 -0400)
committerRoland Dreier <rolandd@cisco.com>
Sat, 23 Oct 2010 05:19:10 +0000 (22:19 -0700)
commitbb12588a38e6db85e01dceadff7bc161fc92e7d2
tree6cf9f3b90cc1118aa2fcd716537916524384d428
parentdd5e6e38b2b8bd8bf71cae800e2b613e85ef1522
IB/srp: Implement SRP_CRED_REQ and SRP_AER_REQ

This patch adds support for SRP_CRED_REQ to avoid a lockup by targets
that use that mechanism to return credits to the initiator. This
prevents a lockup observed in the field where we would never add the
credits from the SRP_CRED_REQ to our current count, and would therefore
never send another command to the target.

Minimal support for SRP_AER_REQ is also added, as these messages can
also be used to convey additional credits to the initiator.

Based upon extensive debugging and code by Bart Van Assche and a bug
report by Chris Worley.

Signed-off-by: David Dillow <dillowda@ornl.gov>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/srp/ib_srp.c
drivers/infiniband/ulp/srp/ib_srp.h
include/scsi/srp.h