mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
IB/rdmavt: Adding timer logic to rdmavt
To move common code across target to rdmavt for code reuse. Reviewed-by: Mike Marciniszyn <[email protected]> Reviewed-by: Brian Welty <[email protected]> Signed-off-by: Venkata Sandeep Dhanalakota <[email protected]> Signed-off-by: Dennis Dalessandro <[email protected]> Signed-off-by: Doug Ledford <[email protected]>
This commit is contained in:
parent
696513e8cf
commit
11a10d4bc7
3 changed files with 206 additions and 2 deletions
|
|
@ -335,6 +335,8 @@ struct rvt_driver_provided {
|
|||
/* Notify driver a mad agent has been removed */
|
||||
void (*notify_free_mad_agent)(struct rvt_dev_info *rdi, int port_idx);
|
||||
|
||||
/* Notify driver to restart rc */
|
||||
void (*notify_restart_rc)(struct rvt_qp *qp, u32 psn, int wait);
|
||||
};
|
||||
|
||||
struct rvt_dev_info {
|
||||
|
|
@ -483,6 +485,23 @@ static inline struct rvt_qp *rvt_lookup_qpn(struct rvt_dev_info *rdi,
|
|||
return qp;
|
||||
}
|
||||
|
||||
/**
|
||||
* rvt_mod_retry_timer - mod a retry timer
|
||||
* @qp - the QP
|
||||
* Modify a potentially already running retry timer
|
||||
*/
|
||||
static inline void rvt_mod_retry_timer(struct rvt_qp *qp)
|
||||
{
|
||||
struct ib_qp *ibqp = &qp->ibqp;
|
||||
struct rvt_dev_info *rdi = ib_to_rvt(ibqp->device);
|
||||
|
||||
lockdep_assert_held(&qp->s_lock);
|
||||
qp->s_flags |= RVT_S_TIMER;
|
||||
/* 4.096 usec. * (1 << qp->timeout) */
|
||||
mod_timer(&qp->s_timer, jiffies + qp->timeout_jiffies +
|
||||
rdi->busy_jiffies);
|
||||
}
|
||||
|
||||
struct rvt_dev_info *rvt_alloc_device(size_t size, int nports);
|
||||
void rvt_dealloc_device(struct rvt_dev_info *rdi);
|
||||
int rvt_register_device(struct rvt_dev_info *rvd);
|
||||
|
|
|
|||
|
|
@ -370,6 +370,7 @@ struct rvt_qp {
|
|||
|
||||
struct rvt_sge_state s_ack_rdma_sge;
|
||||
struct timer_list s_timer;
|
||||
struct hrtimer s_rnr_timer;
|
||||
|
||||
atomic_t local_ops_pending; /* number of fast_reg/local_inv reqs */
|
||||
|
||||
|
|
@ -641,5 +642,10 @@ struct rvt_dev_info;
|
|||
void rvt_comm_est(struct rvt_qp *qp);
|
||||
int rvt_error_qp(struct rvt_qp *qp, enum ib_wc_status err);
|
||||
void rvt_rc_error(struct rvt_qp *qp, enum ib_wc_status err);
|
||||
enum hrtimer_restart rvt_rc_rnr_retry(struct hrtimer *t);
|
||||
void rvt_add_rnr_timer(struct rvt_qp *qp, u32 aeth);
|
||||
void rvt_del_timers_sync(struct rvt_qp *qp);
|
||||
void rvt_stop_rc_timers(struct rvt_qp *qp);
|
||||
void rvt_add_retry_timer(struct rvt_qp *qp);
|
||||
|
||||
#endif /* DEF_RDMAVT_INCQP_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue