diff options
Diffstat (limited to 'kernel/trace/tracing_map.c')
| -rw-r--r-- | kernel/trace/tracing_map.c | 40 | 
1 files changed, 23 insertions, 17 deletions
| diff --git a/kernel/trace/tracing_map.c b/kernel/trace/tracing_map.c index d6bddb157ef2..39bb56d2dcbe 100644 --- a/kernel/trace/tracing_map.c +++ b/kernel/trace/tracing_map.c @@ -834,29 +834,35 @@ int tracing_map_init(struct tracing_map *map)  	return err;  } -static int cmp_entries_dup(const struct tracing_map_sort_entry **a, -			   const struct tracing_map_sort_entry **b) +static int cmp_entries_dup(const void *A, const void *B)  { +	const struct tracing_map_sort_entry *a, *b;  	int ret = 0; -	if (memcmp((*a)->key, (*b)->key, (*a)->elt->map->key_size)) +	a = *(const struct tracing_map_sort_entry **)A; +	b = *(const struct tracing_map_sort_entry **)B; + +	if (memcmp(a->key, b->key, a->elt->map->key_size))  		ret = 1;  	return ret;  } -static int cmp_entries_sum(const struct tracing_map_sort_entry **a, -			   const struct tracing_map_sort_entry **b) +static int cmp_entries_sum(const void *A, const void *B)  {  	const struct tracing_map_elt *elt_a, *elt_b; +	const struct tracing_map_sort_entry *a, *b;  	struct tracing_map_sort_key *sort_key;  	struct tracing_map_field *field;  	tracing_map_cmp_fn_t cmp_fn;  	void *val_a, *val_b;  	int ret = 0; -	elt_a = (*a)->elt; -	elt_b = (*b)->elt; +	a = *(const struct tracing_map_sort_entry **)A; +	b = *(const struct tracing_map_sort_entry **)B; + +	elt_a = a->elt; +	elt_b = b->elt;  	sort_key = &elt_a->map->sort_key; @@ -873,18 +879,21 @@ static int cmp_entries_sum(const struct tracing_map_sort_entry **a,  	return ret;  } -static int cmp_entries_key(const struct tracing_map_sort_entry **a, -			   const struct tracing_map_sort_entry **b) +static int cmp_entries_key(const void *A, const void *B)  {  	const struct tracing_map_elt *elt_a, *elt_b; +	const struct tracing_map_sort_entry *a, *b;  	struct tracing_map_sort_key *sort_key;  	struct tracing_map_field *field;  	tracing_map_cmp_fn_t cmp_fn;  	void *val_a, *val_b;  	int ret = 0; -	elt_a = (*a)->elt; -	elt_b = (*b)->elt; +	a = *(const struct tracing_map_sort_entry **)A; +	b = *(const struct tracing_map_sort_entry **)B; + +	elt_a = a->elt; +	elt_b = b->elt;  	sort_key = &elt_a->map->sort_key; @@ -989,10 +998,8 @@ static void sort_secondary(struct tracing_map *map,  			   struct tracing_map_sort_key *primary_key,  			   struct tracing_map_sort_key *secondary_key)  { -	int (*primary_fn)(const struct tracing_map_sort_entry **, -			  const struct tracing_map_sort_entry **); -	int (*secondary_fn)(const struct tracing_map_sort_entry **, -			    const struct tracing_map_sort_entry **); +	int (*primary_fn)(const void *, const void *); +	int (*secondary_fn)(const void *, const void *);  	unsigned i, start = 0, n_sub = 1;  	if (is_key(map, primary_key->field_idx)) @@ -1061,8 +1068,7 @@ int tracing_map_sort_entries(struct tracing_map *map,  			     unsigned int n_sort_keys,  			     struct tracing_map_sort_entry ***sort_entries)  { -	int (*cmp_entries_fn)(const struct tracing_map_sort_entry **, -			      const struct tracing_map_sort_entry **); +	int (*cmp_entries_fn)(const void *, const void *);  	struct tracing_map_sort_entry *sort_entry, **entries;  	int i, n_entries, ret; |