Lines Matching refs:mcounters
82 struct mlx5_ib_mcounters *mcounters = to_mcounters(counters); in mlx5_ib_read_counters() local
87 mutex_lock(&mcounters->mcntrs_mutex); in mlx5_ib_read_counters()
88 if (mcounters->cntrs_max_index > read_attr->ncounters) { in mlx5_ib_read_counters()
93 mread_attr.out = kcalloc(mcounters->counters_num, sizeof(u64), in mlx5_ib_read_counters()
100 mread_attr.hw_cntrs_hndl = mcounters->hw_cntrs_hndl; in mlx5_ib_read_counters()
102 ret = mcounters->read_counters(counters->device, &mread_attr); in mlx5_ib_read_counters()
109 desc = mcounters->counters_data; in mlx5_ib_read_counters()
110 for (i = 0; i < mcounters->ncounters; i++) in mlx5_ib_read_counters()
116 mutex_unlock(&mcounters->mcntrs_mutex); in mlx5_ib_read_counters()
122 struct mlx5_ib_mcounters *mcounters = to_mcounters(counters); in mlx5_ib_destroy_counters() local
125 if (mcounters->hw_cntrs_hndl) in mlx5_ib_destroy_counters()
127 mcounters->hw_cntrs_hndl); in mlx5_ib_destroy_counters()
134 struct mlx5_ib_mcounters *mcounters = to_mcounters(counters); in mlx5_ib_create_counters() local
136 mutex_init(&mcounters->mcntrs_mutex); in mlx5_ib_create_counters()
558 struct mlx5_ib_mcounters *mcounters = to_mcounters(counters); in counters_set_description() local
566 mcounters->type = counters_type; in counters_set_description()
567 mcounters->read_counters = read_flow_counters; in counters_set_description()
568 mcounters->counters_num = FLOW_COUNTERS_NUM; in counters_set_description()
569 mcounters->ncounters = ncounters; in counters_set_description()
579 mutex_lock(&mcounters->mcntrs_mutex); in counters_set_description()
580 mcounters->counters_data = desc_data; in counters_set_description()
581 mcounters->cntrs_max_index = cntrs_max_index; in counters_set_description()
582 mutex_unlock(&mcounters->mcntrs_mutex); in counters_set_description()
591 struct mlx5_ib_mcounters *mcounters = to_mcounters(ibcounters); in mlx5_ib_flow_counters_set_data() local
616 if (!mcounters->hw_cntrs_hndl) { in mlx5_ib_flow_counters_set_data()
617 mcounters->hw_cntrs_hndl = mlx5_fc_create( in mlx5_ib_flow_counters_set_data()
619 if (IS_ERR(mcounters->hw_cntrs_hndl)) { in mlx5_ib_flow_counters_set_data()
620 ret = PTR_ERR(mcounters->hw_cntrs_hndl); in mlx5_ib_flow_counters_set_data()
628 if (mcounters->cntrs_max_index) { in mlx5_ib_flow_counters_set_data()
640 } else if (!mcounters->cntrs_max_index) { in mlx5_ib_flow_counters_set_data()
651 mcounters->hw_cntrs_hndl); in mlx5_ib_flow_counters_set_data()
652 mcounters->hw_cntrs_hndl = NULL; in mlx5_ib_flow_counters_set_data()
661 struct mlx5_ib_mcounters *mcounters; in mlx5_ib_counters_clear_description() local
666 mcounters = to_mcounters(counters); in mlx5_ib_counters_clear_description()
668 mutex_lock(&mcounters->mcntrs_mutex); in mlx5_ib_counters_clear_description()
669 kfree(mcounters->counters_data); in mlx5_ib_counters_clear_description()
670 mcounters->counters_data = NULL; in mlx5_ib_counters_clear_description()
671 mcounters->cntrs_max_index = 0; in mlx5_ib_counters_clear_description()
672 mutex_unlock(&mcounters->mcntrs_mutex); in mlx5_ib_counters_clear_description()