* [l1k:spi_fixes_part2 8/16] drivers/spi/spi-mt7621.c:354:6: warning: variable 'rs' is used uninitialized whenever 'if' condition is true
@ 2020-11-15 20:42 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-11-15 20:42 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 10345 bytes --]
tree: https://github.com/l1k/linux spi_fixes_part2
head: 1124444e1890c011ce93035cc73c8df8a206103d
commit: 99e9a80eb65b1787cd055025129a45e24f2fc6ae [8/16] spi: mt7621: Don't leak SPI master in probe error path
config: riscv-randconfig-r006-20201115 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 9a85643cd357e412cff69067bb5c4840e228c2ab)
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/l1k/linux/commit/99e9a80eb65b1787cd055025129a45e24f2fc6ae
git remote add l1k https://github.com/l1k/linux
git fetch --no-tags l1k spi_fixes_part2
git checkout 99e9a80eb65b1787cd055025129a45e24f2fc6ae
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/spi/spi-mt7621.c:354:6: warning: variable 'rs' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (!master) {
^~~~~~~
drivers/spi/spi-mt7621.c:391:24: note: uninitialized use occurs here
clk_disable_unprepare(rs->clk);
^~
drivers/spi/spi-mt7621.c:354:2: note: remove the 'if' if its condition is always false
if (!master) {
^~~~~~~~~~~~~~
drivers/spi/spi-mt7621.c:328:23: note: initialize the variable 'rs' to silence this warning
struct mt7621_spi *rs;
^
= NULL
1 warning generated.
vim +354 drivers/spi/spi-mt7621.c
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 323
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 324 static int mt7621_spi_probe(struct platform_device *pdev)
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 325 {
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 326 const struct of_device_id *match;
cbd66c626e1674 drivers/spi/spi-mt7621.c Stefan Roese 2019-03-25 327 struct spi_controller *master;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 328 struct mt7621_spi *rs;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 329 void __iomem *base;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 330 int status = 0;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 331 struct clk *clk;
46c337872f34bc drivers/staging/mt7621-spi/spi-mt7621.c Stefan Roese 2019-02-01 332 int ret;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 333
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 334 match = of_match_device(mt7621_spi_match, &pdev->dev);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 335 if (!match)
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 336 return -EINVAL;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 337
f88771ca7104e4 drivers/spi/spi-mt7621.c YueHaibing 2019-09-04 338 base = devm_platform_ioremap_resource(pdev, 0);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 339 if (IS_ERR(base))
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 340 return PTR_ERR(base);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 341
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 342 clk = devm_clk_get(&pdev->dev, NULL);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 343 if (IS_ERR(clk)) {
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 344 dev_err(&pdev->dev, "unable to get SYS clock, err=%d\n",
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 345 status);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 346 return PTR_ERR(clk);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 347 }
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 348
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 349 status = clk_prepare_enable(clk);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 350 if (status)
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 351 return status;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 352
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 353 master = devm_spi_alloc_master(&pdev->dev, sizeof(*rs));
5ccbce3a0b0e10 drivers/staging/mt7621-spi/spi-mt7621.c Jasminko Dedic 2019-02-04 @354 if (!master) {
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 355 dev_info(&pdev->dev, "master allocation failed\n");
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 356 ret = -ENOMEM;
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 357 goto err_clk_disable;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 358 }
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 359
354ea2ee6d2bc0 drivers/staging/mt7621-spi/spi-mt7621.c Chuanhong Guo 2018-12-06 360 master->mode_bits = SPI_LSB_FIRST;
cbd66c626e1674 drivers/spi/spi-mt7621.c Stefan Roese 2019-03-25 361 master->flags = SPI_CONTROLLER_HALF_DUPLEX;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 362 master->setup = mt7621_spi_setup;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 363 master->transfer_one_message = mt7621_spi_transfer_one_message;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 364 master->bits_per_word_mask = SPI_BPW_MASK(8);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 365 master->dev.of_node = pdev->dev.of_node;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 366 master->num_chipselect = 2;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 367
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 368 dev_set_drvdata(&pdev->dev, master);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 369
cbd66c626e1674 drivers/spi/spi-mt7621.c Stefan Roese 2019-03-25 370 rs = spi_controller_get_devdata(master);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 371 rs->base = base;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 372 rs->clk = clk;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 373 rs->master = master;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 374 rs->sys_freq = clk_get_rate(rs->clk);
bf732c6bff5b57 drivers/staging/mt7621-spi/spi-mt7621.c NeilBrown 2018-06-07 375 rs->pending_write = 0;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 376 dev_info(&pdev->dev, "sys_freq: %u\n", rs->sys_freq);
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 377
46c337872f34bc drivers/staging/mt7621-spi/spi-mt7621.c Stefan Roese 2019-02-01 378 ret = device_reset(&pdev->dev);
46c337872f34bc drivers/staging/mt7621-spi/spi-mt7621.c Stefan Roese 2019-02-01 379 if (ret) {
46c337872f34bc drivers/staging/mt7621-spi/spi-mt7621.c Stefan Roese 2019-02-01 380 dev_err(&pdev->dev, "SPI reset failed!\n");
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 381 goto err_clk_disable;
46c337872f34bc drivers/staging/mt7621-spi/spi-mt7621.c Stefan Roese 2019-02-01 382 }
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 383
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 384 ret = spi_register_controller(master);
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 385 if (ret)
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 386 goto err_clk_disable;
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 387
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 388 return 0;
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 389
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 390 err_clk_disable:
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 391 clk_disable_unprepare(rs->clk);
99e9a80eb65b17 drivers/spi/spi-mt7621.c Lukas Wunner 2020-11-05 392 return ret;
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 393 }
1ab7f2a43558b3 drivers/staging/mt7621-spi/spi-mt7621.c John Crispin 2018-03-15 394
:::::: The code at line 354 was first introduced by commit
:::::: 5ccbce3a0b0e10694f1a62e8b1ce9b46d1809eea staging: mt7621-spi: Clean up comparison to NULL
:::::: TO: Jasminko Dedic <betelge@gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34016 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-11-15 20:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-15 20:42 [l1k:spi_fixes_part2 8/16] drivers/spi/spi-mt7621.c:354:6: warning: variable 'rs' is used uninitialized whenever 'if' condition is true kernel test robot
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.