lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 12 Apr 2022 13:01:31 +0800 From: kernel test robot <lkp@...el.com> To: Miaoqian Lin <linmq006@...il.com>, Miquel Raynal <miquel.raynal@...tlin.com>, Richard Weinberger <richard@....at>, Vignesh Raghavendra <vigneshr@...com>, Pratyush Yadav <p.yadav@...com>, Alexandre Belloni <alexandre.belloni@...tlin.com>, Paul Cercueil <paul@...pouillou.net>, Guennadi Liakhovetski <g.liakhovetski@....de>, Artem Bityutskiy <artem.bityutskiy@...ux.intel.com>, Bastian Hecht <hechtb@...glemail.com>, linux-mtd@...ts.infradead.org, linux-kernel@...r.kernel.org Cc: llvm@...ts.linux.dev, kbuild-all@...ts.01.org Subject: Re: [PATCH] mtd: rawnand: Fix return value check of wait_for_completion_timeout Hi Miaoqian, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on mtd/nand/next] [also build test WARNING on linus/master linux/master v5.18-rc2 next-20220411] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/intel-lab-lkp/linux/commits/Miaoqian-Lin/mtd-rawnand-Fix-return-value-check-of-wait_for_completion_timeout/20220412-101006 base: https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next config: hexagon-randconfig-r045-20220411 (https://download.01.org/0day-ci/archive/20220412/202204121253.NcZifMQi-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project fe2478d44e4f7f191c43fef629ac7a23d0251e72) 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 # https://github.com/intel-lab-lkp/linux/commit/3de25b46a3f73a3e0031e5186eb4e2afa9098b46 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Miaoqian-Lin/mtd-rawnand-Fix-return-value-check-of-wait_for_completion_timeout/20220412-101006 git checkout 3de25b46a3f73a3e0031e5186eb4e2afa9098b46 # 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=hexagon SHELL=/bin/bash drivers/mtd/nand/raw/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@...el.com> All warnings (new ones prefixed by >>): >> drivers/mtd/nand/raw/sh_flctl.c:433:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (time_left == 0) { ^~~~~~~~~~~~~~ drivers/mtd/nand/raw/sh_flctl.c:447:9: note: uninitialized use occurs here return ret; ^~~ drivers/mtd/nand/raw/sh_flctl.c:433:2: note: remove the 'if' if its condition is always true if (time_left == 0) { ^~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/sh_flctl.c:387:9: note: initialize the variable 'ret' to silence this warning int ret; ^ = 0 1 warning generated. vim +433 drivers/mtd/nand/raw/sh_flctl.c 377 378 static int flctl_dma_fifo0_transfer(struct sh_flctl *flctl, unsigned long *buf, 379 int len, enum dma_data_direction dir) 380 { 381 struct dma_async_tx_descriptor *desc = NULL; 382 struct dma_chan *chan; 383 enum dma_transfer_direction tr_dir; 384 dma_addr_t dma_addr; 385 dma_cookie_t cookie; 386 uint32_t reg; 387 int ret; 388 unsigned long time_left; 389 390 if (dir == DMA_FROM_DEVICE) { 391 chan = flctl->chan_fifo0_rx; 392 tr_dir = DMA_DEV_TO_MEM; 393 } else { 394 chan = flctl->chan_fifo0_tx; 395 tr_dir = DMA_MEM_TO_DEV; 396 } 397 398 dma_addr = dma_map_single(chan->device->dev, buf, len, dir); 399 400 if (!dma_mapping_error(chan->device->dev, dma_addr)) 401 desc = dmaengine_prep_slave_single(chan, dma_addr, len, 402 tr_dir, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); 403 404 if (desc) { 405 reg = readl(FLINTDMACR(flctl)); 406 reg |= DREQ0EN; 407 writel(reg, FLINTDMACR(flctl)); 408 409 desc->callback = flctl_dma_complete; 410 desc->callback_param = flctl; 411 cookie = dmaengine_submit(desc); 412 if (dma_submit_error(cookie)) { 413 ret = dma_submit_error(cookie); 414 dev_warn(&flctl->pdev->dev, 415 "DMA submit failed, falling back to PIO\n"); 416 goto out; 417 } 418 419 dma_async_issue_pending(chan); 420 } else { 421 /* DMA failed, fall back to PIO */ 422 flctl_release_dma(flctl); 423 dev_warn(&flctl->pdev->dev, 424 "DMA failed, falling back to PIO\n"); 425 ret = -EIO; 426 goto out; 427 } 428 429 time_left = 430 wait_for_completion_timeout(&flctl->dma_complete, 431 msecs_to_jiffies(3000)); 432 > 433 if (time_left == 0) { 434 dmaengine_terminate_all(chan); 435 dev_err(&flctl->pdev->dev, "wait_for_completion_timeout\n"); 436 ret = -ETIMEDOUT; 437 } 438 439 out: 440 reg = readl(FLINTDMACR(flctl)); 441 reg &= ~DREQ0EN; 442 writel(reg, FLINTDMACR(flctl)); 443 444 dma_unmap_single(chan->device->dev, dma_addr, len, dir); 445 446 /* ret > 0 is success */ 447 return ret; 448 } 449 -- 0-DAY CI Kernel Test Service https://01.org/lkp
Powered by blists - more mailing lists