Commit c2f3ffb0 authored by Mike Marciniszyn's avatar Mike Marciniszyn Committed by Greg Kroah-Hartman

staging/rdma/hfi1: move hfi1_migrate_qp

Move hfi1_migrate_qp from ruc.c to qp.[hc] in prep for modifying the QP
workqueue.
Signed-off-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: default avatarIra Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8b3e676b
...@@ -1685,3 +1685,23 @@ void qp_comm_est(struct hfi1_qp *qp) ...@@ -1685,3 +1685,23 @@ void qp_comm_est(struct hfi1_qp *qp)
qp->ibqp.event_handler(&ev, qp->ibqp.qp_context); qp->ibqp.event_handler(&ev, qp->ibqp.qp_context);
} }
} }
/*
* Switch to alternate path.
* The QP s_lock should be held and interrupts disabled.
*/
void hfi1_migrate_qp(struct hfi1_qp *qp)
{
struct ib_event ev;
qp->s_mig_state = IB_MIG_MIGRATED;
qp->remote_ah_attr = qp->alt_ah_attr;
qp->port_num = qp->alt_ah_attr.port_num;
qp->s_pkey_index = qp->s_alt_pkey_index;
qp->s_flags |= HFI1_S_AHG_CLEAR;
ev.device = qp->ibqp.device;
ev.element.qp = &qp->ibqp;
ev.event = IB_EVENT_PATH_MIG;
qp->ibqp.event_handler(&ev, qp->ibqp.qp_context);
}
...@@ -247,4 +247,6 @@ void qp_iter_print(struct seq_file *s, struct qp_iter *iter); ...@@ -247,4 +247,6 @@ void qp_iter_print(struct seq_file *s, struct qp_iter *iter);
*/ */
void qp_comm_est(struct hfi1_qp *qp); void qp_comm_est(struct hfi1_qp *qp);
void hfi1_migrate_qp(struct hfi1_qp *qp);
#endif /* _QP_H */ #endif /* _QP_H */
...@@ -241,26 +241,6 @@ int hfi1_get_rwqe(struct hfi1_qp *qp, int wr_id_only) ...@@ -241,26 +241,6 @@ int hfi1_get_rwqe(struct hfi1_qp *qp, int wr_id_only)
return ret; return ret;
} }
/*
* Switch to alternate path.
* The QP s_lock should be held and interrupts disabled.
*/
void hfi1_migrate_qp(struct hfi1_qp *qp)
{
struct ib_event ev;
qp->s_mig_state = IB_MIG_MIGRATED;
qp->remote_ah_attr = qp->alt_ah_attr;
qp->port_num = qp->alt_ah_attr.port_num;
qp->s_pkey_index = qp->s_alt_pkey_index;
qp->s_flags |= HFI1_S_AHG_CLEAR;
ev.device = qp->ibqp.device;
ev.element.qp = &qp->ibqp;
ev.event = IB_EVENT_PATH_MIG;
qp->ibqp.event_handler(&ev, qp->ibqp.qp_context);
}
static __be64 get_sguid(struct hfi1_ibport *ibp, unsigned index) static __be64 get_sguid(struct hfi1_ibport *ibp, unsigned index)
{ {
if (!index) { if (!index) {
......
...@@ -1069,8 +1069,6 @@ int hfi1_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); ...@@ -1069,8 +1069,6 @@ int hfi1_mmap(struct ib_ucontext *context, struct vm_area_struct *vma);
int hfi1_get_rwqe(struct hfi1_qp *qp, int wr_id_only); int hfi1_get_rwqe(struct hfi1_qp *qp, int wr_id_only);
void hfi1_migrate_qp(struct hfi1_qp *qp);
int hfi1_ruc_check_hdr(struct hfi1_ibport *ibp, struct hfi1_ib_header *hdr, int hfi1_ruc_check_hdr(struct hfi1_ibport *ibp, struct hfi1_ib_header *hdr,
int has_grh, struct hfi1_qp *qp, u32 bth0); int has_grh, struct hfi1_qp *qp, u32 bth0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment