| .. | .. |
|---|
| 1 | 1 | /* |
|---|
| 2 | | - * Copyright (c) 2012 - 2017 Intel Corporation. All rights reserved. |
|---|
| 2 | + * Copyright (c) 2012 - 2018 Intel Corporation. All rights reserved. |
|---|
| 3 | 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. |
|---|
| 4 | 4 | * Copyright (c) 2005, 2006 PathScale, Inc. All rights reserved. |
|---|
| 5 | 5 | * |
|---|
| .. | .. |
|---|
| 46 | 46 | #include <rdma/ib_pack.h> |
|---|
| 47 | 47 | #include <rdma/ib_user_verbs.h> |
|---|
| 48 | 48 | #include <rdma/ib_hdrs.h> |
|---|
| 49 | | -#include <rdma/rdma_vt.h> |
|---|
| 49 | +#include <rdma/rdmavt_qp.h> |
|---|
| 50 | 50 | #include <rdma/rdmavt_cq.h> |
|---|
| 51 | 51 | |
|---|
| 52 | 52 | struct qib_ctxtdata; |
|---|
| .. | .. |
|---|
| 177 | 177 | struct timer_list mem_timer; |
|---|
| 178 | 178 | struct qib_pio_header *pio_hdrs; |
|---|
| 179 | 179 | dma_addr_t pio_hdrs_phys; |
|---|
| 180 | | - u32 qp_rnd; /* random bytes for hash */ |
|---|
| 181 | 180 | |
|---|
| 182 | 181 | u32 n_piowait; |
|---|
| 183 | 182 | u32 n_txwait; |
|---|
| .. | .. |
|---|
| 223 | 222 | !(qp->s_flags & RVT_S_ANY_WAIT_SEND)); |
|---|
| 224 | 223 | } |
|---|
| 225 | 224 | |
|---|
| 226 | | -void _qib_schedule_send(struct rvt_qp *qp); |
|---|
| 227 | | -void qib_schedule_send(struct rvt_qp *qp); |
|---|
| 225 | +bool _qib_schedule_send(struct rvt_qp *qp); |
|---|
| 226 | +bool qib_schedule_send(struct rvt_qp *qp); |
|---|
| 228 | 227 | |
|---|
| 229 | 228 | static inline int qib_pkey_ok(u16 pkey1, u16 pkey2) |
|---|
| 230 | 229 | { |
|---|
| .. | .. |
|---|
| 245 | 244 | void qib_node_desc_chg(struct qib_ibport *ibp); |
|---|
| 246 | 245 | int qib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num, |
|---|
| 247 | 246 | const struct ib_wc *in_wc, const struct ib_grh *in_grh, |
|---|
| 248 | | - const struct ib_mad_hdr *in, size_t in_mad_size, |
|---|
| 249 | | - struct ib_mad_hdr *out, size_t *out_mad_size, |
|---|
| 250 | | - u16 *out_mad_pkey_index); |
|---|
| 247 | + const struct ib_mad *in, struct ib_mad *out, |
|---|
| 248 | + size_t *out_mad_size, u16 *out_mad_pkey_index); |
|---|
| 251 | 249 | void qib_notify_create_mad_agent(struct rvt_dev_info *rdi, int port_idx); |
|---|
| 252 | 250 | void qib_notify_free_mad_agent(struct rvt_dev_info *rdi, int port_idx); |
|---|
| 253 | 251 | |
|---|
| .. | .. |
|---|
| 292 | 290 | int qib_verbs_send(struct rvt_qp *qp, struct ib_header *hdr, |
|---|
| 293 | 291 | u32 hdrwords, struct rvt_sge_state *ss, u32 len); |
|---|
| 294 | 292 | |
|---|
| 295 | | -void qib_copy_sge(struct rvt_sge_state *ss, void *data, u32 length, |
|---|
| 296 | | - int release); |
|---|
| 297 | | - |
|---|
| 298 | 293 | void qib_uc_rcv(struct qib_ibport *ibp, struct ib_header *hdr, |
|---|
| 299 | 294 | int has_grh, void *data, u32 tlen, struct rvt_qp *qp); |
|---|
| 300 | 295 | |
|---|
| .. | .. |
|---|
| 303 | 298 | |
|---|
| 304 | 299 | int qib_check_ah(struct ib_device *ibdev, struct rdma_ah_attr *ah_attr); |
|---|
| 305 | 300 | |
|---|
| 306 | | -int qib_check_send_wqe(struct rvt_qp *qp, struct rvt_swqe *wqe); |
|---|
| 301 | +int qib_check_send_wqe(struct rvt_qp *qp, struct rvt_swqe *wqe, |
|---|
| 302 | + bool *call_send); |
|---|
| 307 | 303 | |
|---|
| 308 | 304 | struct ib_ah *qib_create_qp0_ah(struct qib_ibport *ibp, u16 dlid); |
|---|
| 309 | 305 | |
|---|
| .. | .. |
|---|
| 332 | 328 | void _qib_do_send(struct work_struct *work); |
|---|
| 333 | 329 | |
|---|
| 334 | 330 | void qib_do_send(struct rvt_qp *qp); |
|---|
| 335 | | - |
|---|
| 336 | | -void qib_send_complete(struct rvt_qp *qp, struct rvt_swqe *wqe, |
|---|
| 337 | | - enum ib_wc_status status); |
|---|
| 338 | 331 | |
|---|
| 339 | 332 | void qib_send_rc_ack(struct rvt_qp *qp); |
|---|
| 340 | 333 | |
|---|