Re: [atishp04:isa_ext_support 3/4] arch/riscv/kernel/cpufeature.c:82:24: warning: address of array 'edata->dtprop' will always evaluate to 'true'

From: Geert Uytterhoeven
Date: Tue Dec 28 2021 - 03:37:26 EST


On Tue, Dec 28, 2021 at 9:21 AM kernel test robot <lkp@xxxxxxxxx> wrote:
> tree: https://github.com/atishp04/linux isa_ext_support
> head: cf2f3fa532aa7c672f681ca0685046c738bfb45f
> commit: ae97a995345b68c472f3a904fc8fbefaa97ae26a [3/4] RISC-V: Provide a framework for parsing multi-letter ISA extensions
> config: riscv-randconfig-c006-20211226 (https://download.01.org/0day-ci/archive/20211228/202112280309.fgjGevFd-lkp@xxxxxxxxx/config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 0c553cc1af2e4c14100df6cf4a6fc91987e778e6)
> 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 riscv cross compiling tool for clang build
> # apt-get install binutils-riscv64-linux-gnu
> # https://github.com/atishp04/linux/commit/ae97a995345b68c472f3a904fc8fbefaa97ae26a
> git remote add atishp04 https://github.com/atishp04/linux
> git fetch --no-tags atishp04 isa_ext_support
> git checkout ae97a995345b68c472f3a904fc8fbefaa97ae26a
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash arch/riscv/kernel/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>
> All warnings (new ones prefixed by >>):
>
> >> arch/riscv/kernel/cpufeature.c:82:24: warning: address of array 'edata->dtprop' will always evaluate to 'true' [-Wpointer-bool-conversion]
> if (!edata || !edata->dtprop)
> ~~~~~~~~^~~~~~
> 1 warning generated.
>
>
> vim +82 arch/riscv/kernel/cpufeature.c
>
> 76
> 77 int riscv_isa_ext_list_add(struct riscv_isa_ext_data *edata)
> 78 {
> 79 struct device_node *node, *enode;
> 80 int eid;
> 81
> > 82 if (!edata || !edata->dtprop)

if (!edata || !edata->dtprop[0])

> 83 return -EINVAL;
> 84
> 85 node = of_find_node_by_path("/cpus");
> 86 if (!node) {
> 87 pr_err("No CPU information found in DT\n");
> 88 return -ENOENT;
> 89 }

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds