:::::: :::::: Manual check reason: "low confidence static check warning: drivers/soundwire/intel_auxdevice.c:526:2: warning: Value stored to 'link_flags' is never read [clang-analyzer-deadcode.DeadStores]" :::::: BCC: lkp@intel.com CC: llvm@lists.linux.dev CC: oe-kbuild-all@lists.linux.dev CC: linux-kernel@vger.kernel.org TO: "Pierre-Louis Bossart" CC: Vinod Koul CC: Rander Wang CC: Bard Liao tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: d9fc1511728c15df49ff18e49a494d00f78b7cd4 commit: 7cbf00bd4142cd88ac7ecbc4ea7b917a220cb721 soundwire: intel: split auxdevice to different file date: 7 weeks ago :::::: branch date: 9 hours ago :::::: commit date: 7 weeks ago config: x86_64-randconfig-c007 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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=7cbf00bd4142cd88ac7ecbc4ea7b917a220cb721 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 7cbf00bd4142cd88ac7ecbc4ea7b917a220cb721 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot clang_analyzer warnings: (new ones prefixed by >>) 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. 7 warnings generated. sound/soc/codecs/cs42l42.c:616:8: warning: Excessive padding in 'struct cs42l42_pll_params' (5 padding bytes, where 1 is optimal). Optimal fields order: sclk, pll_div_frac, mclk_int, mclk_src_sel, sclk_prediv, pll_div_int, pll_mode, pll_divout, pll_cal_ratio, n, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct cs42l42_pll_params { ~~~~~~~^~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/cs42l42.c:616:8: note: Excessive padding in 'struct cs42l42_pll_params' (5 padding bytes, where 1 is optimal). Optimal fields order: sclk, pll_div_frac, mclk_int, mclk_src_sel, sclk_prediv, pll_div_int, pll_mode, pll_divout, pll_cal_ratio, n, consider reordering the fields or adding explicit padding members struct cs42l42_pll_params { ~~~~~~~^~~~~~~~~~~~~~~~~~~~ Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. drivers/hwmon/npcm750-pwm-fan.c:876:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = npcm7xx_pwm_config_set(data, pwm_port, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/npcm750-pwm-fan.c:876:2: note: Value stored to 'ret' is never read ret = npcm7xx_pwm_config_set(data, pwm_port, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 10 warnings generated. Suppressed 10 warnings (10 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 10 warnings generated. Suppressed 10 warnings (10 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. 4 warnings generated. Suppressed 4 warnings (4 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. 4 warnings generated. Suppressed 4 warnings (4 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. 12 warnings generated. Suppressed 12 warnings (12 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. 15 warnings generated. Suppressed 15 warnings (11 in non-user code, 4 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 4 warnings generated. Suppressed 4 warnings (4 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. >> drivers/soundwire/intel_auxdevice.c:526:2: warning: Value stored to 'link_flags' is never read [clang-analyzer-deadcode.DeadStores] link_flags = md_flags >> (bus->link_id * 8); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/soundwire/intel_auxdevice.c:526:2: note: Value stored to 'link_flags' is never read link_flags = md_flags >> (bus->link_id * 8); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 4 warnings (4 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. Suppressed 6 warnings (6 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. 7 warnings generated. Suppressed 7 warnings (7 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. 7 warnings generated. sound/soc/codecs/da7213.c:1427:3: warning: Value stored to 'indiv' is never read [clang-analyzer-deadcode.DeadStores] indiv = DA7213_PLL_INDIV_9_TO_18_MHZ_VAL; ^ sound/soc/codecs/da7213.c:1427:3: note: Value stored to 'indiv' is never read Suppressed 6 warnings (6 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 10 warnings generated. Suppressed 10 warnings (10 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. 11 warnings generated. Suppressed 11 warnings (11 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. 10 warnings generated. Suppressed 10 warnings (10 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. 10 warnings generated. Suppressed 10 warnings (10 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. 10 warnings generated. Suppressed 10 warnings (10 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 4 warnings generated. Suppressed 4 warnings (4 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. 4 warnings generated. Suppressed 4 warnings (4 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. Suppressed 6 warnings (6 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. Suppressed 6 warnings (6 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. 4 warnings generated. Suppressed 4 warnings (4 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 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. 11 warnings generated. Suppressed 11 warnings (11 in non-user code). vim +/link_flags +526 drivers/soundwire/intel_auxdevice.c 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 511 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 512 static int __maybe_unused intel_resume(struct device *dev) 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 513 { 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 514 struct sdw_cdns *cdns = dev_get_drvdata(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 515 struct sdw_intel *sdw = cdns_to_intel(cdns); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 516 struct sdw_bus *bus = &cdns->bus; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 517 int link_flags; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 518 int ret; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 519 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 520 if (bus->prop.hw_disabled || !sdw->startup_done) { 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 521 dev_dbg(dev, "SoundWire master %d is disabled or not-started, ignoring\n", 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 522 bus->link_id); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 523 return 0; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 524 } 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 525 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 @526 link_flags = md_flags >> (bus->link_id * 8); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 527 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 528 if (pm_runtime_suspended(dev)) { 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 529 dev_dbg(dev, "pm_runtime status was suspended, forcing active\n"); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 530 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 531 /* follow required sequence from runtime_pm.rst */ 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 532 pm_runtime_disable(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 533 pm_runtime_set_active(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 534 pm_runtime_mark_last_busy(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 535 pm_runtime_enable(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 536 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 537 link_flags = md_flags >> (bus->link_id * 8); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 538 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 539 if (!(link_flags & SDW_INTEL_MASTER_DISABLE_PM_RUNTIME_IDLE)) 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 540 pm_runtime_idle(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 541 } 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 542 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 543 ret = sdw_intel_link_power_up(sdw); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 544 if (ret) { 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 545 dev_err(dev, "%s failed: %d\n", __func__, ret); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 546 return ret; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 547 } 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 548 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 549 /* 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 550 * make sure all Slaves are tagged as UNATTACHED and provide 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 551 * reason for reinitialization 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 552 */ 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 553 sdw_clear_slave_status(bus, SDW_UNATTACH_REQUEST_MASTER_RESET); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 554 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 555 ret = sdw_intel_start_bus(sdw); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 556 if (ret < 0) { 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 557 dev_err(dev, "cannot start bus during resume\n"); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 558 sdw_intel_link_power_down(sdw); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 559 return ret; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 560 } 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 561 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 562 /* 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 563 * after system resume, the pm_runtime suspend() may kick in 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 564 * during the enumeration, before any children device force the 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 565 * master device to remain active. Using pm_runtime_get() 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 566 * routines is not really possible, since it'd prevent the 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 567 * master from suspending. 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 568 * A reasonable compromise is to update the pm_runtime 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 569 * counters and delay the pm_runtime suspend by several 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 570 * seconds, by when all enumeration should be complete. 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 571 */ 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 572 pm_runtime_mark_last_busy(dev); 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 573 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 574 return 0; 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 575 } 7cbf00bd4142cd Pierre-Louis Bossart 2022-11-11 576 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests