Re: drivers/net/wireless/ralink/rt2x00/rt2800lib.c:9439:15: warning: result of comparison of constant -7 with expression of type 'char' is always false

From: Jason A. Donenfeld
Date: Wed Oct 19 2022 - 04:03:00 EST


On Wed, Oct 19, 2022 at 1:59 AM Jason A. Donenfeld <Jason@xxxxxxxxx> wrote:
>
> On Wed, Oct 19, 2022 at 1:55 AM Kalle Valo <kvalo@xxxxxxxxxx> wrote:
> >
> > + jason, linux-wireless
> >
> > kernel test robot <lkp@xxxxxxxxx> writes:
> >
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > > head: aae703b02f92bde9264366c545e87cec451de471
> > > commit: dab902fe1d29dc0fa1dccc8d13dc89ffbf633881 wifi: rt2x00: add TX
> > > LOFT calibration for MT7620
> > > date: 4 weeks ago
> > > config: arm64-allmodconfig
> > > compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project
> > > 791a7ae1ba3efd6bca96338e10ffde557ba83920)
> > > 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 arm64 cross compiling tool for clang build
> > > # apt-get install binutils-aarch64-linux-gnu
> > > #
> > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dab902fe1d29dc0fa1dccc8d13dc89ffbf633881
> > > git remote add linus
> > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > git fetch --no-tags linus master
> > > git checkout dab902fe1d29dc0fa1dccc8d13dc89ffbf633881
> > > # 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=arm64 SHELL=/bin/bash drivers/gpu/drm/amd/amdgpu/
> > > drivers/net/wireless/ralink/rt2x00/ drivers/staging/media/
> > >
> > > If you fix the issue, kindly add following tag where applicable
> > > | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > >
> > > All warnings (new ones prefixed by >>):
> > >
> > >>> drivers/net/wireless/ralink/rt2x00/rt2800lib.c:9439:15: warning:
> > >> result of comparison of constant -7 with expression of type 'char'
> > >> is always false [-Wtautological-constant-out-of-range-compare]
> > > gerr = (gerr < -0x07) ? -0x07 : (gerr > 0x05) ? 0x05 : gerr;
> > > ~~~~ ^ ~~~~~
> > > drivers/net/wireless/ralink/rt2x00/rt2800lib.c:9443:15: warning: result of comparison of constant -31 with expression of type 'char' is always false [-Wtautological-constant-out-of-range-compare]
> > > perr = (perr < -0x1f) ? -0x1f : (perr > 0x1d) ? 0x1d : perr;
> > > ~~~~ ^ ~~~~~
> > > 2 warnings generated.
> >
> > I believe this patch should fix it:
> >
> > https://patchwork.kernel.org/project/linux-wireless/patch/20221018202734.140489-1-Jason@xxxxxxxxx/
> >
> > Jason, is my understanding correct?
>
> That's a different bug caused by the same pitfall: assuming char is
> signed. I'll send a patch for that function too.


Actually, maybe I should fix the whole file? Patch incoming.

Jason