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


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to