int ipath_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
                    int attr_mask)
 {
+       struct ipath_ibdev *dev = to_idev(ibqp->device);
        struct ipath_qp *qp = to_iqp(ibqp);
        enum ib_qp_state cur_state, new_state;
        unsigned long flags;
                                attr_mask))
                goto inval;
 
+       if (attr_mask & IB_QP_AV)
+               if (attr->ah_attr.dlid == 0 ||
+                   attr->ah_attr.dlid >= IPS_MULTICAST_LID_BASE)
+                       goto inval;
+
+       if (attr_mask & IB_QP_PKEY_INDEX)
+               if (attr->pkey_index >= ipath_layer_get_npkeys(dev->dd))
+                       goto inval;
+
+       if (attr_mask & IB_QP_MIN_RNR_TIMER)
+               if (attr->min_rnr_timer > 31)
+                       goto inval;
+
        switch (new_state) {
        case IB_QPS_RESET:
                ipath_reset_qp(qp);
 
        }
 
-       if (attr_mask & IB_QP_PKEY_INDEX) {
-               struct ipath_ibdev *dev = to_idev(ibqp->device);
-
-               if (attr->pkey_index >= ipath_layer_get_npkeys(dev->dd))
-                       goto inval;
+       if (attr_mask & IB_QP_PKEY_INDEX)
                qp->s_pkey_index = attr->pkey_index;
-       }
 
        if (attr_mask & IB_QP_DEST_QPN)
                qp->remote_qpn = attr->dest_qp_num;
        if (attr_mask & IB_QP_ACCESS_FLAGS)
                qp->qp_access_flags = attr->qp_access_flags;
 
-       if (attr_mask & IB_QP_AV) {
-               if (attr->ah_attr.dlid == 0 ||
-                   attr->ah_attr.dlid >= IPS_MULTICAST_LID_BASE)
-                       goto inval;
+       if (attr_mask & IB_QP_AV)
                qp->remote_ah_attr = attr->ah_attr;
-       }
 
        if (attr_mask & IB_QP_PATH_MTU)
                qp->path_mtu = attr->path_mtu;
                qp->s_rnr_retry_cnt = qp->s_rnr_retry;
        }
 
-       if (attr_mask & IB_QP_MIN_RNR_TIMER) {
-               if (attr->min_rnr_timer > 31)
-                       goto inval;
+       if (attr_mask & IB_QP_MIN_RNR_TIMER)
                qp->s_min_rnr_timer = attr->min_rnr_timer;
-       }
 
        if (attr_mask & IB_QP_QKEY)
                qp->qkey = attr->qkey;