On Wed, Mar 24, 2010 at 03:01:07PM +0300, Dan Carpenter wrote:
Smatch complained about BUG_ON(reg > WM8994_MAX_REGISTER) because the actual number of elements in the array was WM8994_REG_CACHE_SIZE + 1.
I changed the BUG_ON() to return -EINVAL.
Please don't introduce orthogonal changes like this in patches, it's bad practice and increases the chances of your patch being nacked.
I was confused why WM8994_REG_CACHE_SIZE was different from the actual size of ->reg_cache and I was concerned because some places used ARRAY_SIZE() to find the end of the array and other places used WM8994_REG_CACHE_SIZE. In my patch, I made them the same.
This is caused by confusion with the MAX_CACHED_REGISTER definition in the header. Best to use that one consistently, I guess - I've got a sneaking suspicion something has gone AWOL in the driver publication process.