diff options
-rw-r--r-- | drivers/infiniband/hw/nes/nes_verbs.c | 6 | ||||
-rw-r--r-- | drivers/infiniband/hw/nes/nes_verbs.h | 9 |
2 files changed, 1 insertions, 14 deletions
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c index 8ea75614b87c..ea4e22ea2d49 100644 --- a/drivers/infiniband/hw/nes/nes_verbs.c +++ b/drivers/infiniband/hw/nes/nes_verbs.c | |||
@@ -1398,8 +1398,6 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd, | |||
1398 | nes_debug(NES_DBG_QP, "QP%u structure located @%p.Size = %u.\n", | 1398 | nes_debug(NES_DBG_QP, "QP%u structure located @%p.Size = %u.\n", |
1399 | nesqp->hwqp.qp_id, nesqp, (u32)sizeof(*nesqp)); | 1399 | nesqp->hwqp.qp_id, nesqp, (u32)sizeof(*nesqp)); |
1400 | spin_lock_init(&nesqp->lock); | 1400 | spin_lock_init(&nesqp->lock); |
1401 | init_waitqueue_head(&nesqp->state_waitq); | ||
1402 | init_waitqueue_head(&nesqp->kick_waitq); | ||
1403 | nes_add_ref(&nesqp->ibqp); | 1401 | nes_add_ref(&nesqp->ibqp); |
1404 | break; | 1402 | break; |
1405 | default: | 1403 | default: |
@@ -3005,7 +3003,6 @@ int nes_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
3005 | " already done based on hw state.\n", | 3003 | " already done based on hw state.\n", |
3006 | nesqp->hwqp.qp_id); | 3004 | nesqp->hwqp.qp_id); |
3007 | issue_modify_qp = 0; | 3005 | issue_modify_qp = 0; |
3008 | nesqp->in_disconnect = 0; | ||
3009 | } | 3006 | } |
3010 | switch (nesqp->hw_iwarp_state) { | 3007 | switch (nesqp->hw_iwarp_state) { |
3011 | case NES_AEQE_IWARP_STATE_CLOSING: | 3008 | case NES_AEQE_IWARP_STATE_CLOSING: |
@@ -3018,7 +3015,6 @@ int nes_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
3018 | break; | 3015 | break; |
3019 | default: | 3016 | default: |
3020 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_CLOSING; | 3017 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_CLOSING; |
3021 | nesqp->in_disconnect = 1; | ||
3022 | nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_CLOSING; | 3018 | nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_CLOSING; |
3023 | break; | 3019 | break; |
3024 | } | 3020 | } |
@@ -3035,7 +3031,6 @@ int nes_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
3035 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_TERMINATE; | 3031 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_TERMINATE; |
3036 | nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_TERMINATE; | 3032 | nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_TERMINATE; |
3037 | issue_modify_qp = 1; | 3033 | issue_modify_qp = 1; |
3038 | nesqp->in_disconnect = 1; | ||
3039 | break; | 3034 | break; |
3040 | case IB_QPS_ERR: | 3035 | case IB_QPS_ERR: |
3041 | case IB_QPS_RESET: | 3036 | case IB_QPS_RESET: |
@@ -3058,7 +3053,6 @@ int nes_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
3058 | if ((nesqp->hw_tcp_state > NES_AEQE_TCP_STATE_CLOSED) && | 3053 | if ((nesqp->hw_tcp_state > NES_AEQE_TCP_STATE_CLOSED) && |
3059 | (nesqp->hw_tcp_state != NES_AEQE_TCP_STATE_TIME_WAIT)) { | 3054 | (nesqp->hw_tcp_state != NES_AEQE_TCP_STATE_TIME_WAIT)) { |
3060 | next_iwarp_state |= NES_CQP_QP_RESET; | 3055 | next_iwarp_state |= NES_CQP_QP_RESET; |
3061 | nesqp->in_disconnect = 1; | ||
3062 | } else { | 3056 | } else { |
3063 | nes_debug(NES_DBG_MOD_QP, "QP%u NOT setting NES_CQP_QP_RESET since TCP state = %u\n", | 3057 | nes_debug(NES_DBG_MOD_QP, "QP%u NOT setting NES_CQP_QP_RESET since TCP state = %u\n", |
3064 | nesqp->hwqp.qp_id, nesqp->hw_tcp_state); | 3058 | nesqp->hwqp.qp_id, nesqp->hw_tcp_state); |
diff --git a/drivers/infiniband/hw/nes/nes_verbs.h b/drivers/infiniband/hw/nes/nes_verbs.h index ac8b86b8cc11..795aa4f9259f 100644 --- a/drivers/infiniband/hw/nes/nes_verbs.h +++ b/drivers/infiniband/hw/nes/nes_verbs.h | |||
@@ -135,19 +135,15 @@ struct nes_qp { | |||
135 | struct ib_qp ibqp; | 135 | struct ib_qp ibqp; |
136 | void *allocated_buffer; | 136 | void *allocated_buffer; |
137 | struct iw_cm_id *cm_id; | 137 | struct iw_cm_id *cm_id; |
138 | struct workqueue_struct *wq; | ||
139 | struct nes_cq *nesscq; | 138 | struct nes_cq *nesscq; |
140 | struct nes_cq *nesrcq; | 139 | struct nes_cq *nesrcq; |
141 | struct nes_pd *nespd; | 140 | struct nes_pd *nespd; |
142 | void *cm_node; /* handle of the node this QP is associated with */ | 141 | void *cm_node; /* handle of the node this QP is associated with */ |
143 | struct ietf_mpa_frame *ietf_frame; | 142 | struct ietf_mpa_frame *ietf_frame; |
144 | dma_addr_t ietf_frame_pbase; | 143 | dma_addr_t ietf_frame_pbase; |
145 | wait_queue_head_t state_waitq; | ||
146 | struct ib_mr *lsmm_mr; | 144 | struct ib_mr *lsmm_mr; |
147 | unsigned long socket; | ||
148 | struct nes_hw_qp hwqp; | 145 | struct nes_hw_qp hwqp; |
149 | struct work_struct work; | 146 | struct work_struct work; |
150 | struct work_struct ae_work; | ||
151 | enum ib_qp_state ibqp_state; | 147 | enum ib_qp_state ibqp_state; |
152 | u32 iwarp_state; | 148 | u32 iwarp_state; |
153 | u32 hte_index; | 149 | u32 hte_index; |
@@ -165,17 +161,14 @@ struct nes_qp { | |||
165 | struct page *page; | 161 | struct page *page; |
166 | struct timer_list terminate_timer; | 162 | struct timer_list terminate_timer; |
167 | enum ib_event_type terminate_eventtype; | 163 | enum ib_event_type terminate_eventtype; |
168 | wait_queue_head_t kick_waitq; | ||
169 | u16 in_disconnect; | ||
170 | u16 active_conn:1; | 164 | u16 active_conn:1; |
171 | u16 skip_lsmm:1; | 165 | u16 skip_lsmm:1; |
172 | u16 user_mode:1; | 166 | u16 user_mode:1; |
173 | u16 hte_added:1; | 167 | u16 hte_added:1; |
174 | u16 flush_issued:1; | 168 | u16 flush_issued:1; |
175 | u16 destroyed:1; | 169 | u16 destroyed:1; |
176 | u16 sq_kmapped:1; | ||
177 | u16 sig_all:1; | 170 | u16 sig_all:1; |
178 | u16 rsvd:8; | 171 | u16 rsvd:9; |
179 | u16 private_data_len; | 172 | u16 private_data_len; |
180 | u16 term_sq_flush_code; | 173 | u16 term_sq_flush_code; |
181 | u16 term_rq_flush_code; | 174 | u16 term_rq_flush_code; |