IB/rdmavt: add modify queue pair driver helpers
Low level drivers need to be able to check incoming attributes as well as be able to adjust their private data on queue pair modification. Add 2 driver callbacks, check_modify_qp and modify_qp, to facilitate this. Signed-off-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
@@ -970,6 +970,10 @@ int rvt_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
|
||||
attr_mask, link))
|
||||
goto inval;
|
||||
|
||||
if (rdi->driver_f.check_modify_qp &&
|
||||
rdi->driver_f.check_modify_qp(qp, attr, attr_mask, udata))
|
||||
goto inval;
|
||||
|
||||
if (attr_mask & IB_QP_AV) {
|
||||
if (attr->ah_attr.dlid >= be16_to_cpu(IB_MULTICAST_LID_BASE))
|
||||
goto inval;
|
||||
@@ -1166,6 +1170,9 @@ int rvt_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
|
||||
if (attr_mask & IB_QP_MAX_QP_RD_ATOMIC)
|
||||
qp->s_max_rd_atomic = attr->max_rd_atomic;
|
||||
|
||||
if (rdi->driver_f.modify_qp)
|
||||
rdi->driver_f.modify_qp(qp, attr, attr_mask, udata);
|
||||
|
||||
spin_unlock(&qp->s_lock);
|
||||
spin_unlock_irq(&qp->r_lock);
|
||||
|
||||
|
Reference in New Issue
Block a user