From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/ata/pata_amd.c:280:9: warning: Although the value stored to 'saved_udma' is used in the enclosing expression, the value is never actually read from 'saved_udma' [clang-analyzer-deadcode.DeadStores]
Date: Tue, 25 Jan 2022 08:26:28 +0800 [thread overview]
Message-ID: <202201250743.p1jyEhJ8-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 21434 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Hannes Reinecke <hare@suse.de>
CC: Damien Le Moal <damien.lemoal@opensource.wdc.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dd81e1c7d5fb126e5fbc5c9e334d7b3ec29a16a0
commit: 742bef476ca5352b16063161fb73a56629a6d995 ata: libata: move ata_{port,link,dev}_dbg to standard pr_XXX() macros
date: 3 weeks ago
:::::: branch date: 31 hours ago
:::::: commit date: 3 weeks ago
config: x86_64-randconfig-c007-20220124 (https://download.01.org/0day-ci/archive/20220125/202201250743.p1jyEhJ8-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 7b3d30728816403d1fd73cc5082e9fb761262bce)
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=742bef476ca5352b16063161fb73a56629a6d995
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 742bef476ca5352b16063161fb73a56629a6d995
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
drivers/ata/pata_ali.c:126:10: warning: Although the value stored to 'mask' is used in the enclosing expression, the value is never actually read from 'mask' [clang-analyzer-deadcode.DeadStores]
return mask &= ~ATA_MASK_UDMA;
^ ~~~~~~~~~~~~~~
drivers/ata/pata_ali.c:126:10: note: Although the value stored to 'mask' is used in the enclosing expression, the value is never actually read from 'mask'
return mask &= ~ATA_MASK_UDMA;
^ ~~~~~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
>> drivers/ata/pata_amd.c:280:9: warning: Although the value stored to 'saved_udma' is used in the enclosing expression, the value is never actually read from 'saved_udma' [clang-analyzer-deadcode.DeadStores]
udma = saved_udma = (unsigned long)ap->host->private_data;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/ata/pata_amd.c:280:9: note: Although the value stored to 'saved_udma' is used in the enclosing expression, the value is never actually read from 'saved_udma'
udma = saved_udma = (unsigned long)ap->host->private_data;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (1 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
drivers/input/joystick/a3d.c:94:44: warning: The left operand of '<<' is a garbage value due to array index out of bounds [clang-analyzer-core.UndefinedBinaryOperatorResult]
return (csum & 0x3f) != ((data[count - 2] << 3) | data[count - 1]);
^
drivers/input/joystick/a3d.c:257:6: note: Assuming 'a3d' is non-null
if (!a3d || !input_dev) {
^~~~
drivers/input/joystick/a3d.c:257:6: note: Left side of '||' is false
drivers/input/joystick/a3d.c:257:14: note: Assuming 'input_dev' is non-null
if (!a3d || !input_dev) {
^~~~~~~~~~
drivers/input/joystick/a3d.c:257:2: note: Taking false branch
vim +280 drivers/ata/pata_amd.c
669a5db411d85a Jeff Garzik 2006-08-29 260
ce54d161630211 Tejun Heo 2007-12-18 261 /* Both host-side and drive-side detection results are worthless on NV
ce54d161630211 Tejun Heo 2007-12-18 262 * PATAs. Ignore them and just follow what BIOS configured. Both the
ce54d161630211 Tejun Heo 2007-12-18 263 * current configuration in PCI config reg and ACPI GTM result are
ce54d161630211 Tejun Heo 2007-12-18 264 * cached during driver attach and are consulted to select transfer
ce54d161630211 Tejun Heo 2007-12-18 265 * mode.
ce54d161630211 Tejun Heo 2007-12-18 266 */
ce54d161630211 Tejun Heo 2007-12-18 267 static unsigned long nv_mode_filter(struct ata_device *dev,
ce54d161630211 Tejun Heo 2007-12-18 268 unsigned long xfer_mask)
ce54d161630211 Tejun Heo 2007-12-18 269 {
ce54d161630211 Tejun Heo 2007-12-18 270 static const unsigned int udma_mask_map[] =
ce54d161630211 Tejun Heo 2007-12-18 271 { ATA_UDMA2, ATA_UDMA1, ATA_UDMA0, 0,
ce54d161630211 Tejun Heo 2007-12-18 272 ATA_UDMA3, ATA_UDMA4, ATA_UDMA5, ATA_UDMA6 };
ce54d161630211 Tejun Heo 2007-12-18 273 struct ata_port *ap = dev->link->ap;
ce54d161630211 Tejun Heo 2007-12-18 274 char acpi_str[32] = "";
ce54d161630211 Tejun Heo 2007-12-18 275 u32 saved_udma, udma;
ce54d161630211 Tejun Heo 2007-12-18 276 const struct ata_acpi_gtm *gtm;
ce54d161630211 Tejun Heo 2007-12-18 277 unsigned long bios_limit = 0, acpi_limit = 0, limit;
ce54d161630211 Tejun Heo 2007-12-18 278
ce54d161630211 Tejun Heo 2007-12-18 279 /* find out what BIOS configured */
ce54d161630211 Tejun Heo 2007-12-18 @280 udma = saved_udma = (unsigned long)ap->host->private_data;
ce54d161630211 Tejun Heo 2007-12-18 281
ce54d161630211 Tejun Heo 2007-12-18 282 if (ap->port_no == 0)
ce54d161630211 Tejun Heo 2007-12-18 283 udma >>= 16;
ce54d161630211 Tejun Heo 2007-12-18 284 if (dev->devno == 0)
ce54d161630211 Tejun Heo 2007-12-18 285 udma >>= 8;
ce54d161630211 Tejun Heo 2007-12-18 286
ce54d161630211 Tejun Heo 2007-12-18 287 if ((udma & 0xc0) == 0xc0)
ce54d161630211 Tejun Heo 2007-12-18 288 bios_limit = ata_pack_xfermask(0, 0, udma_mask_map[udma & 0x7]);
ce54d161630211 Tejun Heo 2007-12-18 289
ce54d161630211 Tejun Heo 2007-12-18 290 /* consult ACPI GTM too */
ce54d161630211 Tejun Heo 2007-12-18 291 gtm = ata_acpi_init_gtm(ap);
ce54d161630211 Tejun Heo 2007-12-18 292 if (gtm) {
ce54d161630211 Tejun Heo 2007-12-18 293 acpi_limit = ata_acpi_gtm_xfermask(dev, gtm);
ce54d161630211 Tejun Heo 2007-12-18 294
ce54d161630211 Tejun Heo 2007-12-18 295 snprintf(acpi_str, sizeof(acpi_str), " (%u:%u:0x%x)",
ce54d161630211 Tejun Heo 2007-12-18 296 gtm->drive[0].dma, gtm->drive[1].dma, gtm->flags);
ce54d161630211 Tejun Heo 2007-12-18 297 }
ce54d161630211 Tejun Heo 2007-12-18 298
ce54d161630211 Tejun Heo 2007-12-18 299 /* be optimistic, EH can take care of things if something goes wrong */
ce54d161630211 Tejun Heo 2007-12-18 300 limit = bios_limit | acpi_limit;
ce54d161630211 Tejun Heo 2007-12-18 301
ce54d161630211 Tejun Heo 2007-12-18 302 /* If PIO or DMA isn't configured at all, don't limit. Let EH
ce54d161630211 Tejun Heo 2007-12-18 303 * handle it.
ce54d161630211 Tejun Heo 2007-12-18 304 */
ce54d161630211 Tejun Heo 2007-12-18 305 if (!(limit & ATA_MASK_PIO))
ce54d161630211 Tejun Heo 2007-12-18 306 limit |= ATA_MASK_PIO;
ce54d161630211 Tejun Heo 2007-12-18 307 if (!(limit & (ATA_MASK_MWDMA | ATA_MASK_UDMA)))
ce54d161630211 Tejun Heo 2007-12-18 308 limit |= ATA_MASK_MWDMA | ATA_MASK_UDMA;
90950a2504b66d Robert Hancock 2009-09-12 309 /* PIO4, MWDMA2, UDMA2 should always be supported regardless of
90950a2504b66d Robert Hancock 2009-09-12 310 cable detection result */
90950a2504b66d Robert Hancock 2009-09-12 311 limit |= ata_pack_xfermask(ATA_PIO4, ATA_MWDMA2, ATA_UDMA2);
ce54d161630211 Tejun Heo 2007-12-18 312
a9a79dfec23956 Joe Perches 2011-04-15 313 ata_port_dbg(ap, "nv_mode_filter: 0x%lx&0x%lx->0x%lx, "
ce54d161630211 Tejun Heo 2007-12-18 314 "BIOS=0x%lx (0x%x) ACPI=0x%lx%s\n",
ce54d161630211 Tejun Heo 2007-12-18 315 xfer_mask, limit, xfer_mask & limit, bios_limit,
ce54d161630211 Tejun Heo 2007-12-18 316 saved_udma, acpi_limit, acpi_str);
ce54d161630211 Tejun Heo 2007-12-18 317
ce54d161630211 Tejun Heo 2007-12-18 318 return xfer_mask & limit;
ce54d161630211 Tejun Heo 2007-12-18 319 }
669a5db411d85a Jeff Garzik 2006-08-29 320
:::::: The code at line 280 was first introduced by commit
:::::: ce54d1616302117fa98513ae916bb3333e1c02ea pata_amd: update mode selection for NV PATAs
:::::: TO: Tejun Heo <htejun@gmail.com>
:::::: CC: Jeff Garzik <jeff@garzik.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-01-25 0:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-25 0:26 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-01-27 12:48 drivers/ata/pata_amd.c:280:9: warning: Although the value stored to 'saved_udma' is used in the enclosing expression, the value is never actually read from 'saved_udma' [clang-analyzer-deadcode.DeadStores] kernel test robot
2022-02-27 10:51 kernel test robot
2022-04-12 9:39 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202201250743.p1jyEhJ8-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.