aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/ib_cm.c
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@oracle.com>2018-10-23 23:09:00 -0400
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>2019-02-04 17:59:11 -0500
commitd021fabf525ffdaeb4e6f1cf50e1ba325ca5273b (patch)
treefa9834c42d9df306913f052e884869f5cf76a412 /net/rds/ib_cm.c
parentcdc306a5c9cd3607db5d018c6320cdd923c04373 (diff)
rds: rdma: add consumer reject
For legacy protocol version incompatibility with non linux RDS, consumer reject reason being used to convey it to peer. But the choice of reject reason value as '1' was really poor. Anyway for interoperability reasons with shipping products, it needs to be supported. For any future versions, properly encoded reject reason should to be used. Reviewed-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> [yanjun.zhu@oracle.com: Adapted original patch with ipv6 changes] Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Diffstat (limited to 'net/rds/ib_cm.c')
-rw-r--r--net/rds/ib_cm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
index 0eeae0910f06..a1c3ad380ec8 100644
--- a/net/rds/ib_cm.c
+++ b/net/rds/ib_cm.c
@@ -734,8 +734,10 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
734 734
735 /* Check whether the remote protocol version matches ours. */ 735 /* Check whether the remote protocol version matches ours. */
736 version = rds_ib_protocol_compatible(event, isv6); 736 version = rds_ib_protocol_compatible(event, isv6);
737 if (!version) 737 if (!version) {
738 err = RDS_RDMA_REJ_INCOMPAT;
738 goto out; 739 goto out;
740 }
739 741
740 dp = event->param.conn.private_data; 742 dp = event->param.conn.private_data;
741 if (isv6) { 743 if (isv6) {
@@ -851,7 +853,7 @@ out:
851 if (conn) 853 if (conn)
852 mutex_unlock(&conn->c_cm_lock); 854 mutex_unlock(&conn->c_cm_lock);
853 if (err) 855 if (err)
854 rdma_reject(cm_id, NULL, 0); 856 rdma_reject(cm_id, &err, sizeof(int));
855 return destroy; 857 return destroy;
856} 858}
857 859