From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [mchehab-media-next:master 63/171] drivers/media/platform/atmel/atmel-isc-clk.c:125:18: warning: Value stored to 'isc_clk' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
Date: Sat, 29 Jan 2022 12:12:56 +0800 [thread overview]
Message-ID: <202201291253.In8GLX03-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 17662 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Eugen Hristev <eugen.hristev@microchip.com>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Jacopo Mondi <jacopo+renesas@jmondi.org>
CC: Hans Verkuil <hverkuil@xs4all.nl>
tree: git://linuxtv.org/mchehab/media-next.git master
head: 68a99f6a0ebfe9101ea79ba5af1c407a5ad4f629
commit: 118bf76a35bc2ed061cd1454fe5e57d1c7bcd8d0 [63/171] media: atmel: atmel-isc: split the clock code into separate source file
:::::: branch date: 10 hours ago
:::::: commit date: 5 days ago
config: riscv-randconfig-c006-20220125 (https://download.01.org/0day-ci/archive/20220129/202201291253.In8GLX03-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 33b45ee44b1f32ffdbc995e6fec806271b4b3ba4)
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
git remote add mchehab-media-next git://linuxtv.org/mchehab/media-next.git
git fetch --no-tags mchehab-media-next master
git checkout 118bf76a35bc2ed061cd1454fe5e57d1c7bcd8d0
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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 >>)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_syncobj.c:564:6: note: 'ret' is 0
if (ret)
^~~
drivers/gpu/drm/drm_syncobj.c:564:2: note: Taking false branch
if (ret)
^
drivers/gpu/drm/drm_syncobj.c:567:8: note: Calling 'drm_syncobj_get_handle'
ret = drm_syncobj_get_handle(file_private, syncobj, handle);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_syncobj.c:547:6: note: Assuming 'ret' is < 0
if (ret < 0) {
^~~~~~~
drivers/gpu/drm/drm_syncobj.c:547:2: note: Taking true branch
if (ret < 0) {
^
drivers/gpu/drm/drm_syncobj.c:548:3: note: Calling 'drm_syncobj_put'
drm_syncobj_put(syncobj);
^~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_syncobj.h:88:2: note: Calling 'kref_put'
kref_put(&obj->refcount, drm_syncobj_free);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kref.h:64:2: note: Taking true branch
if (refcount_dec_and_test(&kref->refcount)) {
^
include/linux/kref.h:65:3: note: Calling 'drm_syncobj_free'
release(kref);
^~~~~~~~~~~~~
drivers/gpu/drm/drm_syncobj.c:475:2: note: Memory is released
kfree(syncobj);
^~~~~~~~~~~~~~
include/linux/kref.h:65:3: note: Returning; memory was released
release(kref);
^~~~~~~~~~~~~
include/drm/drm_syncobj.h:88:2: note: Returning; memory was released
kref_put(&obj->refcount, drm_syncobj_free);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_syncobj.c:548:3: note: Returning; memory was released via 1st parameter
drm_syncobj_put(syncobj);
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_syncobj.c:567:8: note: Returning; memory was released via 2nd parameter
ret = drm_syncobj_get_handle(file_private, syncobj, handle);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_syncobj.c:568:2: note: Use of memory after it is freed
drm_syncobj_put(syncobj);
^ ~~~~~~~
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.
3 warnings generated.
Suppressed 3 warnings (2 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.
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.
3 warnings generated.
drivers/gpu/drm/tiny/cirrus.c:564:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
drivers/gpu/drm/tiny/cirrus.c:564:2: note: Value stored to 'ret' is never read
ret = -ENOMEM;
^ ~~~~~~~
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.
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.
3 warnings generated.
>> drivers/media/platform/atmel/atmel-isc-clk.c:125:18: warning: Value stored to 'isc_clk' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct isc_clk *isc_clk = to_isc_clk(hw);
^~~~~~~
drivers/media/platform/atmel/atmel-isc-clk.c:125:18: note: Value stored to 'isc_clk' during its initialization is never read
struct isc_clk *isc_clk = to_isc_clk(hw);
^~~~~~~
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.
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.
3 warnings generated.
drivers/watchdog/mlx_wdt.c:124:14: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
set_time = BIT(hw_timeout) / MLXREG_WDT_CLOCK_SCALE;
^
include/vdso/bits.h:7:26: note: expanded from macro 'BIT'
#define BIT(nr) (UL(1) << (nr))
^
drivers/watchdog/mlx_wdt.c:287:6: note: Assuming 'pdata' is non-null
if (!pdata) {
^~~~~~
drivers/watchdog/mlx_wdt.c:287:2: note: Taking false branch
if (!pdata) {
^
drivers/watchdog/mlx_wdt.c:292:6: note: Assuming 'wdt' is non-null
if (!wdt)
^~~~
drivers/watchdog/mlx_wdt.c:292:2: note: Taking false branch
if (!wdt)
^
drivers/watchdog/mlx_wdt.c:298:6: note: Assuming 'rc' is >= 0
if (rc < 0)
^~~~~~
drivers/watchdog/mlx_wdt.c:298:2: note: Taking false branch
if (rc < 0)
^
drivers/watchdog/mlx_wdt.c:304:7: note: Assuming the condition is false
if ((pdata->features & MLXREG_CORE_WD_FEATURE_NOWAYOUT))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/watchdog/mlx_wdt.c:304:2: note: Taking false branch
if ((pdata->features & MLXREG_CORE_WD_FEATURE_NOWAYOUT))
^
drivers/watchdog/mlx_wdt.c:308:2: note: Calling 'watchdog_set_drvdata'
watchdog_set_drvdata(&wdt->wdd, wdt);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/watchdog.h:197:1: note: Returning without writing to 'data->wdt_type', which participates in a condition later
}
^
drivers/watchdog/mlx_wdt.c:308:2: note: Returning from 'watchdog_set_drvdata'
watchdog_set_drvdata(&wdt->wdd, wdt);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/watchdog/mlx_wdt.c:309:7: note: Calling 'mlxreg_wdt_init_timeout'
rc = mlxreg_wdt_init_timeout(wdt, pdata);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/watchdog/mlx_wdt.c:276:9: note: Calling 'mlxreg_wdt_set_timeout'
return mlxreg_wdt_set_timeout(&wdt->wdd, timeout);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/watchdog/mlx_wdt.c:115:2: note: Control jumps to 'case MLX_WDT_TYPE1:' at line 116
switch (wdt->wdt_type) {
^
drivers/watchdog/mlx_wdt.c:118:7: note: Assuming 'rc' is 0
if (rc)
^~
drivers/watchdog/mlx_wdt.c:118:3: note: Taking false branch
if (rc)
^
drivers/watchdog/mlx_wdt.c:121:16: note: '?' condition is false
hw_timeout = order_base_2(timeout * MLXREG_WDT_CLOCK_SCALE);
^
include/linux/log2.h:219:2: note: expanded from macro 'order_base_2'
__builtin_constant_p(n) ? ( \
^
drivers/watchdog/mlx_wdt.c:121:16: note: Calling '__order_base_2'
hw_timeout = order_base_2(timeout * MLXREG_WDT_CLOCK_SCALE);
^
include/linux/log2.h:222:2: note: expanded from macro 'order_base_2'
__order_base_2(n) \
^~~~~~~~~~~~~~~~~
include/linux/log2.h:201:9: note: Assuming 'n' is > 1
return n > 1 ? ilog2(n - 1) + 1 : 0;
^~~~~
include/linux/log2.h:201:9: note: '?' condition is true
include/linux/log2.h:201:17: note: '?' condition is false
vim +/isc_clk +125 drivers/media/platform/atmel/atmel-isc-clk.c
118bf76a35bc2e Eugen Hristev 2021-12-13 121
118bf76a35bc2e Eugen Hristev 2021-12-13 122 static int isc_clk_determine_rate(struct clk_hw *hw,
118bf76a35bc2e Eugen Hristev 2021-12-13 123 struct clk_rate_request *req)
118bf76a35bc2e Eugen Hristev 2021-12-13 124 {
118bf76a35bc2e Eugen Hristev 2021-12-13 @125 struct isc_clk *isc_clk = to_isc_clk(hw);
118bf76a35bc2e Eugen Hristev 2021-12-13 126 long best_rate = -EINVAL;
118bf76a35bc2e Eugen Hristev 2021-12-13 127 int best_diff = -1;
118bf76a35bc2e Eugen Hristev 2021-12-13 128 unsigned int i, div;
118bf76a35bc2e Eugen Hristev 2021-12-13 129
118bf76a35bc2e Eugen Hristev 2021-12-13 130 for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
118bf76a35bc2e Eugen Hristev 2021-12-13 131 struct clk_hw *parent;
118bf76a35bc2e Eugen Hristev 2021-12-13 132 unsigned long parent_rate;
118bf76a35bc2e Eugen Hristev 2021-12-13 133
118bf76a35bc2e Eugen Hristev 2021-12-13 134 parent = clk_hw_get_parent_by_index(hw, i);
118bf76a35bc2e Eugen Hristev 2021-12-13 135 if (!parent)
118bf76a35bc2e Eugen Hristev 2021-12-13 136 continue;
118bf76a35bc2e Eugen Hristev 2021-12-13 137
118bf76a35bc2e Eugen Hristev 2021-12-13 138 parent_rate = clk_hw_get_rate(parent);
118bf76a35bc2e Eugen Hristev 2021-12-13 139 if (!parent_rate)
118bf76a35bc2e Eugen Hristev 2021-12-13 140 continue;
118bf76a35bc2e Eugen Hristev 2021-12-13 141
118bf76a35bc2e Eugen Hristev 2021-12-13 142 for (div = 1; div < ISC_CLK_MAX_DIV + 2; div++) {
118bf76a35bc2e Eugen Hristev 2021-12-13 143 unsigned long rate;
118bf76a35bc2e Eugen Hristev 2021-12-13 144 int diff;
118bf76a35bc2e Eugen Hristev 2021-12-13 145
118bf76a35bc2e Eugen Hristev 2021-12-13 146 rate = DIV_ROUND_CLOSEST(parent_rate, div);
118bf76a35bc2e Eugen Hristev 2021-12-13 147 diff = abs(req->rate - rate);
118bf76a35bc2e Eugen Hristev 2021-12-13 148
118bf76a35bc2e Eugen Hristev 2021-12-13 149 if (best_diff < 0 || best_diff > diff) {
118bf76a35bc2e Eugen Hristev 2021-12-13 150 best_rate = rate;
118bf76a35bc2e Eugen Hristev 2021-12-13 151 best_diff = diff;
118bf76a35bc2e Eugen Hristev 2021-12-13 152 req->best_parent_rate = parent_rate;
118bf76a35bc2e Eugen Hristev 2021-12-13 153 req->best_parent_hw = parent;
118bf76a35bc2e Eugen Hristev 2021-12-13 154 }
118bf76a35bc2e Eugen Hristev 2021-12-13 155
118bf76a35bc2e Eugen Hristev 2021-12-13 156 if (!best_diff || rate < req->rate)
118bf76a35bc2e Eugen Hristev 2021-12-13 157 break;
118bf76a35bc2e Eugen Hristev 2021-12-13 158 }
118bf76a35bc2e Eugen Hristev 2021-12-13 159
118bf76a35bc2e Eugen Hristev 2021-12-13 160 if (!best_diff)
118bf76a35bc2e Eugen Hristev 2021-12-13 161 break;
118bf76a35bc2e Eugen Hristev 2021-12-13 162 }
118bf76a35bc2e Eugen Hristev 2021-12-13 163
118bf76a35bc2e Eugen Hristev 2021-12-13 164 dev_dbg(isc_clk->dev,
118bf76a35bc2e Eugen Hristev 2021-12-13 165 "ISC CLK: %s, best_rate = %ld, parent clk: %s @ %ld\n",
118bf76a35bc2e Eugen Hristev 2021-12-13 166 __func__, best_rate,
118bf76a35bc2e Eugen Hristev 2021-12-13 167 __clk_get_name((req->best_parent_hw)->clk),
118bf76a35bc2e Eugen Hristev 2021-12-13 168 req->best_parent_rate);
118bf76a35bc2e Eugen Hristev 2021-12-13 169
118bf76a35bc2e Eugen Hristev 2021-12-13 170 if (best_rate < 0)
118bf76a35bc2e Eugen Hristev 2021-12-13 171 return best_rate;
118bf76a35bc2e Eugen Hristev 2021-12-13 172
118bf76a35bc2e Eugen Hristev 2021-12-13 173 req->rate = best_rate;
118bf76a35bc2e Eugen Hristev 2021-12-13 174
118bf76a35bc2e Eugen Hristev 2021-12-13 175 return 0;
118bf76a35bc2e Eugen Hristev 2021-12-13 176 }
118bf76a35bc2e Eugen Hristev 2021-12-13 177
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
reply other threads:[~2022-01-29 4:12 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202201291253.In8GLX03-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.