net: ipa: always inline ipa_aggr_granularity_val()
It isn't required, but all callers of ipa_aggr_granularity_val()
pass a constant value (IPA_AGGR_GRANULARITY) as the usec argument.
Two of those callers are in ipa_validate_build(), with the result
being passed to BUILD_BUG_ON().
Evidently the "sparc64-linux-gcc" compiler (at least) doesn't always
inline ipa_aggr_granularity_val(), so the result of the function is
not constant at compile time, and that leads to build errors.
Define the function with the __always_inline attribute to avoid the
errors. We can see by inspection that the value passed is never
zero, so we can just remove its WARN_ON() call.
Fixes: 5bc5588466
("net: ipa: use WARN_ON() rather than assertions")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Alex Elder <elder@linaro.org>
Link: https://lore.kernel.org/r/20210811135948.2634264-1-elder@linaro.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
bed5a942e2
commit
676eec8efd
@ -253,12 +253,11 @@ ipa_hardware_config_qsb(struct ipa *ipa, const struct ipa_data *data)
|
||||
/* Compute the value to use in the COUNTER_CFG register AGGR_GRANULARITY
|
||||
* field to represent the given number of microseconds. The value is one
|
||||
* less than the number of timer ticks in the requested period. 0 is not
|
||||
* a valid granularity value.
|
||||
* a valid granularity value (so for example @usec must be at least 16 for
|
||||
* a TIMER_FREQUENCY of 32000).
|
||||
*/
|
||||
static u32 ipa_aggr_granularity_val(u32 usec)
|
||||
static __always_inline u32 ipa_aggr_granularity_val(u32 usec)
|
||||
{
|
||||
WARN_ON(!usec);
|
||||
|
||||
return DIV_ROUND_CLOSEST(usec * TIMER_FREQUENCY, USEC_PER_SEC) - 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user