public inbox for linux-clk@vger.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Stephen Boyd <sboyd@kernel.org>
Cc: Qin Jian <qinjian@cqplus1.com>, kernel test robot <lkp@intel.com>,
	llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [clk:clk-sunplus 1/1] drivers/clk/clk-sp7021.c:316:8: warning: result of comparison of constant 18446744073709551615 with expression of type 'typeof (_Generic((_m), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigne...
Date: Fri, 24 Mar 2023 07:50:56 -0700	[thread overview]
Message-ID: <20230324145056.GA428955@dev-arch.thelio-3990X> (raw)
In-Reply-To: <00c24196e5ceb60b7d69967b73910264.sboyd@kernel.org>

On Wed, Mar 22, 2023 at 04:48:43PM -0700, Stephen Boyd wrote:
> Quoting Nathan Chancellor (2023-03-22 12:59:33)
> > On Wed, Mar 22, 2023 at 10:39:06AM -0700, Stephen Boyd wrote:
> > > Quoting kernel test robot (2023-03-22 04:17:48)
> > > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-sunplus
> > > > head:   d54c1fd4a51e8fbc7f9da86b0cd338a4f7cd2bb2
> > > > commit: d54c1fd4a51e8fbc7f9da86b0cd338a4f7cd2bb2 [1/1] clk: Add Sunplus SP7021 clock driver
> > > > config: mips-randconfig-r012-20230322 (https://download.01.org/0day-ci/archive/20230322/202303221947.pXP2v4xJ-lkp@intel.com/config)
> > > > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7)
> > > > reproduce (this is a W=1 build):
> > > >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > >         chmod +x ~/bin/make.cross
> > > >         # install mips cross compiling tool for clang build
> > > >         # apt-get install binutils-mipsel-linux-gnu
> > > >         # https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git/commit/?id=d54c1fd4a51e8fbc7f9da86b0cd338a4f7cd2bb2
> > > >         git remote add clk https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
> > > >         git fetch --no-tags clk clk-sunplus
> > > >         git checkout d54c1fd4a51e8fbc7f9da86b0cd338a4f7cd2bb2
> > > >         # save the config file
> > > >         mkdir build_dir && cp config build_dir/.config
> > > >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips olddefconfig
> > > >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/clk/
> > > > 
> > > > If you fix the issue, kindly add following tag where applicable
> > > > | Reported-by: kernel test robot <lkp@intel.com>
> > > > | Link: https://lore.kernel.org/oe-kbuild-all/202303221947.pXP2v4xJ-lkp@intel.com/
> > > > 
> > > 
> > > Does this fix it?
> > > 
> > > ---8<---
> > > diff --git a/drivers/clk/clk-sp7021.c b/drivers/clk/clk-sp7021.c
> > > index 8fec14120105..caabbf5e2197 100644
> > > --- a/drivers/clk/clk-sp7021.c
> > > +++ b/drivers/clk/clk-sp7021.c
> > > @@ -30,9 +30,9 @@ enum {
> > >       P_MAX
> > >  };
> > >  
> > > -#define MASK_SEL_FRA GENMASK(1, 1)
> > > -#define MASK_SDM_MOD GENMASK(2, 2)
> > > -#define MASK_PH_SEL  GENMASK(4, 4)
> > > +#define MASK_SEL_FRA BITMASK(1)
> > > +#define MASK_SDM_MOD BITMASK(2)
> > > +#define MASK_PH_SEL  BITMASK(4)
> > >  #define MASK_NFRA    GENMASK(12, 6)
> > >  #define MASK_DIVR    GENMASK(8, 7)
> > >  #define MASK_DIVN    GENMASK(7, 0)
> > > 
> > 
> > No (BITMASK did not exist but BIT_MASK does).
> 
> Heh ok.
> 
> > It looks like clang is
> > complaining that mask is an unsigned int and it is being compared
> > against ~0ull, which will always be false. This makes the warning go
> > away for me, which is similar to commit cfd6fb45cfaf ("crypto: ccree -
> > avoid out-of-range warnings from clang"), but I am not sure if that is
> > correct or not.
> 
> Cool thanks. Can you send it as a proper patch?

Sure thing, I will do so when I am back online next week.

> > diff --git a/drivers/clk/clk-sp7021.c b/drivers/clk/clk-sp7021.c
> > index 8fec14120105..11d22043ddd7 100644
> > --- a/drivers/clk/clk-sp7021.c
> > +++ b/drivers/clk/clk-sp7021.c
> > @@ -41,7 +41,7 @@ enum {
> >  /* HIWORD_MASK FIELD_PREP */
> >  #define HWM_FIELD_PREP(mask, value)            \
> >  ({                                             \
> > -       u32 _m = mask;                          \
> > +       u64 _m = mask;                          \
> >         (_m << 16) | FIELD_PREP(_m, value);     \
> >  })
> >  
> > 
> > For the record, this only happens under W=1 but I think we would like to
> > eventually enable this warning so it would be good to avoid introducing
> > new instances.
> 
> It makes sense to me because FIELD_PREP typically takes a GENMASK input,
> which is an unsigned long long shifted around. 
> 
> I think I'm building with W=1, but I'm not building with clang. I'll
> have to go fetch another compiler and put it into circulation.

If you have not seen it already, I provide prebuilt up to date versions
of clang on kernel.org, which I hope eases the friction of testing with
two compilers:

https://lore.kernel.org/20230319235619.GA18547@dev-arch.thelio-3990X/

Cheers,
Nathan

  reply	other threads:[~2023-03-24 14:51 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-22 11:17 [clk:clk-sunplus 1/1] drivers/clk/clk-sp7021.c:316:8: warning: result of comparison of constant 18446744073709551615 with expression of type 'typeof (_Generic((_m), char: (unsigned char)0, unsigned char: (unsigned char)0, signed char: (unsigned char)0, unsigned short: (unsigne kernel test robot
2023-03-22 17:39 ` Stephen Boyd
2023-03-22 19:59   ` Nathan Chancellor
2023-03-22 23:48     ` Stephen Boyd
2023-03-24 14:50       ` Nathan Chancellor [this message]
2023-04-29  1:13         ` Stephen Boyd
2023-05-01 16:28           ` Nathan Chancellor

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=20230324145056.GA428955@dev-arch.thelio-3990X \
    --to=nathan@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=qinjian@cqplus1.com \
    --cc=sboyd@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox