On 12/09/2015 01:42 PM, Nelson Escobar wrote: > They were already implemented at a lower layer, but the upper level > routine placed arbitrary restrictions on which transitions were > permitted. Simplify the state machine logic to live wholly in > usnic_ib_qp_grp_modify. > > Signed-off-by: Dave Goodell <dgood...@cisco.com> > Reviewed-by: Reese Faucette <rfauc...@cisco.com> > Reviewed-by: Xuyang Wang <xuyw...@cisco.com> > Signed-off-by: Nelson Escobar <neesc...@cisco.com> > --- > drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > index 5ae6569..111afd5 100644 > --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > @@ -571,20 +571,20 @@ int usnic_ib_modify_qp(struct ib_qp *ibqp, struct > ib_qp_attr *attr, > > qp_grp = to_uqp_grp(ibqp); > > - /* TODO: Future Support All States */ > mutex_lock(&qp_grp->vf->pf->usdev_lock); > - if ((attr_mask & IB_QP_STATE) && attr->qp_state == IB_QPS_INIT) { > - status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_INIT, NULL); > - } else if ((attr_mask & IB_QP_STATE) && attr->qp_state == IB_QPS_RTR) { > - status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RTR, NULL); > - } else if ((attr_mask & IB_QP_STATE) && attr->qp_state == IB_QPS_RTS) { > - status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RTS, NULL); > + if ((attr_mask & IB_QP_PORT) && attr->port_num != 1) { > + /* usnic devices only have one port */ > + status = -EINVAL; > + goto out_unlock; > + } > + if (attr_mask & IB_QP_STATE) { > + status = usnic_ib_qp_grp_modify(qp_grp, attr->qp_state, NULL); > } else { > - usnic_err("Unexpected combination mask: %u state: %u\n", > - attr_mask & IB_QP_STATE, attr->qp_state); > + usnic_err("Unhandled request, attr_mask=0x%x\n", attr_mask); > status = -EINVAL; > } > > +out_unlock: > mutex_unlock(&qp_grp->vf->pf->usdev_lock); > return status; > } >
Thanks, applied. -- Doug Ledford <dledf...@redhat.com> GPG KeyID: 0E572FDD
signature.asc
Description: OpenPGP digital signature