RDMA/iwcm: Get rid of enum iw_cm_event_status
The IW_CM_EVENT_STATUS_xxx values were used in only a couple of places; cma.c uses -Exxx values instead, and so do the amso1100, cxgb3 and cxgb4 drivers -- only nes was using the enum values (with the mild consequence that all nes connection failures were treated as generic errors rather than reported as timeouts or rejections). We can fix this confusion by getting rid of enum iw_cm_event_status and using a plain int for struct iw_cm_event.status, and converting nes to use -Exxx as the other iWARP drivers do. This also gets rid of the warning drivers/infiniband/core/cma.c: In function 'cma_iw_handler': drivers/infiniband/core/cma.c:1333:3: warning: case value '4294967185' not in enumerated type 'enum iw_cm_event_status' drivers/infiniband/core/cma.c:1336:3: warning: case value '4294967186' not in enumerated type 'enum iw_cm_event_status' drivers/infiniband/core/cma.c:1332:3: warning: case value '4294967192' not in enumerated type 'enum iw_cm_event_status' Signed-off-by: Roland Dreier <roland@purestorage.com> Reviewed-by: Steve Wise <swise@opengridcomputing.com> Reviewed-by: Sean Hefty <sean.hefty@intel.com> Reviewed-by: Faisal Latif <faisal.latif@intel.com>
Šī revīzija ir iekļauta:
@@ -2563,7 +2563,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
|
||||
u16 last_ae;
|
||||
u8 original_hw_tcp_state;
|
||||
u8 original_ibqp_state;
|
||||
enum iw_cm_event_status disconn_status = IW_CM_EVENT_STATUS_OK;
|
||||
int disconn_status = 0;
|
||||
int issue_disconn = 0;
|
||||
int issue_close = 0;
|
||||
int issue_flush = 0;
|
||||
@@ -2605,7 +2605,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
|
||||
(last_ae == NES_AEQE_AEID_LLP_CONNECTION_RESET))) {
|
||||
issue_disconn = 1;
|
||||
if (last_ae == NES_AEQE_AEID_LLP_CONNECTION_RESET)
|
||||
disconn_status = IW_CM_EVENT_STATUS_RESET;
|
||||
disconn_status = -ECONNRESET;
|
||||
}
|
||||
|
||||
if (((original_hw_tcp_state == NES_AEQE_TCP_STATE_CLOSED) ||
|
||||
@@ -2666,7 +2666,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
|
||||
cm_id->provider_data = nesqp;
|
||||
/* Send up the close complete event */
|
||||
cm_event.event = IW_CM_EVENT_CLOSE;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_OK;
|
||||
cm_event.status = 0;
|
||||
cm_event.provider_data = cm_id->provider_data;
|
||||
cm_event.local_addr = cm_id->local_addr;
|
||||
cm_event.remote_addr = cm_id->remote_addr;
|
||||
@@ -2966,7 +2966,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
|
||||
nes_add_ref(&nesqp->ibqp);
|
||||
|
||||
cm_event.event = IW_CM_EVENT_ESTABLISHED;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_ACCEPTED;
|
||||
cm_event.status = 0;
|
||||
cm_event.provider_data = (void *)nesqp;
|
||||
cm_event.local_addr = cm_id->local_addr;
|
||||
cm_event.remote_addr = cm_id->remote_addr;
|
||||
@@ -3377,7 +3377,7 @@ static void cm_event_connected(struct nes_cm_event *event)
|
||||
|
||||
/* notify OF layer we successfully created the requested connection */
|
||||
cm_event.event = IW_CM_EVENT_CONNECT_REPLY;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_ACCEPTED;
|
||||
cm_event.status = 0;
|
||||
cm_event.provider_data = cm_id->provider_data;
|
||||
cm_event.local_addr.sin_family = AF_INET;
|
||||
cm_event.local_addr.sin_port = cm_id->local_addr.sin_port;
|
||||
@@ -3484,7 +3484,7 @@ static void cm_event_reset(struct nes_cm_event *event)
|
||||
nesqp->cm_id = NULL;
|
||||
/* cm_id->provider_data = NULL; */
|
||||
cm_event.event = IW_CM_EVENT_DISCONNECT;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_RESET;
|
||||
cm_event.status = -ECONNRESET;
|
||||
cm_event.provider_data = cm_id->provider_data;
|
||||
cm_event.local_addr = cm_id->local_addr;
|
||||
cm_event.remote_addr = cm_id->remote_addr;
|
||||
@@ -3495,7 +3495,7 @@ static void cm_event_reset(struct nes_cm_event *event)
|
||||
ret = cm_id->event_handler(cm_id, &cm_event);
|
||||
atomic_inc(&cm_closes);
|
||||
cm_event.event = IW_CM_EVENT_CLOSE;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_OK;
|
||||
cm_event.status = 0;
|
||||
cm_event.provider_data = cm_id->provider_data;
|
||||
cm_event.local_addr = cm_id->local_addr;
|
||||
cm_event.remote_addr = cm_id->remote_addr;
|
||||
@@ -3534,7 +3534,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
|
||||
cm_node, cm_id, jiffies);
|
||||
|
||||
cm_event.event = IW_CM_EVENT_CONNECT_REQUEST;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_OK;
|
||||
cm_event.status = 0;
|
||||
cm_event.provider_data = (void *)cm_node;
|
||||
|
||||
cm_event.local_addr.sin_family = AF_INET;
|
||||
|
@@ -1484,7 +1484,7 @@ static int nes_destroy_qp(struct ib_qp *ibqp)
|
||||
(nesqp->ibqp_state == IB_QPS_RTR)) && (nesqp->cm_id)) {
|
||||
cm_id = nesqp->cm_id;
|
||||
cm_event.event = IW_CM_EVENT_CONNECT_REPLY;
|
||||
cm_event.status = IW_CM_EVENT_STATUS_TIMEOUT;
|
||||
cm_event.status = -ETIMEDOUT;
|
||||
cm_event.local_addr = cm_id->local_addr;
|
||||
cm_event.remote_addr = cm_id->remote_addr;
|
||||
cm_event.private_data = NULL;
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user