Robert Walsh wrote:
> gen2_basic - handle auto path migration properly
>
> Signed-off by: Robert Walsh <[EMAIL PROTECTED]>
>
> diff -rNu a/gen2_basic/test_qp.c b/gen2_basic/test_qp.c
> --- a/gen2_basic/test_qp.c    2006-09-13 19:15:59.829006000 -0700
> +++ b/gen2_basic/test_qp.c    2006-08-14 14:16:57.911621000 -0700
> @@ -586,6 +586,7 @@
>  }
>  
>  void cleanup_mask(
> +     IN      struct ibv_device_attr *device_attr,
>       IN      enum ibv_qp_type qp_type,
>       IN OUT  int* mask)
>  {
> @@ -607,6 +608,8 @@
>               *mask &= ~IBV_QP_MAX_DEST_RD_ATOMIC;
>               *mask &= ~IBV_QP_MAX_QP_RD_ATOMIC;
>       }
> +     if (!(device_attr->device_cap_flags & IBV_DEVICE_AUTO_PATH_MIG))
> +             *mask &= ~IBV_QP_ALT_PATH;
>  }
>  
>  int my_query_qp(
> @@ -774,7 +777,7 @@
>       case REQUIRED_ATTR:
>               mask |= test_vector[idx].required_attr;
>  
> -             cleanup_mask(qp_type, &mask);
> +             cleanup_mask(device_attr, qp_type, &mask);
>               mask &= ~IBV_QP_PATH_MIG_STATE; 
>  
>               if (test_vector[idx].to == IBV_QPS_SQD && test_vector[idx].from 
> == IBV_QPS_SQD && qp_type != IBV_QPT_RC)
> @@ -798,8 +801,8 @@
>                       temp_mask = test_vector[idx].optional_attr;
>                       mask = test_vector[idx].required_attr | 
> test_vector[idx].optional_attr;
>               }
> -             cleanup_mask(qp_type, &mask);
> -             cleanup_mask(qp_type, &temp_mask);
> +             cleanup_mask(device_attr, qp_type, &mask);
> +             cleanup_mask(device_attr, qp_type, &temp_mask);
>  
>               for (i = 1; i <= 20; ++i) {
>                       if ((1 << i) & temp_mask) {
> @@ -820,7 +823,7 @@
>       
>       case NOT_ALL_REQUIRED:
>               mask = test_vector[idx].required_attr;
> -             cleanup_mask(qp_type, &mask);
> +             cleanup_mask(device_attr, qp_type, &mask);
>  
>               for (i = 1; i <= 20; ++i) {
>                       if ((1 << i) & mask) {
> @@ -835,7 +838,7 @@
>               break;
>       case NOT_ALL_OPTIONAL:
>               mask = test_vector[idx].required_attr | 
> test_vector[idx].optional_attr;
> -             cleanup_mask(qp_type, &mask);
> +             cleanup_mask(device_attr, qp_type, &mask);
>  
>               if (test_vector[idx].to == IBV_QPS_SQD && test_vector[idx].from 
> == IBV_QPS_SQD && qp_type != IBV_QPT_RC)
>                       mask &= ~IBV_QP_PORT;
> @@ -855,7 +858,7 @@
>               break;
>       case INVALID_ATTR:
>               mask = test_vector[idx].required_attr | 
> test_vector[idx].optional_attr;
> -             cleanup_mask(qp_type, &mask);
> +             cleanup_mask(device_attr, qp_type, &mask);
>  
>               mask = get_random_mask(rand_gen, mask);
>  
> @@ -1420,7 +1422,7 @@
>  
>                                       for (j = 1; j < 20; ++j) {
>                                               int mask = 
> test_vector[i].optional_attr;
> -                                             cleanup_mask(qp_type, &mask);
> +                                             cleanup_mask(&device_attr, 
> qp_type, &mask);
>                                               if ((1 << j) & mask) {
>                                                       get_qp_cap(rand_gen, 1, 
> &device_attr, &attr.cap);
>  
> @@ -1540,7 +1542,7 @@
>                               mask = IBV_QP_STATE | IBV_QP_TIMEOUT | 
> IBV_QP_RETRY_CNT | IBV_QP_RNR_RETRY | 
>                                       IBV_QP_SQ_PSN | IBV_QP_MAX_QP_RD_ATOMIC 
> | IBV_QP_PATH_MIG_STATE;
>  
> -                             cleanup_mask(qp_type, &mask);
> +                             cleanup_mask(&device_attr, qp_type, &mask);
>  
>                               qp_attr.path_mig_state = IBV_MIG_REARM;
>  
> @@ -1556,7 +1558,7 @@
>  
>                               mask = IBV_QP_STATE | IBV_QP_PATH_MIG_STATE;
>  
> -                             cleanup_mask(qp_type, &mask);
> +                             cleanup_mask(&device_attr, qp_type, &mask);
>  
>                               qp_attr.path_mig_state = IBV_MIG_REARM;
>  
> @@ -1584,7 +1586,7 @@
>  
>                               mask = IBV_QP_STATE | IBV_QP_PATH_MIG_STATE;
>  
> -                             cleanup_mask(qp_type, &mask);
> +                             cleanup_mask(&device_attr, qp_type, &mask);
>  
>                               qp_attr.path_mig_state = IBV_MIG_REARM;
>  
>   
committed.

thanks
Dotan

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to