All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Alex Elder <elder@linaro.org>
Cc: davem@davemloft.net, kuba@kernel.org, bjorn.andersson@linaro.org,
	evgreen@chromium.org, cpratapa@codeaurora.org,
	subashab@codeaurora.org, lkp@intel.com, elder@kernel.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next] net: ipa: always inline ipa_aggr_granularity_val()
Date: Wed, 11 Aug 2021 15:12:42 +0300	[thread overview]
Message-ID: <YRO+uhPiS8g73rYk@unreal> (raw)
In-Reply-To: <aed281de-dd9b-c185-66b3-e597548a9649@linaro.org>

On Wed, Aug 11, 2021 at 07:06:01AM -0500, Alex Elder wrote:
> On 8/11/21 7:02 AM, Leon Romanovsky wrote:
> > On Tue, Aug 10, 2021 at 11:02:13AM -0500, Alex Elder wrote:
> >> 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.  And given that the function is inline, we can switch the
> >> WARN_ON() there to be BUILD_BUG_ON().
> >>
> >> Fixes: 5bc5588466a1f ("net: ipa: use WARN_ON() rather than assertions")
> >> Reported-by: kernel test robot <lkp@intel.com>
> >> Signed-off-by: Alex Elder <elder@linaro.org>
> >> ---
> >>
> >> David/Jakub, this fixes a bug in a commit in net-next/master.  -Alex
> >>
> >>  drivers/net/ipa/ipa_main.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
> >> index 25bbb456e0078..f90b3521e266b 100644
> >> --- a/drivers/net/ipa/ipa_main.c
> >> +++ b/drivers/net/ipa/ipa_main.c
> >> @@ -255,9 +255,9 @@ ipa_hardware_config_qsb(struct ipa *ipa, const struct ipa_data *data)
> >>   * less than the number of timer ticks in the requested period.  0 is not
> >>   * a valid granularity value.
> >>   */
> >> -static u32 ipa_aggr_granularity_val(u32 usec)
> >> +static __always_inline u32 ipa_aggr_granularity_val(u32 usec)
> >>  {
> >> -	WARN_ON(!usec);
> >> +	BUILD_BUG_ON(!usec);
> > 
> > So what exactly are you checking here if all callers pass same value?
> > It is in-kernel API, declared as static inside one module. There is no
> > need to protect from itself.
> 
> Yeah that's a good point.  It can just as well be removed.
> I think the check was added before I knew it was only going
> to be used with a single constant value.  That said, the
> point was to check at runtime a required constraint.
> 
> I'll post version 2 that simply removes it.  Thanks.

Thanks
> 
> 					-Alex
> 
> > 
> > Thanks
> > 
> >>  
> >>  	return DIV_ROUND_CLOSEST(usec * TIMER_FREQUENCY, USEC_PER_SEC) - 1;
> >>  }
> >> -- 
> >> 2.27.0
> >>
> 

      reply	other threads:[~2021-08-11 12:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-10 16:02 [PATCH net-next] net: ipa: always inline ipa_aggr_granularity_val() Alex Elder
2021-08-11 12:02 ` Leon Romanovsky
2021-08-11 12:06   ` Alex Elder
2021-08-11 12:12     ` Leon Romanovsky [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YRO+uhPiS8g73rYk@unreal \
    --to=leon@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=cpratapa@codeaurora.org \
    --cc=davem@davemloft.net \
    --cc=elder@kernel.org \
    --cc=elder@linaro.org \
    --cc=evgreen@chromium.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=subashab@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.