All of lore.kernel.org
 help / color / mirror / Atom feed
* [atishp04:isa_framework 3/8] arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long'.
@ 2022-02-11 14:29 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-02-11  8:29 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 10778 bytes --]

CC: kbuild-all(a)lists.01.org
CC: Atish Patra <Atish.Patra@wdc.com>
CC: linux-kernel(a)vger.kernel.org
TO: Tsukasa OI <research_trasio@irq.a4lg.com>
CC: Atish Patra <atishp@rivosinc.com>

tree:   https://github.com/atishp04/linux isa_framework
head:   db6ba78ead62e927c2057ba750765b070c8af8a6
commit: f4fd878dfb479e6db102addfdf545a32b76fbecd [3/8] RISC-V: Minimal parser for "riscv, isa" strings
:::::: branch date: 11 hours ago
:::::: commit date: 11 hours ago
config: riscv-randconfig-m031-20220211 (https://download.01.org/0day-ci/archive/20220211/202202111616.z7nZoKYj-lkp(a)intel.com/config)
compiler: riscv32-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long'.

vim +/ext_long +153 arch/riscv/kernel/cpufeature.c

6bcff51539ccae5 Anup Patel     2020-04-24   64  
3df952ae2ac81fb Jisheng Zhang  2021-05-16   65  void __init riscv_fill_hwcap(void)
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   66  {
dd81c8ab819d360 Johan Hovold   2019-01-18   67  	struct device_node *node;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   68  	const char *isa;
d4d5a22e24d477a Tsukasa OI     2021-12-02   69  	char print_str[NUM_ALPHA_EXTS + 1];
f4fd878dfb479e6 Tsukasa OI     2021-12-02   70  	int i, j;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   71  	static unsigned long isa2hwcap[256] = {0};
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   72  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   73  	isa2hwcap['i'] = isa2hwcap['I'] = COMPAT_HWCAP_ISA_I;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   74  	isa2hwcap['m'] = isa2hwcap['M'] = COMPAT_HWCAP_ISA_M;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   75  	isa2hwcap['a'] = isa2hwcap['A'] = COMPAT_HWCAP_ISA_A;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   76  	isa2hwcap['f'] = isa2hwcap['F'] = COMPAT_HWCAP_ISA_F;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   77  	isa2hwcap['d'] = isa2hwcap['D'] = COMPAT_HWCAP_ISA_D;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   78  	isa2hwcap['c'] = isa2hwcap['C'] = COMPAT_HWCAP_ISA_C;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   79  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   80  	elf_hwcap = 0;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   81  
6bcff51539ccae5 Anup Patel     2020-04-24   82  	bitmap_zero(riscv_isa, RISCV_ISA_EXT_MAX);
6bcff51539ccae5 Anup Patel     2020-04-24   83  
dd81c8ab819d360 Johan Hovold   2019-01-18   84  	for_each_of_cpu_node(node) {
fbdc6193dc706c8 Atish Patra    2019-02-22   85  		unsigned long this_hwcap = 0;
6bcff51539ccae5 Anup Patel     2020-04-24   86  		unsigned long this_isa = 0;
fbdc6193dc706c8 Atish Patra    2019-02-22   87  
fbdc6193dc706c8 Atish Patra    2019-02-22   88  		if (riscv_of_processor_hartid(node) < 0)
fbdc6193dc706c8 Atish Patra    2019-02-22   89  			continue;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   90  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   91  		if (of_property_read_string(node, "riscv,isa", &isa)) {
7265d103902c0bc Johan Hovold   2019-01-18   92  			pr_warn("Unable to find \"riscv,isa\" devicetree entry\n");
fbdc6193dc706c8 Atish Patra    2019-02-22   93  			continue;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   94  		}
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   95  
6bcff51539ccae5 Anup Patel     2020-04-24   96  #if IS_ENABLED(CONFIG_32BIT)
6bcff51539ccae5 Anup Patel     2020-04-24   97  		if (!strncmp(isa, "rv32", 4))
f4fd878dfb479e6 Tsukasa OI     2021-12-02   98  			isa += 4;
6bcff51539ccae5 Anup Patel     2020-04-24   99  #elif IS_ENABLED(CONFIG_64BIT)
6bcff51539ccae5 Anup Patel     2020-04-24  100  		if (!strncmp(isa, "rv64", 4))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  101  			isa += 4;
6bcff51539ccae5 Anup Patel     2020-04-24  102  #endif
f4fd878dfb479e6 Tsukasa OI     2021-12-02  103  		for (; *isa; ++isa) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  104  			const char *ext = isa++;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  105  			bool ext_long, ext_err = false;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  106  
f4fd878dfb479e6 Tsukasa OI     2021-12-02  107  			switch (*ext) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  108  			case 's':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  109  			case 'x':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  110  			case 'z':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  111  				/**
f4fd878dfb479e6 Tsukasa OI     2021-12-02  112  				 * 's' is a special case because:
f4fd878dfb479e6 Tsukasa OI     2021-12-02  113  				 * It can be present in base extension for supervisor
f4fd878dfb479e6 Tsukasa OI     2021-12-02  114  				 * Multi-letter extensions can start with 's' as well for
f4fd878dfb479e6 Tsukasa OI     2021-12-02  115  				 * Supervisor extensions (i.e. sstc, sscofpmf, svinval)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  116  				 */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  117  				if (*ext == 's' && ext[-1] != '_')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  118  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  119  				ext_long = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  120  				/* Multi-letter extension must be delimited */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  121  				for (; *isa && *isa != '_'; ++isa)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  122  					if (!islower(*isa) && !isdigit(*isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  123  						ext_err = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  124  				/* ... but must be ignored. */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  125  				break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  126  			default:
f4fd878dfb479e6 Tsukasa OI     2021-12-02  127  				ext_long = false;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  128  				if (!islower(*ext)) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  129  					ext_err = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  130  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  131  				}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  132  				/* Find next extension */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  133  				if (!isdigit(*isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  134  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  135  				while (isdigit(*++isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  136  					;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  137  				if (*isa != 'p')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  138  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  139  				if (!isdigit(*++isa)) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  140  					--isa;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  141  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  142  				}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  143  				while (isdigit(*++isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  144  					;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  145  				break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  146  			}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  147  			if (*isa != '_')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  148  				--isa;
6bcff51539ccae5 Anup Patel     2020-04-24  149  			/*
f4fd878dfb479e6 Tsukasa OI     2021-12-02  150  			 * TODO: Full version-aware handling including
f4fd878dfb479e6 Tsukasa OI     2021-12-02  151  			 * multi-letter extensions will be added in-future.
6bcff51539ccae5 Anup Patel     2020-04-24  152  			 */
f4fd878dfb479e6 Tsukasa OI     2021-12-02 @153  			if (ext_err || ext_long)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  154  				continue;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  155  			this_hwcap |= isa2hwcap[(unsigned char)(*ext)];
f4fd878dfb479e6 Tsukasa OI     2021-12-02  156  			this_isa |= (1UL << (*ext - 'a'));
6bcff51539ccae5 Anup Patel     2020-04-24  157  		}
fbdc6193dc706c8 Atish Patra    2019-02-22  158  
fbdc6193dc706c8 Atish Patra    2019-02-22  159  		/*
fbdc6193dc706c8 Atish Patra    2019-02-22  160  		 * All "okay" hart should have same isa. Set HWCAP based on
fbdc6193dc706c8 Atish Patra    2019-02-22  161  		 * common capabilities of every "okay" hart, in case they don't
fbdc6193dc706c8 Atish Patra    2019-02-22  162  		 * have.
fbdc6193dc706c8 Atish Patra    2019-02-22  163  		 */
fbdc6193dc706c8 Atish Patra    2019-02-22  164  		if (elf_hwcap)
fbdc6193dc706c8 Atish Patra    2019-02-22  165  			elf_hwcap &= this_hwcap;
fbdc6193dc706c8 Atish Patra    2019-02-22  166  		else
fbdc6193dc706c8 Atish Patra    2019-02-22  167  			elf_hwcap = this_hwcap;
6bcff51539ccae5 Anup Patel     2020-04-24  168  
6bcff51539ccae5 Anup Patel     2020-04-24  169  		if (riscv_isa[0])
6bcff51539ccae5 Anup Patel     2020-04-24  170  			riscv_isa[0] &= this_isa;
6bcff51539ccae5 Anup Patel     2020-04-24  171  		else
6bcff51539ccae5 Anup Patel     2020-04-24  172  			riscv_isa[0] = this_isa;
fbdc6193dc706c8 Atish Patra    2019-02-22  173  	}
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10  174  
86e581e31078578 Palmer Dabbelt 2018-08-27  175  	/* We don't support systems with F but without D, so mask those out
86e581e31078578 Palmer Dabbelt 2018-08-27  176  	 * here. */
86e581e31078578 Palmer Dabbelt 2018-08-27  177  	if ((elf_hwcap & COMPAT_HWCAP_ISA_F) && !(elf_hwcap & COMPAT_HWCAP_ISA_D)) {
7265d103902c0bc Johan Hovold   2019-01-18  178  		pr_info("This kernel does not support systems with F but not D\n");
86e581e31078578 Palmer Dabbelt 2018-08-27  179  		elf_hwcap &= ~COMPAT_HWCAP_ISA_F;
86e581e31078578 Palmer Dabbelt 2018-08-27  180  	}
86e581e31078578 Palmer Dabbelt 2018-08-27  181  
6bcff51539ccae5 Anup Patel     2020-04-24  182  	memset(print_str, 0, sizeof(print_str));
d4d5a22e24d477a Tsukasa OI     2021-12-02  183  	for (i = 0, j = 0; i < NUM_ALPHA_EXTS; i++)
6bcff51539ccae5 Anup Patel     2020-04-24  184  		if (riscv_isa[0] & BIT_MASK(i))
6bcff51539ccae5 Anup Patel     2020-04-24  185  			print_str[j++] = (char)('a' + i);
6bcff51539ccae5 Anup Patel     2020-04-24  186  	pr_info("riscv: ISA extensions %s\n", print_str);
6bcff51539ccae5 Anup Patel     2020-04-24  187  
6bcff51539ccae5 Anup Patel     2020-04-24  188  	memset(print_str, 0, sizeof(print_str));
d4d5a22e24d477a Tsukasa OI     2021-12-02  189  	for (i = 0, j = 0; i < NUM_ALPHA_EXTS; i++)
6bcff51539ccae5 Anup Patel     2020-04-24  190  		if (elf_hwcap & BIT_MASK(i))
6bcff51539ccae5 Anup Patel     2020-04-24  191  			print_str[j++] = (char)('a' + i);
6bcff51539ccae5 Anup Patel     2020-04-24  192  	pr_info("riscv: ELF capabilities %s\n", print_str);
9411ec60c23d868 Alan Kao       2018-10-09  193  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [atishp04:isa_framework 3/8] arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long'.
@ 2022-02-11 14:29 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2022-02-11 14:29 UTC (permalink / raw)
  To: kbuild, Tsukasa OI
  Cc: lkp, kbuild-all, Atish Patra, linux-kernel, Atish Patra

tree:   https://github.com/atishp04/linux isa_framework
head:   db6ba78ead62e927c2057ba750765b070c8af8a6
commit: f4fd878dfb479e6db102addfdf545a32b76fbecd [3/8] RISC-V: Minimal parser for "riscv, isa" strings
config: riscv-randconfig-m031-20220211 (https://download.01.org/0day-ci/archive/20220211/202202111616.z7nZoKYj-lkp@intel.com/config)
compiler: riscv32-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long'.

vim +/ext_long +153 arch/riscv/kernel/cpufeature.c

df952ae2ac81fb Jisheng Zhang  2021-05-16   65  void __init riscv_fill_hwcap(void)
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   66  {
dd81c8ab819d360 Johan Hovold   2019-01-18   67  	struct device_node *node;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   68  	const char *isa;
d4d5a22e24d477a Tsukasa OI     2021-12-02   69  	char print_str[NUM_ALPHA_EXTS + 1];
f4fd878dfb479e6 Tsukasa OI     2021-12-02   70  	int i, j;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   71  	static unsigned long isa2hwcap[256] = {0};
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   72  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   73  	isa2hwcap['i'] = isa2hwcap['I'] = COMPAT_HWCAP_ISA_I;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   74  	isa2hwcap['m'] = isa2hwcap['M'] = COMPAT_HWCAP_ISA_M;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   75  	isa2hwcap['a'] = isa2hwcap['A'] = COMPAT_HWCAP_ISA_A;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   76  	isa2hwcap['f'] = isa2hwcap['F'] = COMPAT_HWCAP_ISA_F;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   77  	isa2hwcap['d'] = isa2hwcap['D'] = COMPAT_HWCAP_ISA_D;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   78  	isa2hwcap['c'] = isa2hwcap['C'] = COMPAT_HWCAP_ISA_C;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   79  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   80  	elf_hwcap = 0;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   81  
6bcff51539ccae5 Anup Patel     2020-04-24   82  	bitmap_zero(riscv_isa, RISCV_ISA_EXT_MAX);
6bcff51539ccae5 Anup Patel     2020-04-24   83  
dd81c8ab819d360 Johan Hovold   2019-01-18   84  	for_each_of_cpu_node(node) {
fbdc6193dc706c8 Atish Patra    2019-02-22   85  		unsigned long this_hwcap = 0;
6bcff51539ccae5 Anup Patel     2020-04-24   86  		unsigned long this_isa = 0;
fbdc6193dc706c8 Atish Patra    2019-02-22   87  
fbdc6193dc706c8 Atish Patra    2019-02-22   88  		if (riscv_of_processor_hartid(node) < 0)
fbdc6193dc706c8 Atish Patra    2019-02-22   89  			continue;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   90  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   91  		if (of_property_read_string(node, "riscv,isa", &isa)) {
7265d103902c0bc Johan Hovold   2019-01-18   92  			pr_warn("Unable to find \"riscv,isa\" devicetree entry\n");
fbdc6193dc706c8 Atish Patra    2019-02-22   93  			continue;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   94  		}
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   95  
6bcff51539ccae5 Anup Patel     2020-04-24   96  #if IS_ENABLED(CONFIG_32BIT)
6bcff51539ccae5 Anup Patel     2020-04-24   97  		if (!strncmp(isa, "rv32", 4))
f4fd878dfb479e6 Tsukasa OI     2021-12-02   98  			isa += 4;
6bcff51539ccae5 Anup Patel     2020-04-24   99  #elif IS_ENABLED(CONFIG_64BIT)
6bcff51539ccae5 Anup Patel     2020-04-24  100  		if (!strncmp(isa, "rv64", 4))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  101  			isa += 4;
6bcff51539ccae5 Anup Patel     2020-04-24  102  #endif
f4fd878dfb479e6 Tsukasa OI     2021-12-02  103  		for (; *isa; ++isa) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  104  			const char *ext = isa++;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  105  			bool ext_long, ext_err = false;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  106  
f4fd878dfb479e6 Tsukasa OI     2021-12-02  107  			switch (*ext) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  108  			case 's':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  109  			case 'x':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  110  			case 'z':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  111  				/**
f4fd878dfb479e6 Tsukasa OI     2021-12-02  112  				 * 's' is a special case because:
f4fd878dfb479e6 Tsukasa OI     2021-12-02  113  				 * It can be present in base extension for supervisor
f4fd878dfb479e6 Tsukasa OI     2021-12-02  114  				 * Multi-letter extensions can start with 's' as well for
f4fd878dfb479e6 Tsukasa OI     2021-12-02  115  				 * Supervisor extensions (i.e. sstc, sscofpmf, svinval)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  116  				 */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  117  				if (*ext == 's' && ext[-1] != '_')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  118  					break;
                                                                                        ^^^^^^
ext_err is false.  ext_long is uninitialized.

f4fd878dfb479e6 Tsukasa OI     2021-12-02  119  				ext_long = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  120  				/* Multi-letter extension must be delimited */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  121  				for (; *isa && *isa != '_'; ++isa)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  122  					if (!islower(*isa) && !isdigit(*isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  123  						ext_err = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  124  				/* ... but must be ignored. */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  125  				break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  126  			default:
f4fd878dfb479e6 Tsukasa OI     2021-12-02  127  				ext_long = false;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  128  				if (!islower(*ext)) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  129  					ext_err = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  130  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  131  				}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  132  				/* Find next extension */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  133  				if (!isdigit(*isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  134  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  135  				while (isdigit(*++isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  136  					;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  137  				if (*isa != 'p')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  138  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  139  				if (!isdigit(*++isa)) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  140  					--isa;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  141  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  142  				}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  143  				while (isdigit(*++isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  144  					;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  145  				break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  146  			}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  147  			if (*isa != '_')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  148  				--isa;
6bcff51539ccae5 Anup Patel     2020-04-24  149  			/*
f4fd878dfb479e6 Tsukasa OI     2021-12-02  150  			 * TODO: Full version-aware handling including
f4fd878dfb479e6 Tsukasa OI     2021-12-02  151  			 * multi-letter extensions will be added in-future.
6bcff51539ccae5 Anup Patel     2020-04-24  152  			 */
f4fd878dfb479e6 Tsukasa OI     2021-12-02 @153  			if (ext_err || ext_long)
                                                                                       ^^^^^^^^
Uninitialized

f4fd878dfb479e6 Tsukasa OI     2021-12-02  154  				continue;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  155  			this_hwcap |= isa2hwcap[(unsigned char)(*ext)];
f4fd878dfb479e6 Tsukasa OI     2021-12-02  156  			this_isa |= (1UL << (*ext - 'a'));
6bcff51539ccae5 Anup Patel     2020-04-24  157  		}
fbdc6193dc706c8 Atish Patra    2019-02-22  158  
fbdc6193dc706c8 Atish Patra    2019-02-22  159  		/*
fbdc6193dc706c8 Atish Patra    2019-02-22  160  		 * All "okay" hart should have same isa. Set HWCAP based on
fbdc6193dc706c8 Atish Patra    2019-02-22  161  		 * common capabilities of every "okay" hart, in case they don't
fbdc6193dc706c8 Atish Patra    2019-02-22  162  		 * have.
fbdc6193dc706c8 Atish Patra    2019-02-22  163  		 */
fbdc6193dc706c8 Atish Patra    2019-02-22  164  		if (elf_hwcap)
fbdc6193dc706c8 Atish Patra    2019-02-22  165  			elf_hwcap &= this_hwcap;
fbdc6193dc706c8 Atish Patra    2019-02-22  166  		else
fbdc6193dc706c8 Atish Patra    2019-02-22  167  			elf_hwcap = this_hwcap;
6bcff51539ccae5 Anup Patel     2020-04-24  168  
6bcff51539ccae5 Anup Patel     2020-04-24  169  		if (riscv_isa[0])
6bcff51539ccae5 Anup Patel     2020-04-24  170  			riscv_isa[0] &= this_isa;
6bcff51539ccae5 Anup Patel     2020-04-24  171  		else
6bcff51539ccae5 Anup Patel     2020-04-24  172  			riscv_isa[0] = this_isa;
fbdc6193dc706c8 Atish Patra    2019-02-22  173  	}

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [atishp04:isa_framework 3/8] arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long'.
@ 2022-02-11 14:29 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2022-02-11 14:29 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 9056 bytes --]

tree:   https://github.com/atishp04/linux isa_framework
head:   db6ba78ead62e927c2057ba750765b070c8af8a6
commit: f4fd878dfb479e6db102addfdf545a32b76fbecd [3/8] RISC-V: Minimal parser for "riscv, isa" strings
config: riscv-randconfig-m031-20220211 (https://download.01.org/0day-ci/archive/20220211/202202111616.z7nZoKYj-lkp(a)intel.com/config)
compiler: riscv32-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long'.

vim +/ext_long +153 arch/riscv/kernel/cpufeature.c

df952ae2ac81fb Jisheng Zhang  2021-05-16   65  void __init riscv_fill_hwcap(void)
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   66  {
dd81c8ab819d360 Johan Hovold   2019-01-18   67  	struct device_node *node;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   68  	const char *isa;
d4d5a22e24d477a Tsukasa OI     2021-12-02   69  	char print_str[NUM_ALPHA_EXTS + 1];
f4fd878dfb479e6 Tsukasa OI     2021-12-02   70  	int i, j;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   71  	static unsigned long isa2hwcap[256] = {0};
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   72  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   73  	isa2hwcap['i'] = isa2hwcap['I'] = COMPAT_HWCAP_ISA_I;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   74  	isa2hwcap['m'] = isa2hwcap['M'] = COMPAT_HWCAP_ISA_M;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   75  	isa2hwcap['a'] = isa2hwcap['A'] = COMPAT_HWCAP_ISA_A;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   76  	isa2hwcap['f'] = isa2hwcap['F'] = COMPAT_HWCAP_ISA_F;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   77  	isa2hwcap['d'] = isa2hwcap['D'] = COMPAT_HWCAP_ISA_D;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   78  	isa2hwcap['c'] = isa2hwcap['C'] = COMPAT_HWCAP_ISA_C;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   79  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   80  	elf_hwcap = 0;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   81  
6bcff51539ccae5 Anup Patel     2020-04-24   82  	bitmap_zero(riscv_isa, RISCV_ISA_EXT_MAX);
6bcff51539ccae5 Anup Patel     2020-04-24   83  
dd81c8ab819d360 Johan Hovold   2019-01-18   84  	for_each_of_cpu_node(node) {
fbdc6193dc706c8 Atish Patra    2019-02-22   85  		unsigned long this_hwcap = 0;
6bcff51539ccae5 Anup Patel     2020-04-24   86  		unsigned long this_isa = 0;
fbdc6193dc706c8 Atish Patra    2019-02-22   87  
fbdc6193dc706c8 Atish Patra    2019-02-22   88  		if (riscv_of_processor_hartid(node) < 0)
fbdc6193dc706c8 Atish Patra    2019-02-22   89  			continue;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   90  
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   91  		if (of_property_read_string(node, "riscv,isa", &isa)) {
7265d103902c0bc Johan Hovold   2019-01-18   92  			pr_warn("Unable to find \"riscv,isa\" devicetree entry\n");
fbdc6193dc706c8 Atish Patra    2019-02-22   93  			continue;
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   94  		}
e2c0cdfba7f6992 Palmer Dabbelt 2017-07-10   95  
6bcff51539ccae5 Anup Patel     2020-04-24   96  #if IS_ENABLED(CONFIG_32BIT)
6bcff51539ccae5 Anup Patel     2020-04-24   97  		if (!strncmp(isa, "rv32", 4))
f4fd878dfb479e6 Tsukasa OI     2021-12-02   98  			isa += 4;
6bcff51539ccae5 Anup Patel     2020-04-24   99  #elif IS_ENABLED(CONFIG_64BIT)
6bcff51539ccae5 Anup Patel     2020-04-24  100  		if (!strncmp(isa, "rv64", 4))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  101  			isa += 4;
6bcff51539ccae5 Anup Patel     2020-04-24  102  #endif
f4fd878dfb479e6 Tsukasa OI     2021-12-02  103  		for (; *isa; ++isa) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  104  			const char *ext = isa++;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  105  			bool ext_long, ext_err = false;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  106  
f4fd878dfb479e6 Tsukasa OI     2021-12-02  107  			switch (*ext) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  108  			case 's':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  109  			case 'x':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  110  			case 'z':
f4fd878dfb479e6 Tsukasa OI     2021-12-02  111  				/**
f4fd878dfb479e6 Tsukasa OI     2021-12-02  112  				 * 's' is a special case because:
f4fd878dfb479e6 Tsukasa OI     2021-12-02  113  				 * It can be present in base extension for supervisor
f4fd878dfb479e6 Tsukasa OI     2021-12-02  114  				 * Multi-letter extensions can start with 's' as well for
f4fd878dfb479e6 Tsukasa OI     2021-12-02  115  				 * Supervisor extensions (i.e. sstc, sscofpmf, svinval)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  116  				 */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  117  				if (*ext == 's' && ext[-1] != '_')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  118  					break;
                                                                                        ^^^^^^
ext_err is false.  ext_long is uninitialized.

f4fd878dfb479e6 Tsukasa OI     2021-12-02  119  				ext_long = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  120  				/* Multi-letter extension must be delimited */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  121  				for (; *isa && *isa != '_'; ++isa)
f4fd878dfb479e6 Tsukasa OI     2021-12-02  122  					if (!islower(*isa) && !isdigit(*isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  123  						ext_err = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  124  				/* ... but must be ignored. */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  125  				break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  126  			default:
f4fd878dfb479e6 Tsukasa OI     2021-12-02  127  				ext_long = false;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  128  				if (!islower(*ext)) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  129  					ext_err = true;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  130  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  131  				}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  132  				/* Find next extension */
f4fd878dfb479e6 Tsukasa OI     2021-12-02  133  				if (!isdigit(*isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  134  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  135  				while (isdigit(*++isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  136  					;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  137  				if (*isa != 'p')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  138  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  139  				if (!isdigit(*++isa)) {
f4fd878dfb479e6 Tsukasa OI     2021-12-02  140  					--isa;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  141  					break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  142  				}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  143  				while (isdigit(*++isa))
f4fd878dfb479e6 Tsukasa OI     2021-12-02  144  					;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  145  				break;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  146  			}
f4fd878dfb479e6 Tsukasa OI     2021-12-02  147  			if (*isa != '_')
f4fd878dfb479e6 Tsukasa OI     2021-12-02  148  				--isa;
6bcff51539ccae5 Anup Patel     2020-04-24  149  			/*
f4fd878dfb479e6 Tsukasa OI     2021-12-02  150  			 * TODO: Full version-aware handling including
f4fd878dfb479e6 Tsukasa OI     2021-12-02  151  			 * multi-letter extensions will be added in-future.
6bcff51539ccae5 Anup Patel     2020-04-24  152  			 */
f4fd878dfb479e6 Tsukasa OI     2021-12-02 @153  			if (ext_err || ext_long)
                                                                                       ^^^^^^^^
Uninitialized

f4fd878dfb479e6 Tsukasa OI     2021-12-02  154  				continue;
f4fd878dfb479e6 Tsukasa OI     2021-12-02  155  			this_hwcap |= isa2hwcap[(unsigned char)(*ext)];
f4fd878dfb479e6 Tsukasa OI     2021-12-02  156  			this_isa |= (1UL << (*ext - 'a'));
6bcff51539ccae5 Anup Patel     2020-04-24  157  		}
fbdc6193dc706c8 Atish Patra    2019-02-22  158  
fbdc6193dc706c8 Atish Patra    2019-02-22  159  		/*
fbdc6193dc706c8 Atish Patra    2019-02-22  160  		 * All "okay" hart should have same isa. Set HWCAP based on
fbdc6193dc706c8 Atish Patra    2019-02-22  161  		 * common capabilities of every "okay" hart, in case they don't
fbdc6193dc706c8 Atish Patra    2019-02-22  162  		 * have.
fbdc6193dc706c8 Atish Patra    2019-02-22  163  		 */
fbdc6193dc706c8 Atish Patra    2019-02-22  164  		if (elf_hwcap)
fbdc6193dc706c8 Atish Patra    2019-02-22  165  			elf_hwcap &= this_hwcap;
fbdc6193dc706c8 Atish Patra    2019-02-22  166  		else
fbdc6193dc706c8 Atish Patra    2019-02-22  167  			elf_hwcap = this_hwcap;
6bcff51539ccae5 Anup Patel     2020-04-24  168  
6bcff51539ccae5 Anup Patel     2020-04-24  169  		if (riscv_isa[0])
6bcff51539ccae5 Anup Patel     2020-04-24  170  			riscv_isa[0] &= this_isa;
6bcff51539ccae5 Anup Patel     2020-04-24  171  		else
6bcff51539ccae5 Anup Patel     2020-04-24  172  			riscv_isa[0] = this_isa;
fbdc6193dc706c8 Atish Patra    2019-02-22  173  	}

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-11 14:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-11  8:29 [atishp04:isa_framework 3/8] arch/riscv/kernel/cpufeature.c:153 riscv_fill_hwcap() error: uninitialized symbol 'ext_long' kernel test robot
2022-02-11 14:29 ` Dan Carpenter
2022-02-11 14:29 ` Dan Carpenter

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.