Re: [PATCH] regcache: Use a consistent sort for defaults table

Péter Ujfalusi <[email protected]>
Newsgroups org.kernel.vger.linux-kernel
Message-ID <[email protected]>

On 05/08/2026 20:51, Mark Brown wrote:
> When we look up registers in the defaults table we use a binary search,
> and we have a regcache_sort_defaults() API to help drivers that constuct
> their defaults tables on the fly.  Unfortunately the lookup and the sort
> don't use the same comparison function, and to make matters worse the
> comparison function used during lookups is written for signed register
> numbers rather than the unsigned ones we actually have so can produce
> suprising results when some of the addresses have the top bit set.
> 
> Standardise on the more explicitly coded function to ensure consistent
> results.

Reviewed-by: Peter Ujfalusi <[email protected]>

> 
> Signed-off-by: Mark Brown <[email protected]>
> ---
>  drivers/base/regmap/regcache.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
> index aa8f2efed779..480bc76f9a02 100644
> --- a/drivers/base/regmap/regcache.c
> +++ b/drivers/base/regmap/regcache.c
> @@ -727,14 +727,6 @@ unsigned int regcache_get_val(struct regmap *map, const void *base,
>  	return -1;
>  }
>  
> -static int regcache_default_cmp(const void *a, const void *b)
> -{
> -	const struct reg_default *_a = a;
> -	const struct reg_default *_b = b;
> -
> -	return _a->reg - _b->reg;
> -}
> -
>  int regcache_lookup_reg(struct regmap *map, unsigned int reg)
>  {
>  	struct reg_default key;
> @@ -744,7 +736,7 @@ int regcache_lookup_reg(struct regmap *map, unsigned int reg)
>  	key.def = 0;
>  
>  	r = bsearch(&key, map->reg_defaults, map->num_reg_defaults,
> -		    sizeof(struct reg_default), regcache_default_cmp);
> +		    sizeof(struct reg_default), regcache_defaults_cmp);
>  
>  	if (r)
>  		return r - map->reg_defaults;
> 
> ---
> base-commit: 075b74841bd0065a3bda3440873c747938e69b68
> change-id: 20260805-regmap-regcache-sort-8d144a68bf8d
> 
> Best regards,
> --  
> Mark Brown <[email protected]>
> 

-- 
Péter
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.