From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/clk/mmp/clk-mix.c:193:3: warning: Value stored to 'fc_req' is never read [clang-analyzer-deadcode.DeadStores]
Date: Mon, 17 Jan 2022 03:12:06 +0800 [thread overview]
Message-ID: <202201170345.hJQcladh-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 650684 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Arnd Bergmann <arnd@arndb.de>
CC: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
CC: Nick Desaulniers <ndesaulniers@google.com>
CC: Ard Biesheuvel <ardb@kernel.org>
Hi Arnd,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4d66020dcef83314092f2c8c89152a8d122627e2
commit: 8b5bd5adf9e6d073e538e2e9de810f2f25379c3b ARM: 9137/1: disallow CONFIG_THUMB with ARMv4
date: 3 months ago
:::::: branch date: 11 hours ago
:::::: commit date: 3 months ago
config: arm-randconfig-c002-20220116 (https://download.01.org/0day-ci/archive/20220117/202201170345.hJQcladh-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 650fc40b6d8d9a5869b4fca525d5f237b0ee2803)
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 arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8b5bd5adf9e6d073e538e2e9de810f2f25379c3b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8b5bd5adf9e6d073e538e2e9de810f2f25379c3b
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 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 >>)
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
do { \
^
mm/damon/core.c:202:4: note: Left side of '&&' is false
damon_for_each_target_safe(t, next, ctx)
^
include/linux/damon.h:224:2: note: expanded from macro 'damon_for_each_target_safe'
list_for_each_entry_safe(t, next, &(ctx)->adaptive_targets, list)
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
mm/damon/core.c:202:4: note: Taking false branch
damon_for_each_target_safe(t, next, ctx)
^
include/linux/damon.h:224:2: note: expanded from macro 'damon_for_each_target_safe'
list_for_each_entry_safe(t, next, &(ctx)->adaptive_targets, list)
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
mm/damon/core.c:202:4: note: Loop condition is false. Exiting loop
damon_for_each_target_safe(t, next, ctx)
^
include/linux/damon.h:224:2: note: expanded from macro 'damon_for_each_target_safe'
list_for_each_entry_safe(t, next, &(ctx)->adaptive_targets, list)
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
mm/damon/core.c:202:4: note: Use of memory after it is freed
damon_for_each_target_safe(t, next, ctx)
^
include/linux/damon.h:224:2: note: expanded from macro 'damon_for_each_target_safe'
list_for_each_entry_safe(t, next, &(ctx)->adaptive_targets, list)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:716:7: note: expanded from macro 'list_for_each_entry_safe'
n = list_next_entry(pos, member); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:494:25: note: expanded from macro 'container_of'
void *__mptr = (void *)(ptr); \
^~~~~
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.
4 warnings generated.
>> drivers/clk/mmp/clk-mix.c:193:3: warning: Value stored to 'fc_req' is never read [clang-analyzer-deadcode.DeadStores]
fc_req &= ~(1 << ri->bit_fc);
^ ~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:193:3: note: Value stored to 'fc_req' is never read
fc_req &= ~(1 << ri->bit_fc);
^ ~~~~~~~~~~~~~~~~~~
>> drivers/clk/mmp/clk-mix.c:345:21: warning: Division by zero [clang-analyzer-core.DivideZero]
return parent_rate / div;
~~~~~~~~~~~~^~~~~
drivers/clk/mmp/clk-mix.c:321:28: note: Left side of '&&' is false
struct mmp_clk_mix *mix = to_clk_mix(hw);
^
drivers/clk/mmp/clk-mix.c:25:24: note: expanded from macro 'to_clk_mix'
#define to_clk_mix(hw) container_of(hw, struct mmp_clk_mix, hw)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/clk/mmp/clk-mix.c:321:28: note: Taking false branch
struct mmp_clk_mix *mix = to_clk_mix(hw);
^
drivers/clk/mmp/clk-mix.c:25:24: note: expanded from macro 'to_clk_mix'
#define to_clk_mix(hw) container_of(hw, struct mmp_clk_mix, hw)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/clk/mmp/clk-mix.c:321:28: note: Loop condition is false. Exiting loop
struct mmp_clk_mix *mix = to_clk_mix(hw);
^
drivers/clk/mmp/clk-mix.c:25:24: note: expanded from macro 'to_clk_mix'
#define to_clk_mix(hw) container_of(hw, struct mmp_clk_mix, hw)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/clk/mmp/clk-mix.c:328:6: note: Assuming field 'lock' is null
if (mix->lock)
^~~~~~~~~
drivers/clk/mmp/clk-mix.c:328:2: note: Taking false branch
if (mix->lock)
^
drivers/clk/mmp/clk-mix.c:331:6: note: Assuming field 'type' is not equal to MMP_CLK_MIX_TYPE_V1
if (mix->type == MMP_CLK_MIX_TYPE_V1
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:331:6: note: Left side of '||' is false
drivers/clk/mmp/clk-mix.c:332:6: note: Assuming field 'type' is not equal to MMP_CLK_MIX_TYPE_V2
|| mix->type == MMP_CLK_MIX_TYPE_V2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:331:2: note: Taking false branch
if (mix->type == MMP_CLK_MIX_TYPE_V1
^
drivers/clk/mmp/clk-mix.c:337:11: note: Field 'lock' is null
if (mix->lock)
^
drivers/clk/mmp/clk-mix.c:337:2: note: Taking false branch
if (mix->lock)
^
drivers/clk/mmp/clk-mix.c:343:8: note: Calling '_get_div'
div = _get_div(mix, MMP_CLK_BITS_GET_VAL(mux_div, width, shift));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:50:6: note: Assuming the condition is false
if (mix->div_flags & CLK_DIVIDER_ONE_BASED)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:50:2: note: Taking false branch
if (mix->div_flags & CLK_DIVIDER_ONE_BASED)
^
drivers/clk/mmp/clk-mix.c:52:6: note: Assuming the condition is false
if (mix->div_flags & CLK_DIVIDER_POWER_OF_TWO)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:52:2: note: Taking false branch
if (mix->div_flags & CLK_DIVIDER_POWER_OF_TWO)
^
drivers/clk/mmp/clk-mix.c:54:6: note: Assuming field 'div_table' is non-null
if (mix->div_table) {
^~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:54:2: note: Taking true branch
if (mix->div_table) {
^
drivers/clk/mmp/clk-mix.c:55:3: note: Loop condition is false. Execution continues on line 58
for (clkt = mix->div_table; clkt->div; clkt++)
^
drivers/clk/mmp/clk-mix.c:58:13: note: Field 'div' is equal to 0
--
^
drivers/pci/controller/dwc/pci-imx6.c:843:24: note: Left side of '&&' is false
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
^
drivers/pci/controller/dwc/pcie-designware.h:280:34: note: expanded from macro 'to_dw_pcie_from_pp'
#define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/pci/controller/dwc/pci-imx6.c:843:24: note: Taking false branch
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
^
drivers/pci/controller/dwc/pcie-designware.h:280:34: note: expanded from macro 'to_dw_pcie_from_pp'
#define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/pci/controller/dwc/pci-imx6.c:843:24: note: Loop condition is false. Exiting loop
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
^
drivers/pci/controller/dwc/pcie-designware.h:280:34: note: expanded from macro 'to_dw_pcie_from_pp'
#define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/pci/controller/dwc/pci-imx6.c:849:2: note: Calling 'imx6_setup_phy_mpll'
imx6_setup_phy_mpll(imx6_pcie);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pci-imx6.c:680:2: note: 'val' declared without an initial value
u16 val;
^~~~~~~
drivers/pci/controller/dwc/pci-imx6.c:682:6: note: Assuming the condition is false
if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_IMX6_PHY))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pci-imx6.c:682:2: note: Taking false branch
if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_IMX6_PHY))
^
drivers/pci/controller/dwc/pci-imx6.c:685:2: note: Control jumps to 'case 200000000:' at line 696
switch (phy_rate) {
^
drivers/pci/controller/dwc/pci-imx6.c:699:3: note: Execution continues on line 706
break;
^
drivers/pci/controller/dwc/pci-imx6.c:706:2: note: Calling 'pcie_phy_read'
pcie_phy_read(imx6_pcie, PCIE_PHY_MPLL_OVRD_IN_LO, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pci-imx6.c:197:6: note: Assuming 'ret' is not equal to 0
if (ret)
^~~
drivers/pci/controller/dwc/pci-imx6.c:197:2: note: Taking true branch
if (ret)
^
drivers/pci/controller/dwc/pci-imx6.c:198:3: note: Returning without writing to '*data'
return ret;
^
drivers/pci/controller/dwc/pci-imx6.c:706:2: note: Returning from 'pcie_phy_read'
pcie_phy_read(imx6_pcie, PCIE_PHY_MPLL_OVRD_IN_LO, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pci-imx6.c:707:6: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
val &= ~(PCIE_PHY_MPLL_MULTIPLIER_MASK <<
~~~ ^
drivers/pci/controller/dwc/pci-imx6.c:1135:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = of_property_read_u32(node, "fsl,max-link-speed", &pci->link_gen);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pci/controller/dwc/pci-imx6.c:1135:2: note: Value stored to 'ret' is never read
ret = of_property_read_u32(node, "fsl,max-link-speed", &pci->link_gen);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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/pci/controller/pci-rcar-gen2.c:225:3: warning: Value stored to 'window_size' is never read [clang-analyzer-deadcode.DeadStores]
window_size = SZ_256M;
^
drivers/pci/controller/pci-rcar-gen2.c:225:3: note: Value stored to 'window_size' is never read
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.
include/linux/log2.h:57:13: 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]
return 1UL << fls_long(n - 1);
^
drivers/pci/controller/pcie-rcar.c:79:6: note: Assuming 'size' is > 128
if (size > 128)
^~~~~~~~~~
drivers/pci/controller/pcie-rcar.c:79:2: note: Taking true branch
if (size > 128)
^
drivers/pci/controller/pcie-rcar.c:80:11: note: '?' condition is false
mask = (roundup_pow_of_two(size) / SZ_128) - 1;
^
include/linux/log2.h:176:2: note: expanded from macro 'roundup_pow_of_two'
__builtin_constant_p(n) ? ( \
^
drivers/pci/controller/pcie-rcar.c:80:11: note: Calling '__roundup_pow_of_two'
mask = (roundup_pow_of_two(size) / SZ_128) - 1;
^
include/linux/log2.h:180:2: note: expanded from macro 'roundup_pow_of_two'
__roundup_pow_of_two(n) \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/log2.h:57:16: note: Calling 'fls_long'
return 1UL << fls_long(n - 1);
^~~~~~~~~~~~~~~
include/linux/bitops.h:188:2: note: Taking true branch
if (sizeof(l) == 4)
^
include/linux/bitops.h:189:10: note: Calling 'fls'
return fls(l);
^~~~~~
include/asm-generic/bitops/fls.h:15:2: note: 'r' initialized to 32
int r = 32;
^~~~~
include/asm-generic/bitops/fls.h:17:7: note: 'x' is not equal to 0, which participates in a condition later
if (!x)
^
include/asm-generic/bitops/fls.h:17:2: note: Taking false branch
if (!x)
^
include/asm-generic/bitops/fls.h:19:6: note: Assuming the condition is false
if (!(x & 0xffff0000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:19:2: note: Taking false branch
if (!(x & 0xffff0000u)) {
^
include/asm-generic/bitops/fls.h:23:6: note: Assuming the condition is false
if (!(x & 0xff000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:23:2: note: Taking false branch
if (!(x & 0xff000000u)) {
^
include/asm-generic/bitops/fls.h:27:6: note: Assuming the condition is false
if (!(x & 0xf0000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:27:2: note: Taking false branch
if (!(x & 0xf0000000u)) {
^
include/asm-generic/bitops/fls.h:31:6: note: Assuming the condition is false
if (!(x & 0xc0000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:31:2: note: Taking false branch
if (!(x & 0xc0000000u)) {
^
include/asm-generic/bitops/fls.h:35:6: note: Assuming the condition is false
if (!(x & 0x80000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:35:2: note: Taking false branch
if (!(x & 0x80000000u)) {
^
include/asm-generic/bitops/fls.h:39:2: note: Returning the value 32 (loaded from 'r')
return r;
^~~~~~~~
include/linux/bitops.h:189:10: note: Returning from 'fls'
return fls(l);
^~~~~~
include/linux/bitops.h:189:3: note: Returning the value 32
return fls(l);
^~~~~~~~~~~~~
include/linux/log2.h:57:16: note: Returning from 'fls_long'
return 1UL << fls_long(n - 1);
^~~~~~~~~~~~~~~
include/linux/log2.h:57:13: note: 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'
return 1UL << fls_long(n - 1);
^ ~~~~~~~~~~~~~~~
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 (3 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.
kernel/debug/gdbstub.c:412:21: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
if (!lzero || *id != 0) {
^
kernel/debug/gdbstub.c:965:6: note: Assuming 'kgdb_connected' is 0
--
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 (3 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.
4 warnings generated.
include/linux/fsnotify_backend.h:259:18: warning: Access to field 'dentry' results in a dereference of a null pointer (loaded from variable 'data') [clang-analyzer-core.NullDereference]
return d_inode(((const struct path *)data)->dentry);
^
fs/notify/fsnotify.c:184:22: note: Assuming 'path' is null
struct mount *mnt = path ? real_mount(path->mnt) : NULL;
^~~~
fs/notify/fsnotify.c:184:22: note: '?' condition is false
fs/notify/fsnotify.c:199:6: note: Assuming field 'i_fsnotify_marks' is non-null
if (!inode->i_fsnotify_marks && !inode->i_sb->s_fsnotify_marks &&
^~~~~~~~~~~~~~~~~~~~~~~~
fs/notify/fsnotify.c:199:31: note: Left side of '&&' is false
if (!inode->i_fsnotify_marks && !inode->i_sb->s_fsnotify_marks &&
^
fs/notify/fsnotify.c:204:18: note: Calling 'fsnotify_event_needs_parent'
parent_needed = fsnotify_event_needs_parent(inode, mnt, mask);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/notify/fsnotify.c:152:6: note: Assuming the condition is true
if (mask & FS_ISDIR)
^~~~~~~~~~~~~~~
fs/notify/fsnotify.c:152:2: note: Taking true branch
if (mask & FS_ISDIR)
^
fs/notify/fsnotify.c:153:3: note: Returning zero, which participates in a condition later
return false;
^~~~~~~~~~~~
fs/notify/fsnotify.c:204:18: note: Returning from 'fsnotify_event_needs_parent'
parent_needed = fsnotify_event_needs_parent(inode, mnt, mask);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/notify/fsnotify.c:205:6: note: Assuming 'parent_watched' is true
if (!parent_watched && !parent_needed)
^~~~~~~~~~~~~~~
fs/notify/fsnotify.c:205:22: note: Left side of '&&' is false
if (!parent_watched && !parent_needed)
^
fs/notify/fsnotify.c:212:15: note: 'parent_watched' is true
if (unlikely(parent_watched && !p_mask))
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
fs/notify/fsnotify.c:212:15: note: Left side of '&&' is true
if (unlikely(parent_watched && !p_mask))
^
fs/notify/fsnotify.c:212:33: note: Assuming 'p_mask' is not equal to 0
if (unlikely(parent_watched && !p_mask))
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
fs/notify/fsnotify.c:212:2: note: Taking false branch
if (unlikely(parent_watched && !p_mask))
^
fs/notify/fsnotify.c:220:6: note: 'parent_needed' is false
if (parent_needed || parent_interested) {
^~~~~~~~~~~~~
fs/notify/fsnotify.c:220:6: note: Left side of '||' is false
fs/notify/fsnotify.c:220:23: note: Assuming 'parent_interested' is true
if (parent_needed || parent_interested) {
^~~~~~~~~~~~~~~~~
fs/notify/fsnotify.c:220:2: note: Taking true branch
if (parent_needed || parent_interested) {
^
fs/notify/fsnotify.c:222:45: note: Passing null pointer value via 1st parameter 'data'
WARN_ON_ONCE(inode != fsnotify_data_inode(data, data_type));
^
include/asm-generic/bug.h:179:41: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
fs/notify/fsnotify.c:222:25: note: Calling 'fsnotify_data_inode'
WARN_ON_ONCE(inode != fsnotify_data_inode(data, data_type));
^
include/asm-generic/bug.h:179:41: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
include/linux/fsnotify_backend.h:255:2: note: Control jumps to 'case FSNOTIFY_EVENT_PATH:' at line 258
switch (data_type) {
^
include/linux/fsnotify_backend.h:259:18: note: Access to field 'dentry' results in a dereference of a null pointer (loaded from variable 'data')
return d_inode(((const struct path *)data)->dentry);
^ ~~~~
Suppressed 3 warnings (3 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.
>> drivers/clk/clk-vt8500.c:301:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-vt8500.c:301:2: note: Value stored to 'rc' is never read
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-vt8500.c:715:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-vt8500.c:715:2: note: Value stored to 'rc' is never read
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, 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.
4 warnings generated.
drivers/clk/actions/owl-pll.c:28:9: warning: Although the value stored to 'mul' is used in the enclosing expression, the value is never actually read from 'mul' [clang-analyzer-deadcode.DeadStores]
return mul &= mul_mask(pll_hw);
^
drivers/clk/actions/owl-pll.c:28:9: note: Although the value stored to 'mul' is used in the enclosing expression, the value is never actually read from 'mul'
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.
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.
4 warnings generated.
drivers/pinctrl/samsung/pinctrl-samsung.c:1065:19: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
bank->eint_base = virt_base[0];
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1102:6: note: Assuming 'drvdata' is non-null
if (!drvdata)
^~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1102:2: note: Taking false branch
if (!drvdata)
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1105:9: note: Calling 'samsung_pinctrl_get_soc_data'
ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1019:9: note: Calling 'samsung_pinctrl_get_soc_data_for_of_alias'
ctrl = samsung_pinctrl_get_soc_data_for_of_alias(pdev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:991:6: note: Assuming 'id' is >= 0
if (id < 0) {
^~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:991:2: note: Taking false branch
if (id < 0) {
^
drivers/pinctrl/samsung/pinctrl-samsung.c:997:6: note: Assuming 'id' is < field 'num_ctrl'
if (id >= of_data->num_ctrl) {
^~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:997:2: note: Taking false branch
--
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/math.h:144:28: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~~~
include/linux/math.h:144:54: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~
include/linux/math.h:144:54: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:410:7: note: '?' condition is false
if (abs(vdec - freq) <= abs(vdec - out)) {
^
include/linux/math.h:133:3: note: expanded from macro 'abs'
__abs_choose_expr(x, int, \
^
include/linux/math.h:144:28: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:410:27: note: Assuming '__x' is < 0
if (abs(vdec - freq) <= abs(vdec - out)) {
^
include/linux/math.h:133:3: note: expanded from macro 'abs'
__abs_choose_expr(x, int, \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/math.h:144:28: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~~~
include/linux/math.h:144:54: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~
include/linux/math.h:144:54: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:410:27: note: '?' condition is true
if (abs(vdec - freq) <= abs(vdec - out)) {
^
include/linux/math.h:133:3: note: expanded from macro 'abs'
__abs_choose_expr(x, int, \
^
include/linux/math.h:144:28: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:410:7: note: Assuming the condition is false
if (abs(vdec - freq) <= abs(vdec - out)) {
^
include/linux/math.h:131:16: note: expanded from macro 'abs'
#define abs(x) __abs_choose_expr(x, long long, \
^
include/linux/math.h:141:43: note: expanded from macro '__abs_choose_expr'
#define __abs_choose_expr(x, type, other) __builtin_choose_expr( \
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:410:3: note: Taking false branch
if (abs(vdec - freq) <= abs(vdec - out)) {
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:416:16: note: The result of the left shift is undefined because the left operand is negative
divsv |= P2 << 8;
~~ ^
Suppressed 3 warnings (3 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.
4 warnings generated.
Suppressed 4 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
6 warnings generated.
>> drivers/dma/stm32-dma.c:1094:23: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
return (dma_smar == sg_req->chan_reg.dma_sm0ar);
^
drivers/dma/stm32-dma.c:1179:6: note: 'status' is not equal to DMA_COMPLETE
if (status == DMA_COMPLETE || !state)
^~~~~~
drivers/dma/stm32-dma.c:1179:6: note: Left side of '||' is false
drivers/dma/stm32-dma.c:1179:33: note: 'state' is non-null
if (status == DMA_COMPLETE || !state)
^~~~~
drivers/dma/stm32-dma.c:1179:2: note: Taking false branch
if (status == DMA_COMPLETE || !state)
^
drivers/dma/stm32-dma.c:1182:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&chan->vchan.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/dma/stm32-dma.c:1182:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&chan->vchan.lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/dma/stm32-dma.c:1183:10: note: Value assigned to field 'desc'
vdesc = vchan_find_desc(&chan->vchan, cookie);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1184:6: note: Assuming field 'desc' is null
if (chan->desc && cookie == chan->desc->vdesc.tx.cookie)
^~~~~~~~~~
drivers/dma/stm32-dma.c:1184:17: note: Left side of '&&' is false
if (chan->desc && cookie == chan->desc->vdesc.tx.cookie)
^
drivers/dma/stm32-dma.c:1187:11: note: Assuming 'vdesc' is non-null
else if (vdesc)
^~~~~
drivers/dma/stm32-dma.c:1187:7: note: Taking true branch
else if (vdesc)
^
drivers/dma/stm32-dma.c:1188:13: note: Calling 'stm32_dma_desc_residue'
residue = stm32_dma_desc_residue(chan,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1137:12: note: Calling 'stm32_dma_get_remaining_bytes'
residue = stm32_dma_get_remaining_bytes(chan);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1057:36: note: Calling 'stm32_dma_get_dev'
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:223:9: note: Left side of '&&' is false
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/dma/stm32-dma.c:223:9: note: Taking false branch
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/dma/stm32-dma.c:223:9: note: Loop condition is false. Exiting loop
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/dma/stm32-dma.c:223:2: note: Returning without writing to 'chan->desc'
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
drivers/dma/stm32-dma.c:1057:36: note: Returning from 'stm32_dma_get_dev'
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1063:2: note: Returning without writing to 'chan->desc'
--
^~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1658:2: note: Taking false branch
if (G_000E50_SEM_BUSY(tmp))
^
drivers/gpu/drm/radeon/r600.c:1661:6: note: Assuming the condition is false
if (G_000E50_GRBM_RQ_PENDING(tmp))
^
drivers/gpu/drm/radeon/r600d.h:1827:40: note: expanded from macro 'G_000E50_GRBM_RQ_PENDING'
#define G_000E50_GRBM_RQ_PENDING(x) (((x) >> 5) & 1)
^~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1661:2: note: Taking false branch
if (G_000E50_GRBM_RQ_PENDING(tmp))
^
drivers/gpu/drm/radeon/r600.c:1664:6: note: Assuming the condition is false
if (G_000E50_VMC_BUSY(tmp))
^
drivers/gpu/drm/radeon/r600d.h:1830:34: note: expanded from macro 'G_000E50_VMC_BUSY'
#define G_000E50_VMC_BUSY(x) (((x) >> 8) & 1)
^~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1664:2: note: Taking false branch
if (G_000E50_VMC_BUSY(tmp))
^
drivers/gpu/drm/radeon/r600.c:1667:6: note: Assuming the condition is false
if (G_000E50_MCB_BUSY(tmp) | G_000E50_MCDZ_BUSY(tmp) |
^
drivers/gpu/drm/radeon/r600d.h:1831:33: note: expanded from macro 'G_000E50_MCB_BUSY'
#define G_000E50_MCB_BUSY(x) (((x) >> 9) & 1)
^
drivers/gpu/drm/radeon/r600.c:1667:2: note: Taking false branch
if (G_000E50_MCB_BUSY(tmp) | G_000E50_MCDZ_BUSY(tmp) |
^
drivers/gpu/drm/radeon/r600.c:1672:6: note: Calling 'r600_is_display_hung'
if (r600_is_display_hung(rdev))
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1592:14: note: Assuming 'i' is < field 'num_crtc'
for (i = 0; i < rdev->num_crtc; i++) {
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1592:2: note: Loop condition is true. Entering loop body
for (i = 0; i < rdev->num_crtc; i++) {
^
drivers/gpu/drm/radeon/r600.c:1593:7: note: Assuming the condition is false
if (RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]) & AVIVO_CRTC_EN) {
^
drivers/gpu/drm/radeon/radeon.h:2545:21: note: expanded from macro 'RREG32'
#define RREG32(reg) r100_mm_rreg(rdev, (reg), false)
^
drivers/gpu/drm/radeon/r600.c:1593:3: note: Taking false branch
if (RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]) & AVIVO_CRTC_EN) {
^
drivers/gpu/drm/radeon/r600.c:1592:14: note: Assuming 'i' is < field 'num_crtc'
for (i = 0; i < rdev->num_crtc; i++) {
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1592:2: note: Loop condition is true. Entering loop body
for (i = 0; i < rdev->num_crtc; i++) {
^
drivers/gpu/drm/radeon/r600.c:1593:7: note: Assuming the condition is false
if (RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]) & AVIVO_CRTC_EN) {
^
drivers/gpu/drm/radeon/radeon.h:2545:21: note: expanded from macro 'RREG32'
#define RREG32(reg) r100_mm_rreg(rdev, (reg), false)
^
drivers/gpu/drm/radeon/r600.c:1593:3: note: Taking false branch
if (RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]) & AVIVO_CRTC_EN) {
^
drivers/gpu/drm/radeon/r600.c:1592:34: note: The value 2 is assigned to 'i'
for (i = 0; i < rdev->num_crtc; i++) {
^~~
drivers/gpu/drm/radeon/r600.c:1592:14: note: Assuming 'i' is < field 'num_crtc'
for (i = 0; i < rdev->num_crtc; i++) {
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/r600.c:1592:2: note: Loop condition is true. Entering loop body
for (i = 0; i < rdev->num_crtc; i++) {
^
drivers/gpu/drm/radeon/r600.c:1593:35: note: The right operand of '+' is a garbage value due to array index out of bounds
if (RREG32(AVIVO_D1CRTC_CONTROL + crtc_offsets[i]) & AVIVO_CRTC_EN) {
^
drivers/gpu/drm/radeon/radeon.h:2545:41: note: expanded from macro 'RREG32'
#define RREG32(reg) r100_mm_rreg(rdev, (reg), false)
^~~
drivers/gpu/drm/radeon/r600.c:1794:3: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
tmp = RREG32(R_008020_GRBM_SOFT_RESET);
^
drivers/gpu/drm/radeon/r600.c:1794:3: note: Value stored to 'tmp' is never read
drivers/gpu/drm/radeon/r600.c:1808:3: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
tmp = RREG32(SRBM_SOFT_RESET);
^
drivers/gpu/drm/radeon/r600.c:1808:3: note: Value stored to 'tmp' is never read
drivers/gpu/drm/radeon/r600.c:1861:2: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
tmp = RREG32(BIF_SCRATCH0);
^
drivers/gpu/drm/radeon/r600.c:1861:2: note: Value stored to 'tmp' is never read
Suppressed 3 warnings (3 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/gpu/drm/mgag200/mgag200_mode.c:98:2: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
status = 0;
^ ~
drivers/gpu/drm/mgag200/mgag200_mode.c:98:2: note: Value stored to 'status' is never read
status = 0;
^ ~
>> drivers/gpu/drm/mgag200/mgag200_mode.c:220:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_mode.c:220:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_mode.c:480:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_mode.c:480:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
Suppressed 3 warnings (3 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/gpu/drm/mgag200/mgag200_pll.c:204:14: warning: Although the value stored to 's' is used in the enclosing expression, the value is never actually read from 's' [clang-analyzer-deadcode.DeadStores]
m = n = p = s = 0;
^ ~
drivers/gpu/drm/mgag200/mgag200_pll.c:204:14: note: Although the value stored to 's' is used in the enclosing expression, the value is never actually read from 's'
m = n = p = s = 0;
^ ~
drivers/gpu/drm/mgag200/mgag200_pll.c:953:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_pll.c:953:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/gpu/drm/nouveau/nvif/object.c:38:48: warning: The left operand of '==' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
if (size >= sizeof(*args) && args->v0.version == 0) {
^
drivers/gpu/drm/nouveau/nvif/object.c:132:12: note: Calling 'nvif_object_ioctl'
int ret = nvif_object_ioctl(object, &args, sizeof(args), NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvif/object.c:38:6: note: Left side of '&&' is true
if (size >= sizeof(*args) && args->v0.version == 0) {
^
drivers/gpu/drm/nouveau/nvif/object.c:38:48: note: The left operand of '==' is a garbage value
if (size >= sizeof(*args) && args->v0.version == 0) {
~~~~~~~~~~~~~~~~ ^
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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.
drivers/gpu/drm/ttm/ttm_bo_vm.c:343:11: warning: Access to field 'pages' results in a dereference of a null pointer (loaded from variable 'ttm') [clang-analyzer-core.NullDereference]
page = ttm->pages[page_offset];
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:427:6: note: 'ret' is 0
if (ret)
^~~
drivers/gpu/drm/ttm/ttm_bo_vm.c:427:2: note: Taking false branch
if (ret)
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:431:6: note: Assuming the condition is true
if (drm_dev_enter(ddev, &idx)) {
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/ttm/ttm_bo_vm.c:431:2: note: Taking true branch
if (drm_dev_enter(ddev, &idx)) {
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:432:9: note: Calling 'ttm_bo_vm_fault_reserved'
ret = ttm_bo_vm_fault_reserved(vmf, prot, TTM_BO_VM_NUM_PREFAULT, 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/ttm/ttm_bo_vm.c:287:2: note: 'ttm' initialized to a null pointer value
struct ttm_tt *ttm = NULL;
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/ttm/ttm_bo_vm.c:299:2: note: Taking false branch
if (unlikely(ret != 0))
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:303:15: note: Assuming 'err' is equal to 0
if (unlikely(err != 0))
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:303:2: note: Taking false branch
if (unlikely(err != 0))
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:311:15: note: Assuming 'page_offset' is < field 'num_pages'
if (unlikely(page_offset >= bo->resource->num_pages))
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:311:2: note: Taking false branch
if (unlikely(page_offset >= bo->resource->num_pages))
^
drivers/gpu/drm/ttm/ttm_bo_vm.c:315:6: note: Assuming field 'is_iomem' is true
if (!bo->resource->bus.is_iomem) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/ttm/ttm_bo_vm.c:315:2: note: Taking false branch
if (!bo->resource->bus.is_iomem) {
--
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 (3 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/dma/amba-pl08x.c:587:6: warning: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch') [clang-analyzer-core.NullDereference]
if (ch->ftdmac020) {
^
drivers/dma/amba-pl08x.c:2210:2: note: Value assigned to field 'phychan'
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/spinlock.h:256:11: note: expanded from macro 'raw_spin_lock_irqsave'
flags = _raw_spin_lock_irqsave(lock); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2210:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/dma/amba-pl08x.c:2210:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/dma/amba-pl08x.c:2211:6: note: Assuming field 'phychan' is null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2211:6: note: Left side of '&&' is true
drivers/dma/amba-pl08x.c:2211:26: note: Assuming field 'at' is non-null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~
drivers/dma/amba-pl08x.c:2211:2: note: Taking false branch
if (!plchan->phychan && !plchan->at) {
^
drivers/dma/amba-pl08x.c:2216:23: note: Passing null pointer value via 1st parameter 'ch'
pl08x_pause_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2216:2: note: Calling 'pl08x_pause_phy_chan'
pl08x_pause_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:587:6: note: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch')
if (ch->ftdmac020) {
^~
drivers/dma/amba-pl08x.c:615:6: warning: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch') [clang-analyzer-core.NullDereference]
if (ch->ftdmac020) {
^
drivers/dma/amba-pl08x.c:2233:2: note: Value assigned to field 'phychan'
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/spinlock.h:256:11: note: expanded from macro 'raw_spin_lock_irqsave'
flags = _raw_spin_lock_irqsave(lock); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2233:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/dma/amba-pl08x.c:2233:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/dma/amba-pl08x.c:2234:6: note: Assuming field 'phychan' is null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2234:6: note: Left side of '&&' is true
drivers/dma/amba-pl08x.c:2234:26: note: Assuming field 'at' is non-null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~
drivers/dma/amba-pl08x.c:2234:2: note: Taking false branch
if (!plchan->phychan && !plchan->at) {
^
drivers/dma/amba-pl08x.c:2239:24: note: Passing null pointer value via 1st parameter 'ch'
pl08x_resume_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2239:2: note: Calling 'pl08x_resume_phy_chan'
pl08x_resume_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:615:6: note: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch')
if (ch->ftdmac020) {
^~
Suppressed 3 warnings (3 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.
>> drivers/video/fbdev/vt8500lcdfb.c:280:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
drivers/video/fbdev/vt8500lcdfb.c:280:2: note: Value stored to 'ret' is never read
ret = -ENOMEM;
^ ~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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/video/fbdev/s1d13xxxfb.c:681:2: warning: Value stored to 'is_dual' is never read [clang-analyzer-deadcode.DeadStores]
is_dual = (panel & 0x02) != 0;
^ ~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/s1d13xxxfb.c:681:2: note: Value stored to 'is_dual' is never read
is_dual = (panel & 0x02) != 0;
^ ~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/s1d13xxxfb.c:683:2: warning: Value stored to 'lcd_bpp' is never read [clang-analyzer-deadcode.DeadStores]
lcd_bpp = s1d13xxxfb_width_tab[is_tft][(panel >> 4) & 3];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/s1d13xxxfb.c:683:2: note: Value stored to 'lcd_bpp' is never read
lcd_bpp = s1d13xxxfb_width_tab[is_tft][(panel >> 4) & 3];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/video/fbdev/s3c-fb.c:492:16: warning: Value stored to 'buf' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
void __iomem *buf = regs;
^~~ ~~~~
drivers/video/fbdev/s3c-fb.c:492:16: note: Value stored to 'buf' during its initialization is never read
void __iomem *buf = regs;
^~~ ~~~~
Suppressed 3 warnings (3 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.
drivers/video/fbdev/sm501fb.c:1965:5: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(fb_mode, cp);
^~~~~~
drivers/video/fbdev/sm501fb.c:1965:5: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(fb_mode, cp);
^~~~~~
Suppressed 3 warnings (3 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.
4 warnings generated.
drivers/video/fbdev/riva/fbdev.c:499:4: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
tmp = 0;
^ ~
drivers/video/fbdev/riva/fbdev.c:499:4: note: Value stored to 'tmp' is never read
tmp = 0;
^ ~
Suppressed 3 warnings (3 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 (3 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.
kernel/kallsyms.c:436:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(buffer, name);
^~~~~~
kernel/kallsyms.c:436:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(buffer, name);
^~~~~~
Suppressed 4 warnings (3 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.
6 warnings generated.
kernel/kexec_core.c:771:4: warning: Value stored to 'addr' is never read [clang-analyzer-deadcode.DeadStores]
addr = old_addr;
^ ~~~~~~~~
kernel/kexec_core.c:771:4: note: Value stored to 'addr' is never read
addr = old_addr;
^ ~~~~~~~~
kernel/kexec_core.c:791:2: warning: Value stored to 'result' is never read [clang-analyzer-deadcode.DeadStores]
result = 0;
^ ~
kernel/kexec_core.c:791:2: note: Value stored to 'result' is never read
result = 0;
^ ~
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.
3 warnings generated.
Suppressed 3 warnings (3 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.
arch/arm/include/asm/atomic.h:223:1: warning: Access to field 'counter' results in a dereference of a null pointer (loaded from variable 'v') [clang-analyzer-core.NullDereference]
ATOMIC_OPS(add, +=, add)
^
arch/arm/include/asm/atomic.h:221:2: note: expanded from macro 'ATOMIC_OPS'
ATOMIC_FETCH_OP(op, c_op, asm_op)
--
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/base/regmap/regmap-debugfs.c:76:3: note: Memory is released
kfree(c);
^~~~~~~~
drivers/base/regmap/regmap-debugfs.c:71:2: note: Loop condition is true. Entering loop body
while (!list_empty(&map->debugfs_off_cache)) {
^
drivers/base/regmap/regmap-debugfs.c:72:7: note: Left side of '&&' is false
c = list_first_entry(&map->debugfs_off_cache,
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/base/regmap/regmap-debugfs.c:72:7: note: Taking false branch
c = list_first_entry(&map->debugfs_off_cache,
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/base/regmap/regmap-debugfs.c:72:7: note: Loop condition is false. Exiting loop
c = list_first_entry(&map->debugfs_off_cache,
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/base/regmap/regmap-debugfs.c:75:3: note: Calling 'list_del'
list_del(&c->list);
^~~~~~~~~~~~~~~~~~
include/linux/list.h:146:2: note: Calling '__list_del_entry'
__list_del_entry(entry);
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:132:2: note: Taking false branch
if (!__list_del_entry_valid(entry))
^
include/linux/list.h:135:13: note: Use of memory after it is freed
__list_del(entry->prev, entry->next);
^~~~~~~~~~~
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 (3 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 (3 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 (3 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 (3 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/gpu/drm/exynos/exynos_drm_dsi.c:670:3: warning: Value stored to 'esc_clk' is never read [clang-analyzer-deadcode.DeadStores]
esc_clk = byte_clk / esc_div;
^ ~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:670:3: note: Value stored to 'esc_clk' is never read
esc_clk = byte_clk / esc_div;
^ ~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1060:4: warning: Value stored to 'length' is never read [clang-analyzer-deadcode.DeadStores]
length = xfer->rx_len;
^ ~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1060:4: note: Value stored to 'length' is never read
length = xfer->rx_len;
^ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/gpu/drm/exynos/exynos_mixer.c:464:9: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
MXR_LAYER_CFG_GRP0_MASK);
^
drivers/gpu/drm/exynos/regs-mixer.h:153:34: note: expanded from macro 'MXR_LAYER_CFG_GRP0_MASK'
#define MXR_LAYER_CFG_GRP0_MASK MXR_LAYER_CFG_GRP0_VAL(~0)
^
drivers/gpu/drm/exynos/regs-mixer.h:152:35: note: expanded from macro 'MXR_LAYER_CFG_GRP0_VAL'
#define MXR_LAYER_CFG_GRP0_VAL(x) MXR_MASK_VAL(x, 7, 4)
^
drivers/gpu/drm/exynos/regs-mixer.h:70:10: note: expanded from macro 'MXR_MASK_VAL'
(((val) << (low_bit)) & MXR_MASK(high_bit, low_bit))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1031:6: note: Assuming the condition is false
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:1031:2: note: Taking false branch
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1037:2: note: Loop condition is true. Entering loop body
for (i = 0; i < MIXER_WIN_NR; i++)
^
drivers/gpu/drm/exynos/exynos_mixer.c:1038:3: note: Calling 'mixer_disable_plane'
mixer_disable_plane(crtc, &ctx->planes[i]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:973:6: note: Assuming the condition is false
if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:973:2: note: Taking false branch
if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags))
^
drivers/gpu/drm/exynos/exynos_mixer.c:976:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&mixer_ctx->reg_slock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/gpu/drm/exynos/exynos_mixer.c:976:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&mixer_ctx->reg_slock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/gpu/drm/exynos/exynos_mixer.c:977:2: note: Calling 'mixer_cfg_layer'
mixer_cfg_layer(mixer_ctx, plane->index, 0, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:457:12: note: 'enable' is false
u32 val = enable ? ~0 : 0;
^~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:457:12: note: '?' condition is false
drivers/gpu/drm/exynos/exynos_mixer.c:459:2: note: Control jumps to 'case 0:' at line 460
switch (win) {
^
drivers/gpu/drm/exynos/exynos_mixer.c:464:9: note: The result of the left shift is undefined because the left operand is negative
MXR_LAYER_CFG_GRP0_MASK);
^
drivers/gpu/drm/exynos/regs-mixer.h:153:34: note: expanded from macro 'MXR_LAYER_CFG_GRP0_MASK'
#define MXR_LAYER_CFG_GRP0_MASK MXR_LAYER_CFG_GRP0_VAL(~0)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/regs-mixer.h:152:35: note: expanded from macro 'MXR_LAYER_CFG_GRP0_VAL'
#define MXR_LAYER_CFG_GRP0_VAL(x) MXR_MASK_VAL(x, 7, 4)
^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/regs-mixer.h:70:10: note: expanded from macro 'MXR_MASK_VAL'
(((val) << (low_bit)) & MXR_MASK(high_bit, low_bit))
~~~~~ ^
drivers/gpu/drm/exynos/exynos_mixer.c:470:9: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
MXR_LAYER_CFG_GRP1_MASK);
^
drivers/gpu/drm/exynos/regs-mixer.h:151:34: note: expanded from macro 'MXR_LAYER_CFG_GRP1_MASK'
#define MXR_LAYER_CFG_GRP1_MASK MXR_LAYER_CFG_GRP1_VAL(~0)
^
drivers/gpu/drm/exynos/regs-mixer.h:150:35: note: expanded from macro 'MXR_LAYER_CFG_GRP1_VAL'
#define MXR_LAYER_CFG_GRP1_VAL(x) MXR_MASK_VAL(x, 11, 8)
^
drivers/gpu/drm/exynos/regs-mixer.h:70:10: note: expanded from macro 'MXR_MASK_VAL'
(((val) << (low_bit)) & MXR_MASK(high_bit, low_bit))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1031:6: note: Assuming the condition is false
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:1031:2: note: Taking false branch
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1037:2: note: Loop condition is true. Entering loop body
--
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~
drivers/hwmon/tmp513.c:277:9: note: '?' condition is true
val = clamp_val(val, MIN_TEMP_LIMIT, MAX_TEMP_LIMIT);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/tmp513.c:278:12: note: Left side of '||' is false
regval = DIV_ROUND_CLOSEST(val * 10, 625) << TMP51X_TEMP_SHIFT;
^
include/linux/math.h:89:3: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((typeof(x))-1) > 0 || \
^
drivers/hwmon/tmp513.c:278:12: note: Left side of '||' is false
regval = DIV_ROUND_CLOSEST(val * 10, 625) << TMP51X_TEMP_SHIFT;
^
include/linux/math.h:89:3: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((typeof(x))-1) > 0 || \
^
drivers/hwmon/tmp513.c:278:12: note: '?' condition is false
regval = DIV_ROUND_CLOSEST(val * 10, 625) << TMP51X_TEMP_SHIFT;
^
include/linux/math.h:89:2: note: expanded from macro 'DIV_ROUND_CLOSEST'
(((typeof(x))-1) > 0 || \
^
drivers/hwmon/tmp513.c:278:45: note: The result of the left shift is undefined because the left operand is negative
regval = DIV_ROUND_CLOSEST(val * 10, 625) << TMP51X_TEMP_SHIFT;
^
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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.
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> net/sysctl_net.c:146:4: warning: Value stored to 'where' is never read [clang-analyzer-deadcode.DeadStores]
where = "module";
^ ~~~~~~~~
net/sysctl_net.c:146:4: note: Value stored to 'where' is never read
where = "module";
^ ~~~~~~~~
net/sysctl_net.c:148:4: warning: Value stored to 'where' is never read [clang-analyzer-deadcode.DeadStores]
where = "kernel";
^ ~~~~~~~~
net/sysctl_net.c:148:4: note: Value stored to 'where' is never read
where = "kernel";
^ ~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/gpu/drm/panel/panel-innolux-p079zca.c:459:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = PTR_ERR(innolux->enable_gpio);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/panel/panel-innolux-p079zca.c:459:3: note: Value stored to 'err' is never read
err = PTR_ERR(innolux->enable_gpio);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
net/socket.c:585:3: warning: Value stored to 'buffer' is never read [clang-analyzer-deadcode.DeadStores]
buffer += len;
^ ~~~
net/socket.c:585:3: note: Value stored to 'buffer' is never read
buffer += len;
^ ~~~
net/socket.c:2126:21: warning: Value stored to 'sk' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
const struct sock *sk = sock->sk;
^~ ~~~~~~~~
net/socket.c:2126:21: note: Value stored to 'sk' during its initialization is never read
const struct sock *sk = sock->sk;
^~ ~~~~~~~~
net/socket.c:2213:3: warning: Value stored to 'max_optlen' is never read [clang-analyzer-deadcode.DeadStores]
max_optlen = BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN(optlen);
^
net/socket.c:2213:3: note: Value stored to 'max_optlen' is never read
net/socket.c:2461:3: warning: Address of stack memory associated with local variable 'address' is still referred to by the stack variable 'msg_sys' upon returning to the caller. This will be a dangling reference [clang-analyzer-core.StackAddressEscape]
return err;
^
net/socket.c:2575:1: note: Calling '__do_sys_sendmmsg'
SYSCALL_DEFINE4(sendmmsg, int, fd, struct mmsghdr __user *, mmsg,
^
include/linux/syscalls.h:219:36: note: expanded from macro 'SYSCALL_DEFINE4'
#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/syscalls.h:227:2: note: expanded from macro 'SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/syscalls.h:248:14: note: expanded from macro '__SYSCALL_DEFINEx'
long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: expanded from here
net/socket.c:2578:9: note: Calling '__sys_sendmmsg'
return __sys_sendmmsg(fd, mmsg, vlen, flags, true);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/socket.c:2519:6: note: 'forbid_cmsg_compat' is true
if (forbid_cmsg_compat && (flags & MSG_CMSG_COMPAT))
^~~~~~~~~~~~~~~~~~
net/socket.c:2519:6: note: Left side of '&&' is true
net/socket.c:2519:2: note: Taking false branch
if (forbid_cmsg_compat && (flags & MSG_CMSG_COMPAT))
^
net/socket.c:2522:6: note: Assuming 'vlen' is <= UIO_MAXIOV
if (vlen > UIO_MAXIOV)
^~~~~~~~~~~~~~~~~
net/socket.c:2522:2: note: Taking false branch
if (vlen > UIO_MAXIOV)
--
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
include/linux/atomic/atomic-instrumented.h:28:9: note: Loop condition is false. Exiting loop
return arch_atomic_read(v);
^
arch/arm/include/asm/atomic.h:25:29: note: expanded from macro 'arch_atomic_read'
#define arch_atomic_read(v) READ_ONCE((v)->counter)
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
include/linux/atomic/atomic-instrumented.h:28:9: note: Use of memory after it is freed
return arch_atomic_read(v);
^
arch/arm/include/asm/atomic.h:25:29: note: expanded from macro 'arch_atomic_read'
#define arch_atomic_read(v) READ_ONCE((v)->counter)
^~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:50:2: note: expanded from macro 'READ_ONCE'
__READ_ONCE(x); \
^~~~~~~~~~~~~~
include/asm-generic/rwonce.h:44:24: note: expanded from macro '__READ_ONCE'
#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:202:2: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
lapb_put(lapb);
^ ~~~~
net/lapb/lapb_iface.c:179:6: note: Assuming 'lapb' is non-null
if (!lapb)
^~~~~
net/lapb/lapb_iface.c:179:2: note: Taking false branch
if (!lapb)
^
net/lapb/lapb_iface.c:184:9: note: Assuming the condition is false
while (refcount_read(&lapb->refcnt) > 2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:184:2: note: Loop condition is false. Execution continues on line 187
while (refcount_read(&lapb->refcnt) > 2)
^
net/lapb/lapb_iface.c:200:2: note: Calling '__lapb_remove_cb'
__lapb_remove_cb(lapb);
^~~~~~~~~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:66:6: note: Assuming field 'next' is non-null
if (lapb->node.next) {
^~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:66:2: note: Taking true branch
if (lapb->node.next) {
^
net/lapb/lapb_iface.c:68:3: note: Calling 'lapb_put'
lapb_put(lapb);
^~~~~~~~~~~~~~
net/lapb/lapb_iface.c:57:2: note: Taking true branch
if (refcount_dec_and_test(&lapb->refcnt))
^
net/lapb/lapb_iface.c:58:3: note: Calling 'lapb_free_cb'
lapb_free_cb(lapb);
^~~~~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:47:2: note: Memory is released
kfree(lapb);
^~~~~~~~~~~
net/lapb/lapb_iface.c:58:3: note: Returning; memory was released via 1st parameter
lapb_free_cb(lapb);
^~~~~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:68:3: note: Returning; memory was released via 1st parameter
lapb_put(lapb);
^~~~~~~~~~~~~~
net/lapb/lapb_iface.c:200:2: note: Returning; memory was released via 1st parameter
__lapb_remove_cb(lapb);
^~~~~~~~~~~~~~~~~~~~~~
net/lapb/lapb_iface.c:202:2: note: Use of memory after it is freed
lapb_put(lapb);
^ ~~~~
Suppressed 3 warnings (3 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.
>> drivers/i2c/busses/i2c-qcom-geni.c:170:6: warning: Value stored to 'm_cmd' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 m_cmd = readl_relaxed(gi2c->se.base + SE_GENI_M_CMD0);
^~~~~
drivers/i2c/busses/i2c-qcom-geni.c:170:6: note: Value stored to 'm_cmd' during its initialization is never read
u32 m_cmd = readl_relaxed(gi2c->se.base + SE_GENI_M_CMD0);
^~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:171:6: warning: Value stored to 'm_stat' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 m_stat = readl_relaxed(gi2c->se.base + SE_GENI_M_IRQ_STATUS);
^~~~~~
drivers/i2c/busses/i2c-qcom-geni.c:171:6: note: Value stored to 'm_stat' during its initialization is never read
u32 m_stat = readl_relaxed(gi2c->se.base + SE_GENI_M_IRQ_STATUS);
^~~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:172:6: warning: Value stored to 'geni_s' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 geni_s = readl_relaxed(gi2c->se.base + SE_GENI_STATUS);
^~~~~~
drivers/i2c/busses/i2c-qcom-geni.c:172:6: note: Value stored to 'geni_s' during its initialization is never read
u32 geni_s = readl_relaxed(gi2c->se.base + SE_GENI_STATUS);
^~~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:173:6: warning: Value stored to 'geni_ios' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 geni_ios = readl_relaxed(gi2c->se.base + SE_GENI_IOS);
^~~~~~~~
drivers/i2c/busses/i2c-qcom-geni.c:173:6: note: Value stored to 'geni_ios' during its initialization is never read
u32 geni_ios = readl_relaxed(gi2c->se.base + SE_GENI_IOS);
^~~~~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:178:3: warning: Value stored to 'rx_st' is never read [clang-analyzer-deadcode.DeadStores]
rx_st = readl_relaxed(gi2c->se.base + SE_DMA_RX_IRQ_STAT);
^
drivers/i2c/busses/i2c-qcom-geni.c:178:3: note: Value stored to 'rx_st' is never read
>> drivers/i2c/busses/i2c-qcom-geni.c:179:3: warning: Value stored to 'tx_st' is never read [clang-analyzer-deadcode.DeadStores]
tx_st = readl_relaxed(gi2c->se.base + SE_DMA_TX_IRQ_STAT);
^
drivers/i2c/busses/i2c-qcom-geni.c:179:3: note: Value stored to 'tx_st' is never read
drivers/i2c/busses/i2c-qcom-geni.c:181:3: warning: Value stored to 'rx_st' is never read [clang-analyzer-deadcode.DeadStores]
rx_st = readl_relaxed(gi2c->se.base + SE_GENI_RX_FIFO_STATUS);
^
drivers/i2c/busses/i2c-qcom-geni.c:181:3: note: Value stored to 'rx_st' is never read
drivers/i2c/busses/i2c-qcom-geni.c:182:3: warning: Value stored to 'tx_st' is never read [clang-analyzer-deadcode.DeadStores]
tx_st = readl_relaxed(gi2c->se.base + SE_GENI_TX_FIFO_STATUS);
^
drivers/i2c/busses/i2c-qcom-geni.c:182:3: note: Value stored to 'tx_st' is never read
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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/mc/mc-request.c:190:23: warning: Value stored to 'mdev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct media_device *mdev = req->mdev;
^~~~ ~~~~~~~~~
drivers/media/mc/mc-request.c:190:23: note: Value stored to 'mdev' during its initialization is never read
struct media_device *mdev = req->mdev;
^~~~ ~~~~~~~~~
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 (3 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 (3 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 (3 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/media/dvb-core/dvb_ca_en50221.c:760:19: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
buf[0], (buf[1] & 0x80) == 0, bytes_read);
^
drivers/media/dvb-core/dvb_ca_en50221.c:40:53: note: expanded from macro 'dprintk'
printk(KERN_DEBUG pr_fmt("%s: " fmt), __func__, ##arg);\
^~~
include/linux/printk.h:446:60: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^~~~~~~~~~~
include/linux/printk.h:418:19: note: expanded from macro 'printk_index_wrap'
_p_func(_fmt, ##__VA_ARGS__); \
^~~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:640:2: note: Assuming 'dvb_ca_en50221_debug' is 0
dprintk("%s\n", __func__);
^
drivers/media/dvb-core/dvb_ca_en50221.c:39:6: note: expanded from macro 'dprintk'
if (dvb_ca_en50221_debug) \
^~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:640:2: note: Taking false branch
dprintk("%s\n", __func__);
^
drivers/media/dvb-core/dvb_ca_en50221.c:39:2: note: expanded from macro 'dprintk'
if (dvb_ca_en50221_debug) \
^
drivers/media/dvb-core/dvb_ca_en50221.c:640:2: note: Loop condition is false. Exiting loop
dprintk("%s\n", __func__);
^
drivers/media/dvb-core/dvb_ca_en50221.c:38:30: note: expanded from macro 'dprintk'
#define dprintk(fmt, arg...) do { \
^
drivers/media/dvb-core/dvb_ca_en50221.c:643:6: note: Assuming 'ebuf' is non-null
if (!ebuf) {
^~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:643:2: note: Taking false branch
if (!ebuf) {
^
drivers/media/dvb-core/dvb_ca_en50221.c:659:6: note: Assuming field 'read_data' is null
if (ca->pub->read_data &&
^~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:659:25: note: Left side of '&&' is false
if (ca->pub->read_data &&
^
drivers/media/dvb-core/dvb_ca_en50221.c:675:7: note: Assuming 'status' is >= 0
if (status < 0)
^~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:675:3: note: Taking false branch
if (status < 0)
^
drivers/media/dvb-core/dvb_ca_en50221.c:677:7: note: Assuming the condition is false
if (!(status & STATUSREG_DA)) {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:677:3: note: Taking false branch
if (!(status & STATUSREG_DA)) {
--
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/minmax.h:104:48: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once'
typeof(x) unique_x = (x); \
^
drivers/hwmon/max31730.c:219:8: note: '?' condition is false
val = clamp_val(val, MAX31730_TEMP_MIN, MAX31730_TEMP_MAX);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/max31730.c:219:8: note: '__UNIQUE_ID___x304' is < '__UNIQUE_ID___y305'
val = clamp_val(val, MAX31730_TEMP_MIN, MAX31730_TEMP_MAX);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~
drivers/hwmon/max31730.c:219:8: note: '?' condition is true
val = clamp_val(val, MAX31730_TEMP_MIN, MAX31730_TEMP_MAX);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/max31730.c:219:2: note: The value -128000 is assigned to 'val'
val = clamp_val(val, MAX31730_TEMP_MIN, MAX31730_TEMP_MAX);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/hwmon/max31730.c:220:30: note: The result of the left shift is undefined because the left operand is negative
val = DIV_ROUND_CLOSEST(val << 4, 1000) << 4;
^
include/linux/math.h:87:18: note: expanded from macro 'DIV_ROUND_CLOSEST'
typeof(x) __x = x; \
^
Suppressed 3 warnings (3 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.
drivers/iommu/sun50i-iommu.c:510:3: warning: Value stored to 'dte' is never read [clang-analyzer-deadcode.DeadStores]
dte = old_dte;
^ ~~~~~~~
drivers/iommu/sun50i-iommu.c:510:3: note: Value stored to 'dte' is never read
dte = old_dte;
^ ~~~~~~~
Suppressed 3 warnings (3 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 (3 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/gpu/drm/drm_gem_vram_helper.c:396:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = gbo->bo.base.dev;
^~~ ~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_gem_vram_helper.c:396:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = gbo->bo.base.dev;
^~~ ~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_gem_vram_helper.c:564:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = bo->base.dev;
^~~ ~~~~~~~~~~~~
drivers/gpu/drm/drm_gem_vram_helper.c:564:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = bo->base.dev;
^~~ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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.
lib/test_lockup.c:231:32: warning: The right operand of '-' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
s64 cur_wait = local_clock() - wait_start;
^ ~~~~~~~~~~
lib/test_lockup.c:171:2: note: 'wait_start' declared without an initial value
u64 wait_start;
^~~~~~~~~~~~~~
lib/test_lockup.c:173:6: note: Assuming 'measure_lock_wait' is false
if (measure_lock_wait)
^~~~~~~~~~~~~~~~~
lib/test_lockup.c:173:2: note: Taking false branch
if (measure_lock_wait)
^
lib/test_lockup.c:176:6: note: Assuming 'lock_mutex_ptr' is not equal to 0
if (lock_mutex_ptr && master) {
^~~~~~~~~~~~~~
lib/test_lockup.c:176:6: note: Left side of '&&' is true
lib/test_lockup.c:176:24: note: Assuming 'master' is true
if (lock_mutex_ptr && master) {
^~~~~~
lib/test_lockup.c:176:2: note: Taking true branch
if (lock_mutex_ptr && master) {
^
lib/test_lockup.c:177:7: note: Assuming 'verbose' is false
if (verbose)
^~~~~~~
lib/test_lockup.c:177:3: note: Taking false branch
if (verbose)
^
lib/test_lockup.c:182:6: note: Assuming 'lock_rwsem_ptr' is 0
if (lock_rwsem_ptr && master) {
^~~~~~~~~~~~~~
lib/test_lockup.c:182:21: note: Left side of '&&' is false
if (lock_rwsem_ptr && master) {
^
lib/test_lockup.c:192:6: note: Assuming 'lock_mmap_sem' is false
if (lock_mmap_sem && master) {
^~~~~~~~~~~~~
lib/test_lockup.c:192:20: note: Left side of '&&' is false
if (lock_mmap_sem && master) {
^
lib/test_lockup.c:201:6: note: Assuming 'test_disable_irq' is false
if (test_disable_irq)
^~~~~~~~~~~~~~~~
lib/test_lockup.c:201:2: note: Taking false branch
if (test_disable_irq)
^
lib/test_lockup.c:204:6: note: Assuming 'disable_softirq' is false
if (disable_softirq)
^~~~~~~~~~~~~~~
lib/test_lockup.c:204:2: note: Taking false branch
if (disable_softirq)
^
lib/test_lockup.c:207:6: note: Assuming 'disable_preempt' is false
if (disable_preempt)
^~~~~~~~~~~~~~~
lib/test_lockup.c:207:2: note: Taking false branch
if (disable_preempt)
^
lib/test_lockup.c:210:6: note: Assuming 'lock_rcu' is false
if (lock_rcu)
^~~~~~~~
lib/test_lockup.c:210:2: note: Taking false branch
if (lock_rcu)
^
lib/test_lockup.c:213:6: note: Assuming 'lock_spinlock_ptr' is 0
if (lock_spinlock_ptr && master) {
^~~~~~~~~~~~~~~~~
lib/test_lockup.c:213:24: note: Left side of '&&' is false
if (lock_spinlock_ptr && master) {
^
lib/test_lockup.c:220:6: note: Assuming 'lock_rwlock_ptr' is 0
if (lock_rwlock_ptr && master) {
^~~~~~~~~~~~~~~
lib/test_lockup.c:220:22: note: Left side of '&&' is false
if (lock_rwlock_ptr && master) {
^
lib/test_lockup.c:230:6: note: Assuming 'measure_lock_wait' is true
--
5 warnings generated.
drivers/misc/bcm-vk/bcm_vk_msg.c:543:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &vk->pdev->dev;
^~~ ~~~~~~~~~~~~~~
drivers/misc/bcm-vk/bcm_vk_msg.c:543:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &vk->pdev->dev;
^~~ ~~~~~~~~~~~~~~
drivers/misc/bcm-vk/bcm_vk_msg.c:731:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &vk->pdev->dev;
^~~ ~~~~~~~~~~~~~~
drivers/misc/bcm-vk/bcm_vk_msg.c:731:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &vk->pdev->dev;
^~~ ~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/misc/cardreader/rtsx_pcr.c:1254:7: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
val &= ~(1<<9);
~~~ ^
drivers/misc/cardreader/rtsx_pcr.c:1250:2: note: 'val' declared without an initial value
u16 val;
^~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:1252:7: note: Assuming field 'device' is not equal to PID_525A
if ((PCI_PID(pcr) != PID_525A) && (PCI_PID(pcr) != PID_5260)) {
^
include/linux/rtsx_pci.h:1277:24: note: expanded from macro 'PCI_PID'
#define PCI_PID(pcr) ((pcr)->pci->device)
^
drivers/misc/cardreader/rtsx_pcr.c:1252:6: note: Left side of '&&' is true
if ((PCI_PID(pcr) != PID_525A) && (PCI_PID(pcr) != PID_5260)) {
^
drivers/misc/cardreader/rtsx_pcr.c:1252:37: note: Assuming field 'device' is not equal to PID_5260
if ((PCI_PID(pcr) != PID_525A) && (PCI_PID(pcr) != PID_5260)) {
^
include/linux/rtsx_pci.h:1277:24: note: expanded from macro 'PCI_PID'
#define PCI_PID(pcr) ((pcr)->pci->device)
^
drivers/misc/cardreader/rtsx_pcr.c:1252:2: note: Taking true branch
if ((PCI_PID(pcr) != PID_525A) && (PCI_PID(pcr) != PID_5260)) {
^
drivers/misc/cardreader/rtsx_pcr.c:1253:3: note: Calling 'rtsx_pci_read_phy_register'
rtsx_pci_read_phy_register(pcr, 0x01, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:291:6: note: Assuming field 'read_phy' is null
if (pcr->ops->read_phy)
^~~~~~~~~~~~~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:291:2: note: Taking false branch
if (pcr->ops->read_phy)
^
drivers/misc/cardreader/rtsx_pcr.c:294:9: note: Calling '__rtsx_pci_read_phy_register'
return __rtsx_pci_read_phy_register(pcr, addr, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:265:2: note: Loop condition is true. Entering loop body
for (i = 0; i < 100000; i++) {
^
drivers/misc/cardreader/rtsx_pcr.c:267:7: note: Assuming 'err' is < 0
if (err < 0)
^~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:267:3: note: Taking true branch
if (err < 0)
^
drivers/misc/cardreader/rtsx_pcr.c:268:4: note: Returning without writing to '*val'
return err;
^
drivers/misc/cardreader/rtsx_pcr.c:294:9: note: Returning from '__rtsx_pci_read_phy_register'
return __rtsx_pci_read_phy_register(pcr, addr, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:294:2: note: Returning without writing to '*'
return __rtsx_pci_read_phy_register(pcr, addr, val);
^
drivers/misc/cardreader/rtsx_pcr.c:1253:3: note: Returning from 'rtsx_pci_read_phy_register'
rtsx_pci_read_phy_register(pcr, 0x01, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:1254:7: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
val &= ~(1<<9);
~~~ ^
drivers/misc/cardreader/rtsx_pcr.c:1305:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = rtsx_pci_write_register(pcr, RTS5261_FW_CFG1,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/cardreader/rtsx_pcr.c:1305:3: note: Value stored to 'err' is never read
err = rtsx_pci_write_register(pcr, RTS5261_FW_CFG1,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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.
>> drivers/nvmem/sunxi_sid.c:107:2: warning: Null pointer passed as 1st argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(val, &word, bytes);
^ ~~~
drivers/nvmem/sunxi_sid.c:89:9: note: Assuming 'bytes' is >= 4
while (bytes >= 4) {
^~~~~~~~~~
drivers/nvmem/sunxi_sid.c:89:2: note: Loop condition is true. Entering loop body
while (bytes >= 4) {
^
drivers/nvmem/sunxi_sid.c:90:9: note: Calling 'sun8i_sid_register_readout'
ret = sun8i_sid_register_readout(sid, offset, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvmem/sunxi_sid.c:61:2: note: Loop condition is false. Exiting loop
writel(reg_val, sid->base + SUN8I_SID_PRCTL);
^
arch/arm/include/asm/io.h:308:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:167:20: note: expanded from macro '__iowmb'
#define __iowmb() wmb()
^
arch/arm/include/asm/barrier.h:66:16: note: expanded from macro 'wmb'
#define wmb() __arm_heavy_mb(st)
^
arch/arm/include/asm/barrier.h:58:30: note: expanded from macro '__arm_heavy_mb'
#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: '__sleep_us' is not equal to 0
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/iopoll.h:42:17: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^~~~~~~~~~~~
include/linux/kernel.h:183:39: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^~~~
drivers/nvmem/sunxi_sid.c:63:8: note: Taking true branch
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^
include/linux/iopoll.h:42:2: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^
include/linux/kernel.h:183:35: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: Loop condition is false. Exiting loop
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^
include/linux/iopoll.h:42:2: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^
include/linux/kernel.h:183:45: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^
include/linux/kernel.h:132:45: note: expanded from macro 'might_sleep'
do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
^
include/linux/kernel.h:109:26: note: expanded from macro 'might_resched'
# define might_resched() do { } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: Loop condition is false. Exiting loop
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^
include/linux/iopoll.h:42:2: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^
include/linux/kernel.h:183:45: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^
include/linux/kernel.h:132:2: note: expanded from macro 'might_sleep'
do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: Loop condition is false. Exiting loop
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
--
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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.
drivers/media/dvb-frontends/stv6111.c:473:2: warning: Value stored to 'icp' is never read [clang-analyzer-deadcode.DeadStores]
icp = 0;
^ ~
drivers/media/dvb-frontends/stv6111.c:473:2: note: Value stored to 'icp' is never read
icp = 0;
^ ~
Suppressed 3 warnings (3 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 (3 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.
drivers/media/dvb-frontends/sp2.c:208:14: warning: Value stored to 's' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct sp2 *s = en50221->data;
^ ~~~~~~~~~~~~~
drivers/media/dvb-frontends/sp2.c:208:14: note: Value stored to 's' during its initialization is never read
struct sp2 *s = en50221->data;
^ ~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
13 warnings generated.
drivers/media/dvb-frontends/tda10071.c:42:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:42:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:92:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:92:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:137:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:137:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:183:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:183:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:243:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:243:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:303:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:303:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:366:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:366:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:550:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:550:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:696:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:696:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:1041:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
drivers/media/dvb-frontends/tda10071.c:1041:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = dev->client;
^~~~~~ ~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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.
>> drivers/mtd/maps/pismo.c:246:11: warning: Array access (via field 'cs_addrs') results in a null pointer dereference [clang-analyzer-core.NullDereference]
pdata->cs_addrs[i]);
^ ~~~~~~~~
drivers/mtd/maps/pismo.c:214:2: note: 'pdata' initialized here
struct pismo_pdata *pdata = client->dev.platform_data;
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:219:7: note: Calling 'i2c_check_functionality'
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/i2c.h:900:9: note: Assuming the condition is true
return (func & i2c_get_functionality(adap)) == func;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/i2c.h:900:2: note: Returning the value 1, which participates in a condition later
return (func & i2c_get_functionality(adap)) == func;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:219:7: note: Returning from 'i2c_check_functionality'
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:219:2: note: Taking false branch
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
^
drivers/mtd/maps/pismo.c:224:10: note: Calling 'kzalloc'
pismo = kzalloc(sizeof(*pismo), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer, which participates in a condition later
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:224:10: note: Returning from 'kzalloc'
pismo = kzalloc(sizeof(*pismo), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:225:6: note: Assuming 'pismo' is non-null
if (!pismo)
^~~~~~
drivers/mtd/maps/pismo.c:225:2: note: Taking false branch
if (!pismo)
^
drivers/mtd/maps/pismo.c:229:6: note: Assuming 'pdata' is null
if (pdata) {
^~~~~
drivers/mtd/maps/pismo.c:229:2: note: Taking false branch
if (pdata) {
^
drivers/mtd/maps/pismo.c:236:6: note: 'ret' is >= 0
if (ret < 0) {
^~~
drivers/mtd/maps/pismo.c:236:2: note: Taking false branch
if (ret < 0) {
^
drivers/mtd/maps/pismo.c:241:2: note: Left side of '&&' is true
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:370:7: note: expanded from macro '__printk_index_emit'
if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
^
drivers/mtd/maps/pismo.c:241:2: note: Taking true branch
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:370:3: note: expanded from macro '__printk_index_emit'
if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
^
drivers/mtd/maps/pismo.c:241:2: note: '?' condition is true
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
--
^
arch/arm/include/asm/io.h:308:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:167:20: note: expanded from macro '__iowmb'
#define __iowmb() wmb()
^
arch/arm/include/asm/barrier.h:66:16: note: expanded from macro 'wmb'
#define wmb() __arm_heavy_mb(st)
^
arch/arm/include/asm/barrier.h:58:30: note: expanded from macro '__arm_heavy_mb'
#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:620:14: note: Field 'addr_cycles' is <= 4
if (plnand->addr_cycles > 4)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:620:2: note: Taking false branch
if (plnand->addr_cycles > 4)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:624:9: note: '?' condition is true
ndelay(PSEC_TO_NSEC(sdr->tRR_min));
^
include/linux/mtd/rawnand.h:769:25: note: expanded from macro 'PSEC_TO_NSEC'
#define PSEC_TO_NSEC(x) __DIVIDE(x, 1000)
^
include/linux/mtd/rawnand.h:765:25: note: expanded from macro '__DIVIDE'
(__typeof__(dividend))(sizeof(dividend) <= sizeof(unsigned long) ? \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:626:6: note: Assuming 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:626:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:633:6: note: 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:633:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:641:6: note: Assuming 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:641:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:647:9: note: Calling 'pl35x_nand_recover_data_hwecc'
return pl35x_nand_recover_data_hwecc(nfc, chip, buf, nfc->ecc_buf);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:478:18: note: Assuming 'chunk' is < field 'steps'
for (chunk = 0; chunk < chip->ecc.steps;
^~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:478:2: note: Loop condition is true. Entering loop body
for (chunk = 0; chunk < chip->ecc.steps;
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:483:7: note: Assuming the condition is false
if (!PL35X_SMC_ECC_VALUE_IS_VALID(ecc_value))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:483:3: note: Taking false branch
if (!PL35X_SMC_ECC_VALUE_IS_VALID(ecc_value))
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:486:7: note: Assuming the condition is false
if (PL35X_SMC_ECC_VALUE_HAS_FAILED(ecc_value)) {
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:85:46: note: expanded from macro 'PL35X_SMC_ECC_VALUE_HAS_FAILED'
#define PL35X_SMC_ECC_VALUE_HAS_FAILED(x) ((x) & BIT(28))
^~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:486:3: note: Taking false branch
if (PL35X_SMC_ECC_VALUE_HAS_FAILED(ecc_value)) {
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:491:3: note: Calling 'pl35x_nand_ecc_reg_to_array'
pl35x_nand_ecc_reg_to_array(chip, ecc_value, calc_ecc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:21: note: Assuming 'ecc_byte' is < field 'bytes'
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:2: note: Loop condition is true. Entering loop body
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:21: note: Assuming 'ecc_byte' is < field 'bytes'
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:2: note: Loop condition is true. Entering loop body
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:21: note: Assuming 'ecc_byte' is >= field 'bytes'
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:2: note: Loop condition is false. Execution continues on line 446
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:491:3: note: Returning from 'pl35x_nand_ecc_reg_to_array'
pl35x_nand_ecc_reg_to_array(chip, ecc_value, calc_ecc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:492:11: note: Calling 'pl35x_nand_correct_data'
stats = pl35x_nand_correct_data(nfc, data, read_ecc, calc_ecc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:411:54: note: The left operand of '<<' is a garbage value
calc_ecc_upper = ((calc_ecc[1] >> 4) | (calc_ecc[2] << 4)) &
~~~~~~~~~~~ ^
>> drivers/mtd/nand/raw/pl35x-nand-controller.c:1126:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
return ret;
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1132:33: note: Left side of '&&' is false
struct amba_device *smc_amba = to_amba_device(smc_dev);
^
include/linux/amba/bus.h:103:27: note: expanded from macro 'to_amba_device'
#define to_amba_device(d) container_of(d, struct amba_device, dev)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1132:33: note: Taking false branch
struct amba_device *smc_amba = to_amba_device(smc_dev);
^
include/linux/amba/bus.h:103:27: note: expanded from macro 'to_amba_device'
#define to_amba_device(d) container_of(d, struct amba_device, dev)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1132:33: note: Loop condition is false. Exiting loop
struct amba_device *smc_amba = to_amba_device(smc_dev);
^
include/linux/amba/bus.h:103:27: note: expanded from macro 'to_amba_device'
#define to_amba_device(d) container_of(d, struct amba_device, dev)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1137:6: note: Assuming 'nfc' is non-null
if (!nfc)
^~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1137:2: note: Taking false branch
if (!nfc)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1146:2: note: Taking false branch
if (IS_ERR(nfc->conf_regs))
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1150:2: note: Taking false branch
if (IS_ERR(nfc->io_regs))
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1154:6: note: 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1154:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1157:8: note: Calling 'pl35x_nand_chips_init'
ret = pl35x_nand_chips_init(nfc);
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1109:2: note: 'ret' declared without an initial value
int ret;
^~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:6: note: Assuming 'nchips' is not equal to 0
if (!nchips || nchips > PL35X_NAND_MAX_CS) {
^~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:6: note: Left side of '||' is false
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:17: note: Assuming 'nchips' is <= PL35X_NAND_MAX_CS
if (!nchips || nchips > PL35X_NAND_MAX_CS) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:2: note: Taking false branch
if (!nchips || nchips > PL35X_NAND_MAX_CS) {
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1117:29: note: Assuming 'nand_np' is equal to null
for_each_child_of_node(np, nand_np) {
^
include/linux/of.h:1301:48: note: expanded from macro 'for_each_child_of_node'
for (child = of_get_next_child(parent, NULL); child != NULL; \
^~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1117:2: note: Loop condition is false. Execution continues on line 1126
for_each_child_of_node(np, nand_np) {
^
include/linux/of.h:1301:2: note: expanded from macro 'for_each_child_of_node'
for (child = of_get_next_child(parent, NULL); child != NULL; \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1126:2: note: Undefined or garbage value returned to caller
--
^
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:216:12: note: Calling 'kzalloc'
primary = kzalloc(sizeof(*primary), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer, which participates in a condition later
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:216:12: note: Returning from 'kzalloc'
primary = kzalloc(sizeof(*primary), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:217:6: note: Assuming 'primary' is non-null
if (!primary) {
^~~~~~~~
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:217:2: note: Taking false branch
if (!primary) {
^
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:228:6: note: Assuming 'ret' is not equal to 0
if (ret) {
^~~
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:228:2: note: Taking true branch
if (ret) {
^
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:230:3: note: Null pointer value stored to 'primary'
primary = NULL;
^~~~~~~~~~~~~~
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:232:23: note: Passing null pointer value via 1st parameter 'plane'
drm_plane_helper_add(primary, &fsl_dcu_drm_plane_helper_funcs);
^~~~~~~
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c:232:2: note: Calling 'drm_plane_helper_add'
drm_plane_helper_add(primary, &fsl_dcu_drm_plane_helper_funcs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/drm/drm_modeset_helper_vtables.h:1359:24: note: Access to field 'helper_private' results in a dereference of a null pointer (loaded from variable 'plane')
plane->helper_private = funcs;
~~~~~ ^
Suppressed 3 warnings (3 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 (3 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.
10 warnings generated.
Suppressed 10 warnings (3 in non-user code, 7 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/gpu/drm/sun4i/sun4i_tcon.c:1426:2: warning: Value stored to 'id' is never read [clang-analyzer-deadcode.DeadStores]
id = sun4i_tcon_of_get_id_from_port(port);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_tcon.c:1426:2: note: Value stored to 'id' is never read
id = sun4i_tcon_of_get_id_from_port(port);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/media/dvb-core/dvb_frontend.c:355:23: warning: Value stored to 'fe' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct dvb_frontend *fe = fepriv->dvbdev->priv;
^~ ~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_frontend.c:355:23: note: Value stored to 'fe' during its initialization is never read
struct dvb_frontend *fe = fepriv->dvbdev->priv;
^~ ~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_frontend.c:1582:3: warning: Value stored to 'len' is never read [clang-analyzer-deadcode.DeadStores]
len = 1;
^ ~
drivers/media/dvb-core/dvb_frontend.c:1582:3: note: Value stored to 'len' is never read
len = 1;
^ ~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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/media/cec/core/cec-adap.c:420:3: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
cec_data_cancel(data, CEC_TX_STATUS_ABORTED);
^
drivers/media/cec/core/cec-adap.c:1664:6: note: Assuming field 'unregistered' is false
if (adap->devnode.unregistered)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/cec/core/cec-adap.c:1664:2: note: Taking false branch
if (adap->devnode.unregistered)
^
drivers/media/cec/core/cec-adap.c:1667:6: note: Assuming 'log_addrs' is null
if (!log_addrs || log_addrs->num_log_addrs == 0) {
^~~~~~~~~~
drivers/media/cec/core/cec-adap.c:1667:17: note: Left side of '||' is true
if (!log_addrs || log_addrs->num_log_addrs == 0) {
^
drivers/media/cec/core/cec-adap.c:1668:3: note: Calling 'cec_adap_unconfigure'
cec_adap_unconfigure(adap);
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/cec/core/cec-adap.c:1326:6: note: Assuming field 'needs_hpd' is true
if (!adap->needs_hpd ||
^~~~~~~~~~~~~~~~
drivers/media/cec/core/cec-adap.c:1326:6: note: Left side of '||' is false
drivers/media/cec/core/cec-adap.c:1327:6: note: Assuming field 'phys_addr' is not equal to CEC_PHYS_ADDR_INVALID
adap->phys_addr != CEC_PHYS_ADDR_INVALID)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/cec/core/cec-adap.c:1326:2: note: Taking true branch
if (!adap->needs_hpd ||
^
drivers/media/cec/core/cec-adap.c:1328:3: note: Assuming the condition is false
WARN_ON(adap->ops->adap_log_addr(adap, CEC_LOG_ADDR_INVALID));
^
include/asm-generic/bug.h:166:23: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~~~~
drivers/media/cec/core/cec-adap.c:1332:2: note: Calling 'cec_flush'
cec_flush(adap);
^~~~~~~~~~~~~~~
drivers/media/cec/core/cec-adap.c:417:2: note: Loop condition is true. Entering loop body
while (!list_empty(&adap->transmit_queue)) {
^
drivers/media/cec/core/cec-adap.c:418:10: note: Left side of '&&' is false
data = list_first_entry(&adap->transmit_queue,
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/media/cec/core/cec-adap.c:418:10: note: Taking false branch
data = list_first_entry(&adap->transmit_queue,
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
--
^~~~~~~~~~~~~~~~~~~~~~~~~~~
security/keys/encrypted-keys/encrypted.c:357:2: note: Taking false branch
if (derived_buf_len < HASH_SIZE)
^
security/keys/encrypted-keys/encrypted.c:360:16: note: Calling 'kzalloc'
derived_buf = kzalloc(derived_buf_len, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Memory is allocated
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
security/keys/encrypted-keys/encrypted.c:360:16: note: Returned allocated memory
derived_buf = kzalloc(derived_buf_len, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
security/keys/encrypted-keys/encrypted.c:361:6: note: Assuming 'derived_buf' is non-null
if (!derived_buf)
^~~~~~~~~~~~
security/keys/encrypted-keys/encrypted.c:361:2: note: Taking false branch
if (!derived_buf)
^
security/keys/encrypted-keys/encrypted.c:364:6: note: 'key_type' is 1
if (key_type)
^~~~~~~~
security/keys/encrypted-keys/encrypted.c:364:2: note: Taking true branch
if (key_type)
^
security/keys/encrypted-keys/encrypted.c:374:2: note: Potential leak of memory pointed to by 'derived_buf'
return ret;
^
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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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.
4 warnings generated.
drivers/soc/fsl/dpio/qbman-portal.c:657:3: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soc/fsl/dpio/qbman-portal.c:657:3: note: Value stored to 'p' is never read
p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soc/fsl/dpio/qbman-portal.c:818:3: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/soc/fsl/dpio/qbman-portal.c:818:3: note: Value stored to 'p' is never read
p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/i2c/busses/i2c-aspeed.c:253:2: warning: Value stored to 'command' is never read [clang-analyzer-deadcode.DeadStores]
command = readl(bus->base + ASPEED_I2C_CMD_REG);
^
drivers/i2c/busses/i2c-aspeed.c:253:2: note: Value stored to 'command' is never read
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/nfc/fdp/fdp.c:163:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:163:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:586:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:586:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:599:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:599:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:612:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nfc/fdp/fdp.c:612:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &info->phy->i2c_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/nfc/pn544/i2c.c:492:2: warning: Value stored to 'client' is never read [clang-analyzer-deadcode.DeadStores]
client = phy->i2c_dev;
^ ~~~~~~~~~~~~
drivers/nfc/pn544/i2c.c:492:2: note: Value stored to 'client' is never read
client = phy->i2c_dev;
^ ~~~~~~~~~~~~
drivers/nfc/pn544/i2c.c:531:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(phy->firmware_name, firmware_name);
^~~~~~
drivers/nfc/pn544/i2c.c:531:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(phy->firmware_name, firmware_name);
^~~~~~
Suppressed 3 warnings (3 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 (3 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/parport/parport_pc.c:2462:3: warning: Value stored to 'ppcontrol' is never read [clang-analyzer-deadcode.DeadStores]
ppcontrol = tmp2;
^ ~~~~
drivers/parport/parport_pc.c:2462:3: note: Value stored to 'ppcontrol' is never read
ppcontrol = tmp2;
^ ~~~~
drivers/parport/parport_pc.c:3153:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
irqval[i] = val;
^
drivers/parport/parport_pc.c:3268:6: note: Calling 'parse_parport_params'
if (parse_parport_params())
^~~~~~~~~~~~~~~~~~~~~~
drivers/parport/parport_pc.c:3143:2: note: 'val' declared without an initial value
int val;
^~~~~~~
drivers/parport/parport_pc.c:3146:6: note: Assuming 'init_mode' is null
if (init_mode)
^~~~~~~~~
drivers/parport/parport_pc.c:3146:2: note: Taking false branch
--
^
drivers/char/ipmi/ipmb_dev_int.c:147:6: note: Calling 'copy_from_user'
if (copy_from_user(&msg, buf, count))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:191:2: note: Taking true branch
if (likely(check_copy_size(to, n, false)))
^
include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
n = _copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:157:6: note: Left side of '&&' is true
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/uaccess.h:157:33: note: Assuming the condition is false
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/compiler.h:77:20: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:157:2: note: Taking false branch
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/uaccess.h:161:6: note: Assuming 'res' is 0, which participates in a condition later
if (unlikely(res))
^
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
include/linux/uaccess.h:161:2: note: Taking false branch
if (unlikely(res))
^
include/linux/uaccess.h:163:2: note: Returning zero (loaded from 'res'), which participates in a condition later
return res;
^~~~~~~~~~
include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
n = _copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:193:2: note: Returning zero (loaded from 'n'), which participates in a condition later
return n;
^~~~~~~~
drivers/char/ipmi/ipmb_dev_int.c:147:6: note: Returning from 'copy_from_user'
if (copy_from_user(&msg, buf, count))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/char/ipmi/ipmb_dev_int.c:147:2: note: Taking false branch
if (copy_from_user(&msg, buf, count))
^
drivers/char/ipmi/ipmb_dev_int.c:150:12: note: The right operand of '<' is a garbage value
if (count < msg[0])
^ ~~~~~~
Suppressed 3 warnings (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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/i2c/busses/i2c-rk3x.c:897:2: warning: Value stored to 't_low_ns' is never read [clang-analyzer-deadcode.DeadStores]
t_low_ns = div_u64(((u64)calc.div_low + 1) * 8 * 1000000000, clk_rate);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-rk3x.c:897:2: note: Value stored to 't_low_ns' is never read
t_low_ns = div_u64(((u64)calc.div_low + 1) * 8 * 1000000000, clk_rate);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-rk3x.c:898:2: warning: Value stored to 't_high_ns' is never read [clang-analyzer-deadcode.DeadStores]
t_high_ns = div_u64(((u64)calc.div_high + 1) * 8 * 1000000000,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-rk3x.c:898:2: note: Value stored to 't_high_ns' is never read
t_high_ns = div_u64(((u64)calc.div_high + 1) * 8 * 1000000000,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/i2c/busses/i2c-rcar.c:412:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = rcar_i2c_priv_to_dev(priv);
^~~
drivers/i2c/busses/i2c-rcar.c:412:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = rcar_i2c_priv_to_dev(priv);
^~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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/phy/rockchip/phy-rockchip-inno-hdmi.c:624:16: warning: Value stored to 'tmdsclock' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:624:16: note: Value stored to 'tmdsclock' during its initialization is never read
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:742:3: warning: Value stored to 'no_c' is never read [clang-analyzer-deadcode.DeadStores]
no_c = 1 << no_c;
^ ~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:742:3: note: Value stored to 'no_c' is never read
no_c = 1 << no_c;
^ ~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:778:16: warning: Value stored to 'tmdsclock' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:778:16: note: Value stored to 'tmdsclock' during its initialization is never read
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/most/configfs.c:173:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(mdev_link->direction, page);
^~~~~~
drivers/most/configfs.c:173:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(mdev_link->direction, page);
--
^
drivers/misc/fastrpc.c:410:25: note: Dereference of null pointer
ctx->olaps[i].start = ctx->args[i].ptr;
^~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c:74:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = ctx->dev;
^~~ ~~~~~~~~
drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c:74:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = ctx->dev;
^~~ ~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/nfc/st-nci/i2c.c:169:2: warning: Value stored to 'client' is never read [clang-analyzer-deadcode.DeadStores]
client = phy->i2c_dev;
^ ~~~~~~~~~~~~
drivers/nfc/st-nci/i2c.c:169:2: note: Value stored to 'client' is never read
client = phy->i2c_dev;
^ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/nfc/nxp-nci/firmware.c:214:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(fw_info->name, firmware_name);
^~~~~~
drivers/nfc/nxp-nci/firmware.c:214:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(fw_info->name, firmware_name);
^~~~~~
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 (3 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 (3 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 (3 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.
>> fs/overlayfs/inode.c:452:16: warning: Value stored to 'realinode' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct inode *realinode = ovl_inode_real(inode);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
fs/overlayfs/inode.c:452:16: note: Value stored to 'realinode' during its initialization is never read
struct inode *realinode = ovl_inode_real(inode);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
include/linux/dcache.h:526:9: warning: Access to field 'd_inode' results in a dereference of a null pointer (loaded from variable 'dentry') [clang-analyzer-core.NullDereference]
return dentry->d_inode;
^
fs/overlayfs/inode.c:1099:28: note: Assuming 'upperdentry' is null
struct inode *realinode = upperdentry ? d_inode(upperdentry) : NULL;
^~~~~~~~~~~
fs/overlayfs/inode.c:1099:28: note: '?' condition is false
fs/overlayfs/inode.c:1101:31: note: Assuming 'lowerpath' is null
struct dentry *lowerdentry = lowerpath ? lowerpath->dentry : NULL;
^~~~~~~~~
fs/overlayfs/inode.c:1101:31: note: '?' condition is false
fs/overlayfs/inode.c:1101:2: note: 'lowerdentry' initialized to a null pointer value
struct dentry *lowerdentry = lowerpath ? lowerpath->dentry : NULL;
^~~~~~~~~~~~~~~~~~~~~~~~~~
fs/overlayfs/inode.c:1104:13: note: 'bylower' is false
int fsid = bylower ? lowerpath->layer->fsid : 0;
^~~~~~~
fs/overlayfs/inode.c:1104:13: note: '?' condition is false
fs/overlayfs/inode.c:1107:12: note: Assuming field 'newinode' is null
int err = oip->newinode ? -EEXIST : -ENOMEM;
^~~~~~~~~~~~~
fs/overlayfs/inode.c:1107:12: note: '?' condition is false
fs/overlayfs/inode.c:1109:7: note: 'realinode' is null
if (!realinode)
^~~~~~~~~
fs/overlayfs/inode.c:1109:2: note: Taking true branch
if (!realinode)
^
fs/overlayfs/inode.c:1110:23: note: Passing null pointer value via 1st parameter 'dentry'
realinode = d_inode(lowerdentry);
^~~~~~~~~~~
fs/overlayfs/inode.c:1110:15: note: Calling 'd_inode'
realinode = d_inode(lowerdentry);
^~~~~~~~~~~~~~~~~~~~
include/linux/dcache.h:526:9: note: Access to field 'd_inode' results in a dereference of a null pointer (loaded from variable 'dentry')
return dentry->d_inode;
^~~~~~
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.
3 warnings generated.
Suppressed 3 warnings (3 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.
drivers/media/dvb-frontends/nxt6000.c:420:2: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
val = nxt6000_readreg(state, RF_AGC_STATUS);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/nxt6000.c:420:2: note: Value stored to 'val' is never read
val = nxt6000_readreg(state, RF_AGC_STATUS);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 in non-user code, 2 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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.
lib/bch.c:1123:27: warning: The result of the left shift is undefined because the right operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
const unsigned int k = 1 << deg(poly);
^ ~~~~~~~~~
lib/bch.c:1123:30: note: Calling 'deg'
const unsigned int k = 1 << deg(poly);
^~~~~~~~~
lib/bch.c:345:2: note: Returning the value -1
return fls(poly)-1;
^~~~~~~~~~~~~~~~~~
lib/bch.c:1123:30: note: Returning from 'deg'
const unsigned int k = 1 << deg(poly);
^~~~~~~~~
lib/bch.c:1123:27: note: The result of the left shift is undefined because the right operand is negative
const unsigned int k = 1 << deg(poly);
^ ~~~~~~~~~
Suppressed 3 warnings (3 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 (3 in non-user code).
--
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/lm75.h:27:14: note: '__UNIQUE_ID___x172' is < '__UNIQUE_ID___y173'
int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~
drivers/hwmon/lm75.h:27:14: note: '?' condition is true
int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/lm75.h:29:12: note: 'ntemp' is < 0
ntemp += (ntemp < 0 ? -250 : 250);
^~~~~
drivers/hwmon/lm75.h:29:12: note: '?' condition is true
drivers/hwmon/lm75.h:30:29: note: The result of the left shift is undefined because the left operand is negative
return (u16)((ntemp / 500) << 7);
~~~~~~~~~~~~~ ^
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/cpufreq/armada-37xx-cpufreq.c:158:3: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
val = ARMADA_37XX_NB_CLK_SEL_TBG << ARMADA_37XX_NB_CLK_SEL_OFF;
^
drivers/cpufreq/armada-37xx-cpufreq.c:158:3: note: Value stored to 'val' is never read
>> drivers/cpufreq/armada-37xx-cpufreq.c:159:3: warning: Value stored to 'mask' is never read [clang-analyzer-deadcode.DeadStores]
mask = (ARMADA_37XX_NB_CLK_SEL_MASK
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/cpufreq/armada-37xx-cpufreq.c:159:3: note: Value stored to 'mask' is never read
mask = (ARMADA_37XX_NB_CLK_SEL_MASK
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/gpu/drm/tegra/dc.c:1861:2: warning: Value stored to 'old_dc_state' is never read [clang-analyzer-deadcode.DeadStores]
old_dc_state = to_const_dc_state(old_crtc_state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:1861:2: note: Value stored to 'old_dc_state' is never read
old_dc_state = to_const_dc_state(old_crtc_state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:1862:2: warning: Value stored to 'new_dc_state' is never read [clang-analyzer-deadcode.DeadStores]
new_dc_state = to_const_dc_state(crtc->state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:1862:2: note: Value stored to 'new_dc_state' is never read
new_dc_state = to_const_dc_state(crtc->state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:2150:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:2150:2: note: Value stored to 'value' is never read
value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:2154:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:2154:2: note: Value stored to 'value' is never read
value = tegra_dc_readl(dc, DC_CMD_STATE_CONTROL);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:2243:2: warning: Value stored to 'old_state' is never read [clang-analyzer-deadcode.DeadStores]
old_state = drm_atomic_get_old_crtc_state(state, crtc);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/dc.c:2243:2: note: Value stored to 'old_state' is never read
old_state = drm_atomic_get_old_crtc_state(state, crtc);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 6 warnings (3 in non-user code, 3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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.
drivers/gpu/drm/tegra/hda.c:53:3: warning: Value stored to 'bits' is never read [clang-analyzer-deadcode.DeadStores]
bits = (format & AC_FMT_BITS_MASK) >> AC_FMT_BITS_SHIFT;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hda.c:53:3: note: Value stored to 'bits' is never read
bits = (format & AC_FMT_BITS_MASK) >> AC_FMT_BITS_SHIFT;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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/leds/leds-pca955x.c:594:9: warning: Access to field 'name' results in a dereference of a null pointer [clang-analyzer-core.NullDereference]
if (to_of_node(init_data.fwnode)->name[0] ==
^
include/linux/of.h:161:2: note: expanded from macro 'to_of_node'
({ \
^
drivers/leds/leds-pca955x.c:499:6: note: Assuming 'md' is non-null
if (md) {
^~
drivers/leds/leds-pca955x.c:499:2: note: Taking true branch
if (md) {
^
drivers/leds/leds-pca955x.c:516:6: note: Assuming 'pdata' is non-null
if (!pdata) {
^~~~~~
drivers/leds/leds-pca955x.c:516:2: note: Taking false branch
--
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/habanalabs/gaudi/gaudi.c:3738:28: warning: Although the value stored to 'qman_offset' is used in the enclosing expression, the value is never actually read from 'qman_offset' [clang-analyzer-deadcode.DeadStores]
for (i = GAUDI_PCI_DMA_1, qman_offset = 0 ; i < GAUDI_HBM_DMA_1 ; i++) {
^ ~
drivers/misc/habanalabs/gaudi/gaudi.c:3738:28: note: Although the value stored to 'qman_offset' is used in the enclosing expression, the value is never actually read from 'qman_offset'
for (i = GAUDI_PCI_DMA_1, qman_offset = 0 ; i < GAUDI_HBM_DMA_1 ; i++) {
^ ~
drivers/misc/habanalabs/gaudi/gaudi.c:5248:6: warning: Value stored to 'dst_addr' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u64 dst_addr = (le64_to_cpu(user_dma_pkt->dst_addr) &
^~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/habanalabs/gaudi/gaudi.c:5248:6: note: Value stored to 'dst_addr' during its initialization is never read
u64 dst_addr = (le64_to_cpu(user_dma_pkt->dst_addr) &
^~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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.
drivers/misc/habanalabs/gaudi/gaudi_coresight.c:770:31: warning: Value stored to 'input' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct hl_debug_params_spmu *input = params->input;
^~~~~ ~~~~~~~~~~~~~
drivers/misc/habanalabs/gaudi/gaudi_coresight.c:770:31: note: Value stored to 'input' during its initialization is never read
struct hl_debug_params_spmu *input = params->input;
^~~~~ ~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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.
drivers/gpu/drm/tiny/simpledrm.c:719:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &sdev->dev;
^~~ ~~~~~~~~~~
drivers/gpu/drm/tiny/simpledrm.c:719:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &sdev->dev;
^~~ ~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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.
>> drivers/gpu/drm/xlnx/zynqmp_dp.c:994:11: warning: Array access (from variable 'buf') results in a null pointer dereference [clang-analyzer-core.NullDereference]
buf[i] = zynqmp_dp_read(dp, ZYNQMP_DP_AUX_REPLY_DATA);
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1003:25: note: Left side of '&&' is false
struct zynqmp_dp *dp = container_of(aux, struct zynqmp_dp, aux);
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1003:25: note: Taking false branch
struct zynqmp_dp *dp = container_of(aux, struct zynqmp_dp, aux);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1003:25: note: Loop condition is false. Exiting loop
struct zynqmp_dp *dp = container_of(aux, struct zynqmp_dp, aux);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1009:9: note: Assuming 'iter' is 0
iter = iter ? iter : 1;
^~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:1009:9: note: '?' condition is false
drivers/gpu/drm/xlnx/zynqmp_dp.c:1011:2: note: Loop condition is true. Entering loop body
for (i = 0; i < iter; i++) {
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1013:13: note: Passing value via 4th parameter 'buf'
msg->buffer, msg->size,
^~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:1012:9: note: Calling 'zynqmp_dp_aux_cmd_submit'
ret = zynqmp_dp_aux_cmd_submit(dp, msg->request, msg->address,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:949:18: note: Assuming the condition is true
bool is_read = (cmd & AUX_READ_BIT) ? true : false;
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:949:17: note: '?' condition is true
bool is_read = (cmd & AUX_READ_BIT) ? true : false;
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:953:6: note: Assuming the condition is false
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REQUEST)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:953:2: note: Taking false branch
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REQUEST)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:957:7: note: 'is_read' is true
if (!is_read)
^~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:957:2: note: Taking false branch
if (!is_read)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:963:6: note: Assuming 'buf' is null
if (!buf || !bytes)
^~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:963:11: note: Left side of '||' is true
if (!buf || !bytes)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:970:2: note: Loop condition is true. Entering loop body
for (i = 0; ; i++) {
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:972:7: note: Assuming the condition is true
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REPLY)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:972:3: note: Taking true branch
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REPLY)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:973:4: note: Execution continues on line 982
break;
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:983:6: note: 'reply' is non-null
if (reply)
^~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:983:2: note: Taking true branch
if (reply)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:986:6: note: 'is_read' is true
--
^
drivers/iio/adc/meson_saradc.c:1239:2: note: Taking false branch
if (IS_ERR(priv->core_clk)) {
^
drivers/iio/adc/meson_saradc.c:1245:2: note: Taking false branch
if (IS_ERR(priv->adc_clk)) {
^
drivers/iio/adc/meson_saradc.c:1255:2: note: Taking false branch
if (IS_ERR(priv->adc_sel_clk)) {
^
drivers/iio/adc/meson_saradc.c:1265:6: note: Assuming field 'adc_clk' is null
if (!priv->adc_clk) {
^~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:1265:2: note: Taking true branch
if (!priv->adc_clk) {
^
drivers/iio/adc/meson_saradc.c:1267:7: note: 'ret' is 0
if (ret)
^~~
drivers/iio/adc/meson_saradc.c:1267:3: note: Taking false branch
if (ret)
^
drivers/iio/adc/meson_saradc.c:1272:2: note: Taking false branch
if (IS_ERR(priv->vref)) {
^
drivers/iio/adc/meson_saradc.c:1279:6: note: Assuming field 'temperature_trimming_bits' is not equal to 0
if (priv->param->temperature_trimming_bits) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:1279:2: note: Taking true branch
if (priv->param->temperature_trimming_bits) {
^
drivers/iio/adc/meson_saradc.c:1281:7: note: 'ret' is 0
if (ret)
^~~
drivers/iio/adc/meson_saradc.c:1281:3: note: Taking false branch
if (ret)
^
drivers/iio/adc/meson_saradc.c:1285:6: note: Assuming field 'temperature_sensor_calibrated' is true
if (priv->temperature_sensor_calibrated) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:1285:2: note: Taking true branch
if (priv->temperature_sensor_calibrated) {
^
drivers/iio/adc/meson_saradc.c:1296:6: note: Assuming 'ret' is 0
if (ret)
^~~
drivers/iio/adc/meson_saradc.c:1296:2: note: Taking false branch
if (ret)
^
drivers/iio/adc/meson_saradc.c:1300:6: note: 'ret' is 0
if (ret)
^~~
drivers/iio/adc/meson_saradc.c:1300:2: note: Taking false branch
if (ret)
^
drivers/iio/adc/meson_saradc.c:1303:8: note: Calling 'meson_sar_adc_calib'
ret = meson_sar_adc_calib(indio_dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:1027:31: note: 'value0' declared without an initial value
int ret, nominal0, nominal1, value0, value1;
^~~~~~
drivers/iio/adc/meson_saradc.c:1035:8: note: Calling 'meson_sar_adc_get_sample'
ret = meson_sar_adc_get_sample(indio_dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:555:6: note: Assuming field 'type' is not equal to IIO_TEMP
if (chan->type == IIO_TEMP && !priv->temperature_sensor_calibrated)
^~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:555:29: note: Left side of '&&' is false
if (chan->type == IIO_TEMP && !priv->temperature_sensor_calibrated)
^
drivers/iio/adc/meson_saradc.c:559:6: note: Assuming 'ret' is not equal to 0
if (ret)
^~~
drivers/iio/adc/meson_saradc.c:559:2: note: Taking true branch
if (ret)
^
drivers/iio/adc/meson_saradc.c:560:3: note: Returning without writing to '*val'
return ret;
^
drivers/iio/adc/meson_saradc.c:1035:8: note: Returning from 'meson_sar_adc_get_sample'
ret = meson_sar_adc_get_sample(indio_dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iio/adc/meson_saradc.c:1038:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
drivers/iio/adc/meson_saradc.c:1038:2: note: Taking false branch
if (ret < 0)
^
drivers/iio/adc/meson_saradc.c:1046:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
drivers/iio/adc/meson_saradc.c:1046:2: note: Taking false branch
if (ret < 0)
^
drivers/iio/adc/meson_saradc.c:1049:13: note: The right operand of '<=' is a garbage value
if (value1 <= value0) {
^ ~~~~~~
Suppressed 3 warnings (3 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.
>> drivers/gpu/drm/tegra/hub.c:243:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = dc->dev;
^~~ ~~~~~~~
drivers/gpu/drm/tegra/hub.c:243:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = dc->dev;
^~~ ~~~~~~~
drivers/gpu/drm/tegra/hub.c:381:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:381:2: note: Value stored to 'value' is never read
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:395:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_plane_readl(plane, DC_WIN_CORE_PRECOMP_WGRP_PIPE_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:395:2: note: Value stored to 'value' is never read
value = tegra_plane_readl(plane, DC_WIN_CORE_PRECOMP_WGRP_PIPE_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:400:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_POOL_CONFIG);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:400:2: note: Value stored to 'value' is never read
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_POOL_CONFIG);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:588:3: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = HORIZONTAL_TAPS_5 | VERTICAL_TAPS_5;
^
drivers/gpu/drm/tegra/hub.c:588:3: note: Value stored to 'value' is never read
drivers/gpu/drm/tegra/hub.c:593:4: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = HORIZONTAL_TAPS_2 | VERTICAL_TAPS_2;
^
drivers/gpu/drm/tegra/hub.c:593:4: note: Value stored to 'value' is never read
drivers/gpu/drm/tegra/hub.c:891:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_dc_readl(dc, DC_DISP_IHUB_COMMON_DISPLAY_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:891:2: note: Value stored to 'value' is never read
value = tegra_dc_readl(dc, DC_DISP_IHUB_COMMON_DISPLAY_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/crypto/atmel-tdes.c:683:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = ctx->dd->dev;
^~~ ~~~~~~~~~~~~
drivers/crypto/atmel-tdes.c:683:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = ctx->dd->dev;
^~~ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
13 warnings generated.
drivers/crypto/ccree/cc_driver.c:105:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = drvdata_to_dev(drvdata);
^~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ccree/cc_driver.c:105:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = drvdata_to_dev(drvdata);
^~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ccree/cc_driver.c:231:3: warning: Value stored to 'axi_err' is never read [clang-analyzer-deadcode.DeadStores]
axi_err = cc_ioread(drvdata, CC_REG(AXIM_MON_ERR));
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ccree/cc_driver.c:231:3: note: Value stored to 'axi_err' is never read
axi_err = cc_ioread(drvdata, CC_REG(AXIM_MON_ERR));
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ccree/cc_driver.c:275:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = drvdata_to_dev(drvdata);
^~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ccree/cc_driver.c:275:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = drvdata_to_dev(drvdata);
^~~ ~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 10 warnings (5 in non-user code, 5 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.
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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/i2c/busses/i2c-davinci.c:258:36: warning: Value stored to 'pdata' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct davinci_i2c_platform_data *pdata = dev->pdata;
^~~~~ ~~~~~~~~~~
drivers/i2c/busses/i2c-davinci.c:258:36: note: Value stored to 'pdata' during its initialization is never read
struct davinci_i2c_platform_data *pdata = dev->pdata;
^~~~~ ~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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.
--
dev_err(bus->dev,
^
include/linux/dev_printk.h:144:2: note: expanded from macro 'dev_err'
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
do { \
^
drivers/soundwire/stream.c:820:5: note: Control jumps to line 847
goto error;
^
drivers/soundwire/stream.c:847:2: note: Left side of '&&' is false
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/soundwire/stream.c:847:2: note: Taking false branch
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/soundwire/stream.c:847:2: note: Loop condition is false. Exiting loop
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/soundwire/stream.c:847:2: note: Loop condition is true. Entering loop body
list_for_each_entry(m_rt, &stream->master_list, stream_node) {
^
include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
drivers/soundwire/stream.c:849:22: note: Field 'msg' is non-null
if (bus->defer_msg.msg) {
^
drivers/soundwire/stream.c:849:3: note: Taking true branch
if (bus->defer_msg.msg) {
^
drivers/soundwire/stream.c:850:10: note: Use of memory after it is freed
kfree(bus->defer_msg.msg->buf);
^~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/crypto/mxs-dcp.c:302:22: warning: Value stored to 'src' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct scatterlist *src = req->src;
^~~ ~~~~~~~~
drivers/crypto/mxs-dcp.c:302:22: note: Value stored to 'src' during its initialization is never read
struct scatterlist *src = req->src;
^~~ ~~~~~~~~
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.
drivers/crypto/s5p-sss.c:1313:22: warning: Value stored to 'dd' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct s5p_aes_dev *dd = ctx->dd;
^~ ~~~~~~~
drivers/crypto/s5p-sss.c:1313:22: note: Value stored to 'dd' during its initialization is never read
struct s5p_aes_dev *dd = ctx->dd;
^~ ~~~~~~~
drivers/crypto/s5p-sss.c:1339:10: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
ctx->sg = NULL;
^
drivers/crypto/s5p-sss.c:1642:9: note: '?' condition is false
return s5p_hash_init(req) ?: s5p_hash_finup(req);
^
drivers/crypto/s5p-sss.c:1642:31: note: Calling 's5p_hash_finup'
return s5p_hash_init(req) ?: s5p_hash_finup(req);
^~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1576:9: note: Calling 's5p_hash_update'
err1 = s5p_hash_update(req);
^~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1509:6: note: Assuming field 'nbytes' is not equal to 0
if (!req->nbytes)
^~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1509:2: note: Taking false branch
if (!req->nbytes)
^
drivers/crypto/s5p-sss.c:1512:6: note: Assuming the condition is false
if (ctx->bufcnt + req->nbytes <= BUFLEN) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1512:2: note: Taking false branch
if (ctx->bufcnt + req->nbytes <= BUFLEN) {
^
drivers/crypto/s5p-sss.c:1519:9: note: Calling 's5p_hash_enqueue'
return s5p_hash_enqueue(req, true); /* HASH_OP_UPDATE */
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1493:9: note: Calling 's5p_hash_handle_queue'
return s5p_hash_handle_queue(tctx->dd, req);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1380:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dd->hash_lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/crypto/s5p-sss.c:1380:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dd->hash_lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/crypto/s5p-sss.c:1381:6: note: 'req' is non-null
if (req)
^~~
drivers/crypto/s5p-sss.c:1381:2: note: Taking true branch
if (req)
^
drivers/crypto/s5p-sss.c:1384:6: note: Assuming the condition is false
if (test_bit(HASH_FLAGS_BUSY, &dd->hash_flags)) {
^
include/asm-generic/bitops/non-atomic.h:120:18: note: expanded from macro 'test_bit'
#define test_bit arch_test_bit
^
drivers/crypto/s5p-sss.c:1384:2: note: Taking false branch
if (test_bit(HASH_FLAGS_BUSY, &dd->hash_flags)) {
^
drivers/crypto/s5p-sss.c:1391:6: note: Assuming 'async_req' is non-null
if (async_req)
^~~~~~~~~
drivers/crypto/s5p-sss.c:1391:2: note: Taking true branch
if (async_req)
^
drivers/crypto/s5p-sss.c:1392:3: note: '?' condition is true
set_bit(HASH_FLAGS_BUSY, &dd->hash_flags);
^
arch/arm/include/asm/bitops.h:189:25: note: expanded from macro 'set_bit'
#define set_bit(nr,p) ATOMIC_BITOP(set_bit,nr,p)
^
arch/arm/include/asm/bitops.h:181:3: note: expanded from macro 'ATOMIC_BITOP'
(__builtin_constant_p(nr) ? ____atomic_##name(nr, p) : _##name(nr,p))
^
drivers/crypto/s5p-sss.c:1396:7: note: 'async_req' is non-null
if (!async_req)
^~~~~~~~~
drivers/crypto/s5p-sss.c:1396:2: note: Taking false branch
if (!async_req)
^
drivers/crypto/s5p-sss.c:1399:6: note: Assuming 'backlog' is null
if (backlog)
^~~~~~~
drivers/crypto/s5p-sss.c:1399:2: note: Taking false branch
if (backlog)
--
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
net/mac80211/tx.c:4656:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
net/mac80211/tx.c:4657:14: note: Assuming 'i' is < field 'queues'
for (i = 0; i < local->hw.queues; i++) {
^~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4657:2: note: Loop condition is true. Entering loop body
for (i = 0; i < local->hw.queues; i++) {
^
net/mac80211/tx.c:4662:7: note: Assuming the condition is true
if (local->queue_stop_reasons[i] ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:36: note: Left side of '||' is true
if (local->queue_stop_reasons[i] ||
^
net/mac80211/tx.c:4664:4: note: Execution continues on line 4657
continue;
^
net/mac80211/tx.c:4657:14: note: Assuming 'i' is < field 'queues'
for (i = 0; i < local->hw.queues; i++) {
^~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4657:2: note: Loop condition is true. Entering loop body
for (i = 0; i < local->hw.queues; i++) {
^
net/mac80211/tx.c:4662:7: note: Assuming the condition is true
if (local->queue_stop_reasons[i] ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:36: note: Left side of '||' is true
if (local->queue_stop_reasons[i] ||
^
net/mac80211/tx.c:4664:4: note: Execution continues on line 4657
continue;
^
net/mac80211/tx.c:4657:14: note: Assuming 'i' is < field 'queues'
for (i = 0; i < local->hw.queues; i++) {
^~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4657:2: note: Loop condition is true. Entering loop body
for (i = 0; i < local->hw.queues; i++) {
^
net/mac80211/tx.c:4662:7: note: Assuming the condition is false
if (local->queue_stop_reasons[i] ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:7: note: Left side of '||' is false
net/mac80211/tx.c:4663:7: note: Assuming the condition is false
skb_queue_empty(&local->pending[i]))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:3: note: Taking false branch
if (local->queue_stop_reasons[i] ||
^
net/mac80211/tx.c:4666:3: note: Loop condition is true. Entering loop body
while (!skb_queue_empty(&local->pending[i])) {
^
net/mac80211/tx.c:4670:16: note: Assuming field 'vif' is non-null
if (WARN_ON(!info->control.vif)) {
^
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
net/mac80211/tx.c:4670:4: note: Taking false branch
if (WARN_ON(!info->control.vif)) {
^
net/mac80211/tx.c:4678:11: note: Calling 'ieee80211_tx_pending_skb'
txok = ieee80211_tx_pending_skb(local, skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4610:6: note: Assuming the condition is false
if (info->control.flags & IEEE80211_TX_INTCFL_NEED_TXPROCESSING) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4610:2: note: Taking false branch
if (info->control.flags & IEEE80211_TX_INTCFL_NEED_TXPROCESSING) {
^
net/mac80211/tx.c:4618:13: note: Assuming the condition is false
} else if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4618:9: note: Taking false branch
} else if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
^
net/mac80211/tx.c:4631:3: note: Calling '__skb_queue_head_init'
__skb_queue_head_init(&skbs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4631:3: note: Returning from '__skb_queue_head_init'
__skb_queue_head_init(&skbs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4632:3: note: Calling '__skb_queue_tail'
__skb_queue_tail(&skbs, skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2081:2: note: Calling '__skb_queue_before'
__skb_queue_before(list, (struct sk_buff *)list, newsk);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2048:2: note: 2nd function call argument is an uninitialized value
__skb_insert(newsk, next->prev, next, list);
^ ~~~~~~~~~~
>> net/mac80211/tx.c:665:24: warning: Value stored to 'hdr' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct ieee80211_hdr *hdr = (void *)tx->skb->data;
^~~ ~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:665:24: note: Value stored to 'hdr' during its initialization is never read
struct ieee80211_hdr *hdr = (void *)tx->skb->data;
^~~ ~~~~~~~~~~~~~~~~~~~~~
>> net/mac80211/tx.c:670:7: warning: Value stored to 'encap' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
bool encap = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP;
^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:670:7: note: Value stored to 'encap' during its initialization is never read
bool encap = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP;
^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:2596:4: warning: Null pointer passed as 2nd argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(hdr.addr1, sta->sta.addr, ETH_ALEN);
^ ~~~~~~~~~~~~~
net/mac80211/tx.c:2578:2: note: Taking true branch
if (IS_ERR(sta))
^
net/mac80211/tx.c:2591:2: note: Control jumps to 'case NL80211_IFTYPE_AP_VLAN:' at line 2592
switch (sdata->vif.type) {
^
net/mac80211/tx.c:2593:7: note: Assuming field 'use_4addr' is true
if (sdata->wdev.use_4addr) {
^~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:2593:3: note: Taking true branch
if (sdata->wdev.use_4addr) {
^
net/mac80211/tx.c:2596:4: note: Null pointer passed as 2nd argument to memory copy function
memcpy(hdr.addr1, sta->sta.addr, ETH_ALEN);
^ ~~~~~~~~~~~~~
net/mac80211/tx.c:3476:11: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
switch (key->conf.cipher) {
^
net/mac80211/tx.c:5751:6: note: Assuming 'skb' is non-null
if (!skb)
^~~~
net/mac80211/tx.c:5751:2: note: Taking false branch
if (!skb)
^
net/mac80211/tx.c:5754:2: note: Calling 'skb_reserve'
skb_reserve(skb, local->hw.extra_tx_headroom);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2414:1: note: Returning without writing to 'skb->.sk', which participates in a condition later
}
^
net/mac80211/tx.c:5754:2: note: Returning from 'skb_reserve'
skb_reserve(skb, local->hw.extra_tx_headroom);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:5763:2: note: Calling '__ieee80211_subif_start_xmit'
__ieee80211_subif_start_xmit(skb, skb->dev, 0,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4166:6: note: Assuming the condition is false
if (unlikely(skb->len < ETH_HLEN)) {
^
include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4166:2: note: Taking false branch
if (unlikely(skb->len < ETH_HLEN)) {
^
net/mac80211/tx.c:4173:2: note: Taking false branch
if (ieee80211_lookup_ra_sta(sdata, skb, &sta))
^
net/mac80211/tx.c:4176:2: note: Taking false branch
if (IS_ERR(sta))
^
net/mac80211/tx.c:4179:6: note: Assuming field 'wake_tx_queue' is null
if (local->ops->wake_tx_queue) {
^~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4179:2: note: Taking false branch
if (local->ops->wake_tx_queue) {
^
net/mac80211/tx.c:4187:6: note: 'sta' is non-null
if (sta) {
^~~
net/mac80211/tx.c:4187:2: note: Taking true branch
if (sta) {
^
net/mac80211/tx.c:4192:13: note: Left side of '||' is false
fast_tx = rcu_dereference(sta->fast_tx);
^
include/linux/rcupdate.h:596:28: note: expanded from macro 'rcu_dereference'
#define rcu_dereference(p) rcu_dereference_check(p, 0)
^
include/linux/rcupdate.h:528:2: note: expanded from macro 'rcu_dereference_check'
__rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
^
include/linux/rcupdate.h:389:48: note: expanded from macro '__rcu_dereference_check'
typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:290:3: note: expanded from macro '__native_word'
(sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
^
net/mac80211/tx.c:4192:13: note: Left side of '||' is false
fast_tx = rcu_dereference(sta->fast_tx);
^
include/linux/rcupdate.h:596:28: note: expanded from macro 'rcu_dereference'
#define rcu_dereference(p) rcu_dereference_check(p, 0)
^
include/linux/rcupdate.h:528:2: note: expanded from macro 'rcu_dereference_check'
__rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
--
drivers/mtd/nand/raw/nand_base.c:1715:3: note: Taking false branch
if (!len)
^
drivers/mtd/nand/raw/nand_base.c:1718:9: note: Calling 'nand_exec_op'
ret = nand_exec_op(chip, &op);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/internals.h:136:7: note: Calling 'nand_has_exec_op'
if (!nand_has_exec_op(chip))
^~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/internals.h:117:13: note: Field 'controller' is non-null, which participates in a condition later
if (!chip->controller || !chip->controller->ops ||
^
drivers/mtd/nand/raw/internals.h:117:6: note: Left side of '||' is false
if (!chip->controller || !chip->controller->ops ||
^
drivers/mtd/nand/raw/internals.h:117:46: note: Field 'ops' is non-null, which participates in a condition later
if (!chip->controller || !chip->controller->ops ||
^
drivers/mtd/nand/raw/internals.h:117:6: note: Left side of '||' is false
if (!chip->controller || !chip->controller->ops ||
^
drivers/mtd/nand/raw/internals.h:118:30: note: Field 'exec_op' is non-null, which participates in a condition later
!chip->controller->ops->exec_op)
^
drivers/mtd/nand/raw/internals.h:117:2: note: Taking false branch
if (!chip->controller || !chip->controller->ops ||
^
drivers/mtd/nand/raw/internals.h:121:2: note: Returning the value 1, which participates in a condition later
return true;
^~~~~~~~~~~
drivers/mtd/nand/raw/internals.h:136:7: note: Returning from 'nand_has_exec_op'
if (!nand_has_exec_op(chip))
^~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/internals.h:136:2: note: Taking false branch
if (!nand_has_exec_op(chip))
^
drivers/mtd/nand/raw/internals.h:139:14: note: Assuming the condition is false
if (WARN_ON(op->cs >= nanddev_ntargets(&chip->base)))
^
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
drivers/mtd/nand/raw/internals.h:139:2: note: Taking false branch
if (WARN_ON(op->cs >= nanddev_ntargets(&chip->base)))
^
drivers/mtd/nand/raw/internals.h:142:2: note: Returning value, which participates in a condition later
return chip->controller->ops->exec_op(chip, op, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/nand_base.c:1718:9: note: Returning from 'nand_exec_op'
ret = nand_exec_op(chip, &op);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/nand_base.c:1719:7: note: Assuming 'ret' is 0, which participates in a condition later
if (!ret && len && nand_interface_is_nvddr(conf)) {
^~~~
drivers/mtd/nand/raw/nand_base.c:1719:7: note: Left side of '&&' is true
drivers/mtd/nand/raw/nand_base.c:1719:15: note: 'len' is 2
if (!ret && len && nand_interface_is_nvddr(conf)) {
^~~
drivers/mtd/nand/raw/nand_base.c:1719:7: note: Left side of '&&' is true
if (!ret && len && nand_interface_is_nvddr(conf)) {
^
drivers/mtd/nand/raw/nand_base.c:1719:3: note: Taking false branch
if (!ret && len && nand_interface_is_nvddr(conf)) {
^
drivers/mtd/nand/raw/nand_base.c:1726:3: note: Returning without writing to '*'
return ret;
^
drivers/mtd/nand/raw/nand_base.c:1726:3: note: Returning zero (loaded from 'ret'), which participates in a condition later
return ret;
^~~~~~~~~~
drivers/mtd/nand/raw/nand_base.c:5415:9: note: Returning from 'nand_readid_op'
ret = nand_readid_op(chip, 0, id, sizeof(id));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/nand_base.c:5416:7: note: 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/nand_base.c:5416:3: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/nand_base.c:5419:19: note: The right operand of '!=' is a garbage value
if (nand_maf_id != id[0] || nand_dev_id != id[1]) {
^ ~~~~~
drivers/mtd/nand/raw/nand_base.c:5613:22: warning: Value stored to 'nanddev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct nand_device *nanddev = mtd_to_nanddev(mtd);
^~~~~~~ ~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/nand_base.c:5613:22: note: Value stored to 'nanddev' during its initialization is never read
struct nand_device *nanddev = mtd_to_nanddev(mtd);
^~~~~~~ ~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/video/fbdev/via/viafbdev.c:147:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(fix->id, viafb_name);
^~~~~~
drivers/video/fbdev/via/viafbdev.c:147:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(fix->id, viafb_name);
^~~~~~
>> drivers/video/fbdev/via/viafbdev.c:1801:19: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
default_var.yres = default_yres;
^ ~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1723:20: note: 'default_yres' declared without an initial value
u32 default_xres, default_yres;
^~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1728:2: note: Taking false branch
DEBUG_MSG(KERN_INFO "VIAFB PCI Probe!!\n");
^
drivers/video/fbdev/via/debug.h:19:30: note: expanded from macro 'DEBUG_MSG'
#define DEBUG_MSG(f, a...) no_printk(f, ## a)
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
drivers/video/fbdev/via/viafbdev.c:1738:6: note: Assuming 'viafbinfo' is non-null
if (!viafbinfo)
^~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1738:2: note: Taking false branch
if (!viafbinfo)
^
drivers/video/fbdev/via/viafbdev.c:1752:6: note: Assuming 'viafb_dual_fb' is 0
if (viafb_dual_fb)
^~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1752:2: note: Taking false branch
if (viafb_dual_fb)
^
drivers/video/fbdev/via/viafbdev.c:1776:6: note: Assuming 'viafb_accel' is 0
if (viafb_accel && !viafb_setup_engine(viafbinfo)) {
^~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1776:18: note: Left side of '&&' is false
if (viafb_accel && !viafb_setup_engine(viafbinfo)) {
^
drivers/video/fbdev/via/viafbdev.c:1785:6: note: Assuming 'viafb_second_size' is 0
if (viafb_second_size && (viafb_second_size < 8)) {
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1785:24: note: Left side of '&&' is false
if (viafb_second_size && (viafb_second_size < 8)) {
^
drivers/video/fbdev/via/viafbdev.c:1794:2: note: Calling 'parse_mode'
parse_mode(viafb_mode, viaparinfo->shared->iga1_devices,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1630:6: note: Assuming 'str' is non-null
if (!str) {
^~~~
drivers/video/fbdev/via/viafbdev.c:1630:2: note: Taking false branch
if (!str) {
^
drivers/video/fbdev/via/viafbdev.c:1652:6: note: Assuming the condition is true
if (ptr[0] != 'x')
^~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1652:2: note: Taking true branch
if (ptr[0] != 'x')
^
drivers/video/fbdev/via/viafbdev.c:1653:3: note: Returning without writing to '*yres'
return -EINVAL;
^
drivers/video/fbdev/via/viafbdev.c:1794:2: note: Returning from 'parse_mode'
parse_mode(viafb_mode, viaparinfo->shared->iga1_devices,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1796:6: note: Assuming 'viafb_SAMM_ON' is not equal to 1
if (viafb_SAMM_ON == 1)
^~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1796:2: note: Taking false branch
if (viafb_SAMM_ON == 1)
^
drivers/video/fbdev/via/viafbdev.c:1801:19: note: Assigned value is garbage or undefined
default_var.yres = default_yres;
^ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/video/fbdev/via/hw.c:1068:4: warning: Value stored to 'iga1_display_queue_expire_num' is never read [clang-analyzer-deadcode.DeadStores]
iga1_display_queue_expire_num =
^
drivers/video/fbdev/via/hw.c:1068:4: note: Value stored to 'iga1_display_queue_expire_num' is never read
drivers/video/fbdev/via/hw.c:1447:3: warning: Passed-by-value struct argument contains uninitialized data (e.g., field: 'multiplier') [clang-analyzer-core.CallAndMessage]
clock.set_primary_pll(config);
^
drivers/video/fbdev/via/hw.c:1836:7: note: Assuming field 'gfx_chip_name' is not equal to UNICHROME_CLE266
if ((viaparinfo->chip_info->gfx_chip_name == UNICHROME_CLE266
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/hw.c:1836:7: note: Left side of '||' is false
drivers/video/fbdev/via/hw.c:1837:6: note: Assuming field 'gfx_chip_name' is not equal to UNICHROME_K400
|| viaparinfo->chip_info->gfx_chip_name == UNICHROME_K400)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/hw.c:1838:3: note: Left side of '&&' is false
&& viafbinfo->var.xres == 1024 && viafbinfo->var.yres == 768) {
^
drivers/video/fbdev/via/hw.c:1849:26: note: Assuming 'viafb_dual_fb' is 0
via_set_secondary_pitch(viafb_dual_fb ? viafbinfo1->fix.line_length
^~~~~~~~~~~~~
drivers/video/fbdev/via/hw.c:1849:26: note: '?' condition is false
drivers/video/fbdev/via/hw.c:1852:32: note: Assuming 'viafb_dual_fb' is 0
via_set_secondary_color_depth(viafb_dual_fb ? viaparinfo1->depth
^~~~~~~~~~~~~
drivers/video/fbdev/via/hw.c:1852:32: note: '?' condition is false
drivers/video/fbdev/via/hw.c:1856:6: note: Assuming field 'iga2_devices' is 0
if (viaparinfo->shared->iga2_devices)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/hw.c:1856:2: note: Taking false branch
--
include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
include/linux/skbuff.h:1860:6: note: Assuming 'skb' is equal to 'list_'
if (skb == (struct sk_buff *)list_)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:1860:2: note: Taking true branch
if (skb == (struct sk_buff *)list_)
^
include/linux/skbuff.h:1862:2: note: Returning null pointer (loaded from 'skb'), which participates in a condition later
return skb;
^~~~~~~~~~
net/mac80211/rx.c:1109:25: note: Returning from 'skb_peek_tail'
struct sk_buff *tail = skb_peek_tail(frames);
^~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1112:6: note: Assuming the condition is false
if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1112:2: note: Taking false branch
if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
^
net/mac80211/rx.c:1115:7: note: 'tail' is null
if (!tail)
^~~~
net/mac80211/rx.c:1115:2: note: Taking true branch
if (!tail)
^
net/mac80211/rx.c:1116:3: note: Returning without writing to 'tid_agg_rx->stored_mpdu_num', which participates in a condition later
return false;
^
net/mac80211/rx.c:1116:3: note: Returning without writing to 'tid_agg_rx->buf_size'
net/mac80211/rx.c:1116:3: note: Returning zero, which participates in a condition later
return false;
^~~~~~~~~~~~
net/mac80211/rx.c:1194:7: note: Returning from 'ieee80211_rx_reorder_ready'
if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1194:6: note: Left side of '&&' is true
if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
^
net/mac80211/rx.c:1195:6: note: Assuming field 'stored_mpdu_num' is not equal to 0
tid_agg_rx->stored_mpdu_num) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1194:2: note: Taking true branch
if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
^
net/mac80211/rx.c:1201:48: note: Assuming 'j' is equal to 'index'
for (j = (index + 1) % tid_agg_rx->buf_size; j != index;
^~~~~~~~~~
net/mac80211/rx.c:1201:3: note: Loop condition is false. Execution continues on line 1236
for (j = (index + 1) % tid_agg_rx->buf_size; j != index;
^
net/mac80211/rx.c:1236:18: note: Field 'stored_mpdu_num' is not equal to 0
if (tid_agg_rx->stored_mpdu_num) {
^
net/mac80211/rx.c:1236:2: note: Taking true branch
if (tid_agg_rx->stored_mpdu_num) {
^
net/mac80211/rx.c:1239:10: note: Assuming the condition is true
for (; j != (index - 1) % tid_agg_rx->buf_size;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1239:3: note: Loop condition is true. Entering loop body
for (; j != (index - 1) % tid_agg_rx->buf_size;
^
net/mac80211/rx.c:1241:8: note: Calling 'ieee80211_rx_reorder_ready'
if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1112:2: note: Taking false branch
if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
^
net/mac80211/rx.c:1115:6: note: Assuming 'tail' is null, which participates in a condition later
if (!tail)
^~~~~
net/mac80211/rx.c:1115:2: note: Taking true branch
if (!tail)
^
net/mac80211/rx.c:1116:3: note: Returning without writing to 'tid_agg_rx->buf_size'
return false;
^
net/mac80211/rx.c:1116:3: note: Returning zero, which participates in a condition later
return false;
^~~~~~~~~~~~
net/mac80211/rx.c:1241:8: note: Returning from 'ieee80211_rx_reorder_ready'
if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1241:4: note: Taking false branch
if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
^
net/mac80211/rx.c:1240:20: note: Division by zero
j = (j + 1) % tid_agg_rx->buf_size) {
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
>> net/mac80211/rx.c:5009:2: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:716:7: note: expanded from macro 'list_for_each_entry_safe'
n = list_next_entry(pos, member); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:494:2: note: expanded from macro 'container_of'
void *__mptr = (void *)(ptr); \
^ ~~~~~~~~~~~~~
net/mac80211/rx.c:5001:2: note: Calling 'ieee80211_rx_list'
ieee80211_rx_list(hw, pubsta, skb, &list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:4876:2: note: Assuming '__ret_warn_on' is not equal to 0
WARN_ON_ONCE(softirq_count() == 0);
^
include/asm-generic/bug.h:179:33: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:167:2: note: expanded from macro 'WARN_ON'
unlikely(__ret_warn_on); \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
net/mac80211/rx.c:4878:14: note: Assuming field 'band' is >= NUM_NL80211_BANDS
if (WARN_ON(status->band >= NUM_NL80211_BANDS))
^
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
net/mac80211/rx.c:4878:2: note: Taking true branch
if (WARN_ON(status->band >= NUM_NL80211_BANDS))
^
net/mac80211/rx.c:4879:3: note: Control jumps to line 4984
goto drop;
^
net/mac80211/rx.c:5001:2: note: Returning from 'ieee80211_rx_list'
ieee80211_rx_list(hw, pubsta, skb, &list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:5004:6: note: Assuming 'napi' is non-null
if (!napi) {
^~~~~
net/mac80211/rx.c:5004:2: note: Taking false branch
if (!napi) {
^
net/mac80211/rx.c:5009:2: note: Left side of '&&' is false
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
net/mac80211/rx.c:5009:2: note: Taking false branch
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
net/mac80211/rx.c:5009:2: note: Loop condition is false. Exiting loop
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
--
^~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:180:46: note: expanded from macro 'WARN_ONCE'
#define WARN_ONCE(condition, format...) WARN(condition, format)
^~~~~~~~~
include/asm-generic/bug.h:173:25: note: expanded from macro 'WARN'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
net/core/dev.c:8190:2: note: Taking false branch
ASSERT_RTNL();
^
include/linux/rtnetlink.h:110:2: note: expanded from macro 'ASSERT_RTNL'
WARN_ONCE(!rtnl_is_locked(), \
^
include/asm-generic/bug.h:180:41: note: expanded from macro 'WARN_ONCE'
#define WARN_ONCE(condition, format...) WARN(condition, format)
^
include/asm-generic/bug.h:174:2: note: expanded from macro 'WARN'
no_printk(format); \
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
net/core/dev.c:8192:28: note: Assuming pointer value is null
changeupper_info.master = netdev_master_upper_dev_get(dev) == upper_dev;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:8197:46: note: Passing null pointer value via 2nd parameter 'upper_dev'
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
^~~~~~~~~
net/core/dev.c:8197:2: note: Calling '__netdev_adjacent_dev_unlink_neighbour'
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:8047:42: note: Passing null pointer value via 2nd parameter 'upper_dev'
__netdev_adjacent_dev_unlink_lists(dev, upper_dev, 1,
^~~~~~~~~
net/core/dev.c:8047:2: note: Calling '__netdev_adjacent_dev_unlink_lists'
__netdev_adjacent_dev_unlink_lists(dev, upper_dev, 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:8030:36: note: Passing null pointer value via 2nd parameter 'adj_dev'
__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
^~~~~~~~~
net/core/dev.c:8030:2: note: Calling '__netdev_adjacent_dev_remove'
__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:7968:2: note: Taking false branch
pr_debug("Remove adjacency: dev %s adj_dev %s ref_nr %d\n",
^
include/linux/printk.h:576:2: note: expanded from macro 'pr_debug'
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
net/core/dev.c:7973:6: note: Assuming 'adj' is non-null
if (!adj) {
^~~~
net/core/dev.c:7973:2: note: Taking false branch
if (!adj) {
^
net/core/dev.c:7980:6: note: Assuming 'ref_nr' is >= field 'ref_nr'
if (adj->ref_nr > ref_nr) {
^~~~~~~~~~~~~~~~~~~~
net/core/dev.c:7980:2: note: Taking false branch
if (adj->ref_nr > ref_nr) {
^
net/core/dev.c:7988:6: note: Assuming field 'master' is false
if (adj->master)
^~~~~~~~~~~
net/core/dev.c:7988:2: note: Taking false branch
if (adj->master)
^
net/core/dev.c:7991:41: note: Passing null pointer value via 2nd parameter 'adj_dev'
if (netdev_adjacent_is_neigh_list(dev, adj_dev, dev_list))
^~~~~~~
net/core/dev.c:7991:6: note: Calling 'netdev_adjacent_is_neigh_list'
if (netdev_adjacent_is_neigh_list(dev, adj_dev, dev_list))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:7894:43: note: Left side of '||' is true
return (dev_list == &dev->adj_list.upper ||
^
net/core/dev.c:7896:32: note: Passing null pointer value via 1st parameter 'dev'
net_eq(dev_net(dev), dev_net(adj_dev));
^~~~~~~
net/core/dev.c:7896:24: note: Calling 'dev_net'
net_eq(dev_net(dev), dev_net(adj_dev));
^~~~~~~~~~~~~~~~
include/linux/netdevice.h:2432:19: note: Passing null pointer value via 1st parameter 'pnet'
return read_pnet(&dev->nd_net);
^~~~~~~~~~~~
include/linux/netdevice.h:2432:9: note: Calling 'read_pnet'
return read_pnet(&dev->nd_net);
^~~~~~~~~~~~~~~~~~~~~~~
include/net/net_namespace.h:327:9: note: Access to field 'net' results in a dereference of a null pointer (loaded from variable 'pnet')
return pnet->net;
^~~~
net/core/dev.c:958:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(name, dev->name);
^~~~~~
net/core/dev.c:958:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(name, dev->name);
^~~~~~
>> net/core/dev.c:3191:4: warning: Value stored to 'name' is never read [clang-analyzer-deadcode.DeadStores]
name = dev_driver_string(dev->dev.parent);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:3191:4: note: Value stored to 'name' is never read
name = dev_driver_string(dev->dev.parent);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:3193:4: warning: Value stored to 'name' is never read [clang-analyzer-deadcode.DeadStores]
name = netdev_name(dev);
^ ~~~~~~~~~~~~~~~~
net/core/dev.c:3193:4: note: Value stored to 'name' is never read
name = netdev_name(dev);
^ ~~~~~~~~~~~~~~~~
net/core/dev.c:5996:2: warning: Null pointer passed as 2nd argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(skb_tail_pointer(skb), NAPI_GRO_CB(skb)->frag0, grow);
^
net/core/dev.c:6327:24: note: Calling 'napi_frags_skb'
struct sk_buff *skb = napi_frags_skb(napi);
^~~~~~~~~~~~~~~~~~~~
net/core/dev.c:6298:15: note: Calling 'skb_gro_header_hard'
if (unlikely(skb_gro_header_hard(skb, hlen))) {
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/core/dev.c:6298:15: note: Returning from 'skb_gro_header_hard'
if (unlikely(skb_gro_header_hard(skb, hlen))) {
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/core/dev.c:6298:2: note: Taking true branch
if (unlikely(skb_gro_header_hard(skb, hlen))) {
^
net/core/dev.c:6299:9: note: Calling 'skb_gro_header_slow'
eth = skb_gro_header_slow(skb, hlen, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/netdevice.h:3045:7: note: Calling 'pskb_may_pull'
if (!pskb_may_pull(skb, hlen))
^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2356:13: note: Assuming the condition is true
if (likely(len <= skb_headlen(skb)))
^
include/linux/compiler.h:77:40: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^
include/linux/skbuff.h:2356:2: note: Taking true branch
if (likely(len <= skb_headlen(skb)))
^
include/linux/netdevice.h:3045:7: note: Returning from 'pskb_may_pull'
if (!pskb_may_pull(skb, hlen))
^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/netdevice.h:3045:2: note: Taking false branch
if (!pskb_may_pull(skb, hlen))
^
include/linux/netdevice.h:3048:2: note: Calling 'skb_gro_frag0_invalidate'
skb_gro_frag0_invalidate(skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/netdevice.h:3038:2: note: Null pointer value stored to field 'frag0'
NAPI_GRO_CB(skb)->frag0 = NULL;
^
include/linux/netdevice.h:2590:26: note: expanded from macro 'NAPI_GRO_CB'
#define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb)
^
include/linux/netdevice.h:3048:2: note: Returning from 'skb_gro_frag0_invalidate'
skb_gro_frag0_invalidate(skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:6299:9: note: Returning from 'skb_gro_header_slow'
eth = skb_gro_header_slow(skb, hlen, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:6300:16: note: Assuming 'eth' is non-null
if (unlikely(!eth)) {
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/core/dev.c:6300:3: note: Taking false branch
if (unlikely(!eth)) {
^
net/core/dev.c:6312:2: note: Calling '__skb_pull'
__skb_pull(skb, hlen);
^~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2329:9: note: Assuming field 'len' is >= field 'data_len'
BUG_ON(skb->len < skb->data_len);
^
include/asm-generic/bug.h:161:45: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^~~~~~~~~
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/skbuff.h:2329:2: note: Taking false branch
BUG_ON(skb->len < skb->data_len);
^
include/asm-generic/bug.h:161:32: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^
include/linux/skbuff.h:2329:2: note: Loop condition is false. Exiting loop
BUG_ON(skb->len < skb->data_len);
^
include/asm-generic/bug.h:161:27: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
--
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:31:2: note: Taking false branch
if (!(x & 0xc0000000u)) {
^
include/asm-generic/bitops/fls.h:35:6: note: Assuming the condition is false
if (!(x & 0x80000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:35:2: note: Taking false branch
if (!(x & 0x80000000u)) {
^
include/asm-generic/bitops/fls.h:39:2: note: Returning the value 32 (loaded from 'r')
return r;
^~~~~~~~
include/linux/bitops.h:189:10: note: Returning from 'fls'
return fls(l);
^~~~~~
include/linux/bitops.h:189:3: note: Returning the value 32
return fls(l);
^~~~~~~~~~~~~
include/linux/log2.h:57:16: note: Returning from 'fls_long'
return 1UL << fls_long(n - 1);
^~~~~~~~~~~~~~~
include/linux/log2.h:57:13: note: 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'
return 1UL << fls_long(n - 1);
^ ~~~~~~~~~~~~~~~
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.
18 warnings generated.
init/main.c:647:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(saved_command_line, extra_command_line);
^~~~~~
init/main.c:647:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(saved_command_line, extra_command_line);
^~~~~~
init/main.c:648:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(static_command_line, extra_command_line);
^~~~~~
init/main.c:648:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(static_command_line, extra_command_line);
^~~~~~
init/main.c:650:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(saved_command_line + xlen, boot_command_line);
^~~~~~
init/main.c:650:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(saved_command_line + xlen, boot_command_line);
^~~~~~
init/main.c:651:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(static_command_line + xlen, command_line);
^~~~~~
init/main.c:651:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(static_command_line + xlen, command_line);
^~~~~~
init/main.c:663:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(saved_command_line + len, extra_init_args);
^~~~~~
init/main.c:663:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(saved_command_line + len, extra_init_args);
^~~~~~
init/main.c:665:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(saved_command_line + len,
^~~~~~
init/main.c:665:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(saved_command_line + len,
^~~~~~
init/main.c:669:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(saved_command_line + len, " -- ");
^~~~~~
init/main.c:669:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(saved_command_line + len, " -- ");
^~~~~~
init/main.c:671:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(saved_command_line + len, extra_init_args);
^~~~~~
init/main.c:671:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(saved_command_line + len, extra_init_args);
^~~~~~
init/main.c:1191:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(entry->buf, str_entry);
^~~~~~
init/main.c:1191:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(entry->buf, str_entry);
^~~~~~
init/main.c:1391:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(command_line, saved_command_line);
^~~~~~
init/main.c:1391:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(command_line, saved_command_line);
^~~~~~
Suppressed 8 warnings (5 in non-user code, 3 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.
4 warnings generated.
>> drivers/clk/mmp/clk-mix.c:193:3: warning: Value stored to 'fc_req' is never read [clang-analyzer-deadcode.DeadStores]
fc_req &= ~(1 << ri->bit_fc);
^ ~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:193:3: note: Value stored to 'fc_req' is never read
fc_req &= ~(1 << ri->bit_fc);
^ ~~~~~~~~~~~~~~~~~~
>> drivers/clk/mmp/clk-mix.c:345:21: warning: Division by zero [clang-analyzer-core.DivideZero]
return parent_rate / div;
~~~~~~~~~~~~^~~~~
drivers/clk/mmp/clk-mix.c:321:28: note: Left side of '&&' is false
struct mmp_clk_mix *mix = to_clk_mix(hw);
^
drivers/clk/mmp/clk-mix.c:25:24: note: expanded from macro 'to_clk_mix'
#define to_clk_mix(hw) container_of(hw, struct mmp_clk_mix, hw)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/clk/mmp/clk-mix.c:321:28: note: Taking false branch
struct mmp_clk_mix *mix = to_clk_mix(hw);
^
drivers/clk/mmp/clk-mix.c:25:24: note: expanded from macro 'to_clk_mix'
#define to_clk_mix(hw) container_of(hw, struct mmp_clk_mix, hw)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/clk/mmp/clk-mix.c:321:28: note: Loop condition is false. Exiting loop
struct mmp_clk_mix *mix = to_clk_mix(hw);
^
drivers/clk/mmp/clk-mix.c:25:24: note: expanded from macro 'to_clk_mix'
#define to_clk_mix(hw) container_of(hw, struct mmp_clk_mix, hw)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/clk/mmp/clk-mix.c:328:6: note: Assuming field 'lock' is null
if (mix->lock)
^~~~~~~~~
drivers/clk/mmp/clk-mix.c:328:2: note: Taking false branch
if (mix->lock)
^
drivers/clk/mmp/clk-mix.c:331:6: note: Assuming field 'type' is not equal to MMP_CLK_MIX_TYPE_V1
if (mix->type == MMP_CLK_MIX_TYPE_V1
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:331:6: note: Left side of '||' is false
drivers/clk/mmp/clk-mix.c:332:6: note: Assuming field 'type' is not equal to MMP_CLK_MIX_TYPE_V2
|| mix->type == MMP_CLK_MIX_TYPE_V2)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:331:2: note: Taking false branch
if (mix->type == MMP_CLK_MIX_TYPE_V1
^
drivers/clk/mmp/clk-mix.c:337:11: note: Field 'lock' is null
if (mix->lock)
^
drivers/clk/mmp/clk-mix.c:337:2: note: Taking false branch
if (mix->lock)
^
drivers/clk/mmp/clk-mix.c:343:8: note: Calling '_get_div'
div = _get_div(mix, MMP_CLK_BITS_GET_VAL(mux_div, width, shift));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:50:6: note: Assuming the condition is false
if (mix->div_flags & CLK_DIVIDER_ONE_BASED)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:50:2: note: Taking false branch
if (mix->div_flags & CLK_DIVIDER_ONE_BASED)
^
drivers/clk/mmp/clk-mix.c:52:6: note: Assuming the condition is false
if (mix->div_flags & CLK_DIVIDER_POWER_OF_TWO)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:52:2: note: Taking false branch
if (mix->div_flags & CLK_DIVIDER_POWER_OF_TWO)
^
drivers/clk/mmp/clk-mix.c:54:6: note: Assuming field 'div_table' is non-null
if (mix->div_table) {
^~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:54:2: note: Taking true branch
if (mix->div_table) {
^
drivers/clk/mmp/clk-mix.c:55:3: note: Loop condition is false. Execution continues on line 58
for (clkt = mix->div_table; clkt->div; clkt++)
^
drivers/clk/mmp/clk-mix.c:58:13: note: Field 'div' is equal to 0
if (clkt->div == 0)
^
drivers/clk/mmp/clk-mix.c:58:3: note: Taking true branch
if (clkt->div == 0)
^
drivers/clk/mmp/clk-mix.c:59:4: note: Returning zero
return 0;
^~~~~~~~
drivers/clk/mmp/clk-mix.c:343:8: note: Returning from '_get_div'
div = _get_div(mix, MMP_CLK_BITS_GET_VAL(mux_div, width, shift));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:343:2: note: The value 0 is assigned to 'div'
div = _get_div(mix, MMP_CLK_BITS_GET_VAL(mux_div, width, shift));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/mmp/clk-mix.c:345:21: note: Division by zero
return parent_rate / div;
~~~~~~~~~~~~^~~~~
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/pci/controller/pci-rcar-gen2.c:225:3: warning: Value stored to 'window_size' is never read [clang-analyzer-deadcode.DeadStores]
window_size = SZ_256M;
^
drivers/pci/controller/pci-rcar-gen2.c:225:3: note: Value stored to 'window_size' is never read
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.
include/linux/log2.h:57:13: 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]
return 1UL << fls_long(n - 1);
^
drivers/pci/controller/pcie-rcar.c:79:6: note: Assuming 'size' is > 128
if (size > 128)
^~~~~~~~~~
drivers/pci/controller/pcie-rcar.c:79:2: note: Taking true branch
if (size > 128)
^
drivers/pci/controller/pcie-rcar.c:80:11: note: '?' condition is false
mask = (roundup_pow_of_two(size) / SZ_128) - 1;
^
include/linux/log2.h:176:2: note: expanded from macro 'roundup_pow_of_two'
__builtin_constant_p(n) ? ( \
^
drivers/pci/controller/pcie-rcar.c:80:11: note: Calling '__roundup_pow_of_two'
mask = (roundup_pow_of_two(size) / SZ_128) - 1;
^
include/linux/log2.h:180:2: note: expanded from macro 'roundup_pow_of_two'
__roundup_pow_of_two(n) \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/log2.h:57:16: note: Calling 'fls_long'
return 1UL << fls_long(n - 1);
^~~~~~~~~~~~~~~
include/linux/bitops.h:188:2: note: Taking true branch
if (sizeof(l) == 4)
^
include/linux/bitops.h:189:10: note: Calling 'fls'
return fls(l);
^~~~~~
include/asm-generic/bitops/fls.h:15:2: note: 'r' initialized to 32
int r = 32;
^~~~~
include/asm-generic/bitops/fls.h:17:7: note: 'x' is not equal to 0, which participates in a condition later
if (!x)
^
include/asm-generic/bitops/fls.h:17:2: note: Taking false branch
if (!x)
^
include/asm-generic/bitops/fls.h:19:6: note: Assuming the condition is false
if (!(x & 0xffff0000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:19:2: note: Taking false branch
if (!(x & 0xffff0000u)) {
^
include/asm-generic/bitops/fls.h:23:6: note: Assuming the condition is false
if (!(x & 0xff000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:23:2: note: Taking false branch
if (!(x & 0xff000000u)) {
^
include/asm-generic/bitops/fls.h:27:6: note: Assuming the condition is false
if (!(x & 0xf0000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:27:2: note: Taking false branch
if (!(x & 0xf0000000u)) {
^
include/asm-generic/bitops/fls.h:31:6: note: Assuming the condition is false
if (!(x & 0xc0000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:31:2: note: Taking false branch
if (!(x & 0xc0000000u)) {
^
include/asm-generic/bitops/fls.h:35:6: note: Assuming the condition is false
if (!(x & 0x80000000u)) {
^~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/fls.h:35:2: note: Taking false branch
if (!(x & 0x80000000u)) {
^
include/asm-generic/bitops/fls.h:39:2: note: Returning the value 32 (loaded from 'r')
return r;
^~~~~~~~
include/linux/bitops.h:189:10: note: Returning from 'fls'
return fls(l);
^~~~~~
include/linux/bitops.h:189:3: note: Returning the value 32
return fls(l);
^~~~~~~~~~~~~
include/linux/log2.h:57:16: note: Returning from 'fls_long'
return 1UL << fls_long(n - 1);
^~~~~~~~~~~~~~~
include/linux/log2.h:57:13: note: 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'
return 1UL << fls_long(n - 1);
^ ~~~~~~~~~~~~~~~
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 (3 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/pci/controller/dwc/pci-imx6.c:279:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
--
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1060:3: note: Loop condition is false. Exiting loop
raw_spin_lock_init(&bank->slock);
^
include/linux/spinlock.h:103:39: note: expanded from macro 'raw_spin_lock_init'
# define raw_spin_lock_init(lock) \
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1065:19: note: Assigned value is garbage or undefined
bank->eint_base = virt_base[0];
^ ~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1073:15: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
d->virt_base = virt_base[0];
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1102:6: note: Assuming 'drvdata' is non-null
if (!drvdata)
^~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1102:2: note: Taking false branch
if (!drvdata)
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1105:9: note: Calling 'samsung_pinctrl_get_soc_data'
ctrl = samsung_pinctrl_get_soc_data(drvdata, pdev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1019:9: note: Calling 'samsung_pinctrl_get_soc_data_for_of_alias'
ctrl = samsung_pinctrl_get_soc_data_for_of_alias(pdev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:991:6: note: Assuming 'id' is >= 0
if (id < 0) {
^~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:991:2: note: Taking false branch
if (id < 0) {
^
drivers/pinctrl/samsung/pinctrl-samsung.c:997:6: note: Assuming 'id' is < field 'num_ctrl'
if (id >= of_data->num_ctrl) {
^~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:997:2: note: Taking false branch
if (id >= of_data->num_ctrl) {
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1002:2: note: Returning pointer, which participates in a condition later
return &(of_data->ctrl[id]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1019:9: note: Returning from 'samsung_pinctrl_get_soc_data_for_of_alias'
ctrl = samsung_pinctrl_get_soc_data_for_of_alias(pdev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1020:6: note: Assuming 'ctrl' is non-null
if (!ctrl)
^~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1020:2: note: Taking false branch
if (!ctrl)
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1026:17: note: Calling 'devm_kcalloc'
d->pin_banks = devm_kcalloc(&pdev->dev, d->nr_banks,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:223:9: note: Calling 'devm_kmalloc_array'
return devm_kmalloc_array(dev, n, size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:215:2: note: Taking false branch
if (unlikely(check_mul_overflow(n, size, &bytes)))
^
include/linux/device.h:218:2: note: Returning pointer, which participates in a condition later
return devm_kmalloc(dev, bytes, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:223:9: note: Returning from 'devm_kmalloc_array'
return devm_kmalloc_array(dev, n, size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/device.h:223:2: note: Returning pointer, which participates in a condition later
return devm_kmalloc_array(dev, n, size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1026:17: note: Returning from 'devm_kcalloc'
d->pin_banks = devm_kcalloc(&pdev->dev, d->nr_banks,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1028:6: note: Assuming field 'pin_banks' is non-null
if (!d->pin_banks)
^~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1028:2: note: Taking false branch
if (!d->pin_banks)
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1031:6: note: Assuming the condition is false
if (ctrl->nr_ext_resources + 1 > SAMSUNG_PINCTRL_NUM_RESOURCES)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1031:2: note: Taking false branch
if (ctrl->nr_ext_resources + 1 > SAMSUNG_PINCTRL_NUM_RESOURCES)
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1034:14: note: Assuming the condition is false
for (i = 0; i < ctrl->nr_ext_resources + 1; i++) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1034:2: note: Loop condition is false. Execution continues on line 1048
for (i = 0; i < ctrl->nr_ext_resources + 1; i++) {
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1050:14: note: Assuming 'i' is >= field 'nr_banks'
for (i = 0; i < ctrl->nr_banks; ++i, ++bdata, ++bank) {
^~~~~~~~~~~~~~~~~~
drivers/pinctrl/samsung/pinctrl-samsung.c:1050:2: note: Loop condition is false. Execution continues on line 1073
for (i = 0; i < ctrl->nr_banks; ++i, ++bdata, ++bank) {
^
drivers/pinctrl/samsung/pinctrl-samsung.c:1073:15: note: Assigned value is garbage or undefined
d->virt_base = virt_base[0];
^ ~~~~~~~~~~~~
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.
4 warnings generated.
>> drivers/clk/clk-vt8500.c:301:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-vt8500.c:301:2: note: Value stored to 'rc' is never read
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-vt8500.c:715:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, hw);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/clk-vt8500.c:715:2: note: Value stored to 'rc' is never read
rc = of_clk_add_hw_provider(node, of_clk_hw_simple_get, 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.
4 warnings generated.
drivers/clk/actions/owl-pll.c:28:9: warning: Although the value stored to 'mul' is used in the enclosing expression, the value is never actually read from 'mul' [clang-analyzer-deadcode.DeadStores]
return mul &= mul_mask(pll_hw);
^
drivers/clk/actions/owl-pll.c:28:9: note: Although the value stored to 'mul' is used in the enclosing expression, the value is never actually read from 'mul'
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.
9 warnings generated.
kernel/rcu/refscale.c:619:4: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "\n");
^~~~~~
kernel/rcu/refscale.c:619:4: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
strcat(buf, "\n");
^~~~~~
kernel/rcu/refscale.c:620:3: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, buf1);
^~~~~~
kernel/rcu/refscale.c:620:3: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
strcat(buf, buf1);
^~~~~~
kernel/rcu/refscale.c:624:2: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "\n");
^~~~~~
kernel/rcu/refscale.c:624:2: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
strcat(buf, "\n");
^~~~~~
kernel/rcu/refscale.c:703:3: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "\n");
^~~~~~
kernel/rcu/refscale.c:703:3: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
strcat(buf, "\n");
^~~~~~
kernel/rcu/refscale.c:704:3: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "Runs\tTime(ns)\n");
^~~~~~
kernel/rcu/refscale.c:704:3: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
strcat(buf, "Runs\tTime(ns)\n");
^~~~~~
kernel/rcu/refscale.c:715:3: warning: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, buf1);
^~~~~~
kernel/rcu/refscale.c:715:3: note: Call to function 'strcat' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcat'. CWE-119
strcat(buf, buf1);
^~~~~~
Suppressed 3 warnings (3 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.
Suppressed 3 warnings (3 in non-user code).
--
include/drm/drm_drv.h:581:2: note: Returning the value 1, which participates in a condition later
return drm_core_check_all_features(dev, feature);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_bufs.c:1122:7: note: Returning from 'drm_core_check_feature'
if (!drm_core_check_feature(dev, DRIVER_SG))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_bufs.c:1122:2: note: Taking false branch
if (!drm_core_check_feature(dev, DRIVER_SG))
^
drivers/gpu/drm/drm_bufs.c:1125:6: note: Assuming 'dma' is non-null
if (!dma)
^~~~
drivers/gpu/drm/drm_bufs.c:1125:2: note: Taking false branch
if (!dma)
^
drivers/gpu/drm/drm_bufs.c:1128:6: note: Assuming the condition is false
if (!capable(CAP_SYS_ADMIN))
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_bufs.c:1128:2: note: Taking false branch
if (!capable(CAP_SYS_ADMIN))
^
drivers/gpu/drm/drm_bufs.c:1132:10: note: '?' condition is false
order = order_base_2(request->size);
^
include/linux/log2.h:219:2: note: expanded from macro 'order_base_2'
__builtin_constant_p(n) ? ( \
^
drivers/gpu/drm/drm_bufs.c:1132:10: note: Calling '__order_base_2'
order = order_base_2(request->size);
^
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
return n > 1 ? ilog2(n - 1) + 1 : 0;
^
include/linux/log2.h:158:2: note: expanded from macro 'ilog2'
__builtin_constant_p(n) ? \
^
include/linux/log2.h:201:17: note: '?' condition is true
return n > 1 ? ilog2(n - 1) + 1 : 0;
^
include/linux/log2.h:161:2: note: expanded from macro 'ilog2'
(sizeof(n) <= 4) ? \
^
include/linux/log2.h:201:2: note: Returning the value 32
return n > 1 ? ilog2(n - 1) + 1 : 0;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_bufs.c:1132:10: note: Returning from '__order_base_2'
order = order_base_2(request->size);
^
include/linux/log2.h:222:2: note: expanded from macro 'order_base_2'
__order_base_2(n) \
^~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_bufs.c:1132:2: note: The value 32 is assigned to 'order'
order = order_base_2(request->size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_bufs.c:1133:11: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'int'
size = 1 << order;
^ ~~~~~
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.
8 warnings generated.
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1284:8: warning: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data' [clang-analyzer-deadcode.DeadStores]
if (!(data = nvbios_M0205Ep(bios, i, &ver, &hdr, &cnt, &len, &M0205E)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1284:8: note: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data'
if (!(data = nvbios_M0205Ep(bios, i, &ver, &hdr, &cnt, &len, &M0205E)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1300:8: warning: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data' [clang-analyzer-deadcode.DeadStores]
if (!(data = nvbios_M0205Sp(bios, i, ramcfg, &ver, &hdr, &M0205S)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1300:8: note: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data'
if (!(data = nvbios_M0205Sp(bios, i, ramcfg, &ver, &hdr, &M0205S)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1305:8: warning: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data' [clang-analyzer-deadcode.DeadStores]
if (!(data = nvbios_M0209Ep(bios, i, &ver, &hdr, &cnt, &len, &M0209E)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1305:8: note: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data'
if (!(data = nvbios_M0209Ep(bios, i, &ver, &hdr, &cnt, &len, &M0209E)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1309:8: warning: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data' [clang-analyzer-deadcode.DeadStores]
if (!(data = nvbios_M0209Sp(bios, i, 0, &ver, &hdr, value)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1309:8: note: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data'
if (!(data = nvbios_M0209Sp(bios, i, 0, &ver, &hdr, value)))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1317:9: warning: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data' [clang-analyzer-deadcode.DeadStores]
if (!(data = nvbios_M0209Sp(bios, M0209E.v03, 0, &ver, &hdr,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c:1317:9: note: Although the value stored to 'data' is used in the enclosing expression, the value is never actually read from 'data'
if (!(data = nvbios_M0209Sp(bios, M0209E.v03, 0, &ver, &hdr,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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/dma/stm32-dma.c:1094:23: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
return (dma_smar == sg_req->chan_reg.dma_sm0ar);
^
drivers/dma/stm32-dma.c:1179:6: note: 'status' is not equal to DMA_COMPLETE
if (status == DMA_COMPLETE || !state)
^~~~~~
drivers/dma/stm32-dma.c:1179:6: note: Left side of '||' is false
drivers/dma/stm32-dma.c:1179:33: note: 'state' is non-null
if (status == DMA_COMPLETE || !state)
^~~~~
drivers/dma/stm32-dma.c:1179:2: note: Taking false branch
if (status == DMA_COMPLETE || !state)
^
drivers/dma/stm32-dma.c:1182:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&chan->vchan.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/dma/stm32-dma.c:1182:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&chan->vchan.lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/dma/stm32-dma.c:1183:10: note: Value assigned to field 'desc'
vdesc = vchan_find_desc(&chan->vchan, cookie);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1184:6: note: Assuming field 'desc' is null
if (chan->desc && cookie == chan->desc->vdesc.tx.cookie)
^~~~~~~~~~
drivers/dma/stm32-dma.c:1184:17: note: Left side of '&&' is false
if (chan->desc && cookie == chan->desc->vdesc.tx.cookie)
^
drivers/dma/stm32-dma.c:1187:11: note: Assuming 'vdesc' is non-null
else if (vdesc)
^~~~~
drivers/dma/stm32-dma.c:1187:7: note: Taking true branch
else if (vdesc)
^
drivers/dma/stm32-dma.c:1188:13: note: Calling 'stm32_dma_desc_residue'
residue = stm32_dma_desc_residue(chan,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1137:12: note: Calling 'stm32_dma_get_remaining_bytes'
residue = stm32_dma_get_remaining_bytes(chan);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1057:36: note: Calling 'stm32_dma_get_dev'
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:223:9: note: Left side of '&&' is false
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/dma/stm32-dma.c:223:9: note: Taking false branch
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/dma/stm32-dma.c:223:9: note: Loop condition is false. Exiting loop
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/dma/stm32-dma.c:223:2: note: Returning without writing to 'chan->desc'
return container_of(chan->vchan.chan.device, struct stm32_dma_device,
^
drivers/dma/stm32-dma.c:1057:36: note: Returning from 'stm32_dma_get_dev'
struct stm32_dma_device *dmadev = stm32_dma_get_dev(chan);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/stm32-dma.c:1063:2: note: Returning without writing to 'chan->desc'
--
^
include/linux/list.h:716:7: note: expanded from macro 'list_for_each_entry_safe'
n = list_next_entry(pos, member); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:494:25: note: expanded from macro 'container_of'
void *__mptr = (void *)(ptr); \
^~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/gpu/drm/mgag200/mgag200_mode.c:98:2: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
status = 0;
^ ~
drivers/gpu/drm/mgag200/mgag200_mode.c:98:2: note: Value stored to 'status' is never read
status = 0;
^ ~
>> drivers/gpu/drm/mgag200/mgag200_mode.c:220:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_mode.c:220:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_mode.c:480:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_mode.c:480:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
Suppressed 3 warnings (3 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/gpu/drm/mgag200/mgag200_pll.c:204:14: warning: Although the value stored to 's' is used in the enclosing expression, the value is never actually read from 's' [clang-analyzer-deadcode.DeadStores]
m = n = p = s = 0;
^ ~
drivers/gpu/drm/mgag200/mgag200_pll.c:204:14: note: Although the value stored to 's' is used in the enclosing expression, the value is never actually read from 's'
m = n = p = s = 0;
^ ~
drivers/gpu/drm/mgag200/mgag200_pll.c:953:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
drivers/gpu/drm/mgag200/mgag200_pll.c:953:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &mdev->base;
^~~ ~~~~~~~~~~~
Suppressed 3 warnings (3 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.
8 warnings generated.
drivers/bus/mhi/core/boot.c:28:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:28:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:121:3: warning: Value stored to 'ee' is never read [clang-analyzer-deadcode.DeadStores]
ee = mhi_get_exec_env(mhi_cntrl);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:121:3: note: Value stored to 'ee' is never read
ee = mhi_get_exec_env(mhi_cntrl);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:143:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = mhi_read_reg(mhi_cntrl, base, BHIE_RXVECSTATUS_OFFS, &rx_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:143:2: note: Value stored to 'ret' is never read
ret = mhi_read_reg(mhi_cntrl, base, BHIE_RXVECSTATUS_OFFS, &rx_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:158:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:158:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:183:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bus/mhi/core/boot.c:183:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &mhi_cntrl->mhi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/phy/phy-core.c:307:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = 0; /* Override possible ret == -ENOTSUPP */
^ ~
drivers/phy/phy-core.c:307:2: note: Value stored to 'ret' is never read
ret = 0; /* Override possible ret == -ENOTSUPP */
^ ~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
fs/fscache/object.c:450:25: warning: Value stored to 'cookie' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct fscache_cookie *cookie = object->cookie;
^~~~~~ ~~~~~~~~~~~~~~
fs/fscache/object.c:450:25: note: Value stored to 'cookie' during its initialization is never read
struct fscache_cookie *cookie = object->cookie;
--
drivers/dma/amba-pl08x.c:2211:26: note: Assuming field 'at' is non-null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~
drivers/dma/amba-pl08x.c:2211:2: note: Taking false branch
if (!plchan->phychan && !plchan->at) {
^
drivers/dma/amba-pl08x.c:2216:23: note: Passing null pointer value via 1st parameter 'ch'
pl08x_pause_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2216:2: note: Calling 'pl08x_pause_phy_chan'
pl08x_pause_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:587:6: note: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch')
if (ch->ftdmac020) {
^~
drivers/dma/amba-pl08x.c:615:6: warning: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch') [clang-analyzer-core.NullDereference]
if (ch->ftdmac020) {
^
drivers/dma/amba-pl08x.c:2233:2: note: Value assigned to field 'phychan'
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/spinlock.h:256:11: note: expanded from macro 'raw_spin_lock_irqsave'
flags = _raw_spin_lock_irqsave(lock); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2233:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/dma/amba-pl08x.c:2233:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&plchan->vc.lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/dma/amba-pl08x.c:2234:6: note: Assuming field 'phychan' is null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2234:6: note: Left side of '&&' is true
drivers/dma/amba-pl08x.c:2234:26: note: Assuming field 'at' is non-null
if (!plchan->phychan && !plchan->at) {
^~~~~~~~~~~
drivers/dma/amba-pl08x.c:2234:2: note: Taking false branch
if (!plchan->phychan && !plchan->at) {
^
drivers/dma/amba-pl08x.c:2239:24: note: Passing null pointer value via 1st parameter 'ch'
pl08x_resume_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:2239:2: note: Calling 'pl08x_resume_phy_chan'
pl08x_resume_phy_chan(plchan->phychan);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/dma/amba-pl08x.c:615:6: note: Access to field 'ftdmac020' results in a dereference of a null pointer (loaded from variable 'ch')
if (ch->ftdmac020) {
^~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/video/fbdev/riva/fbdev.c:499:4: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
tmp = 0;
^ ~
drivers/video/fbdev/riva/fbdev.c:499:4: note: Value stored to 'tmp' is never read
tmp = 0;
^ ~
Suppressed 3 warnings (3 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.
>> drivers/video/fbdev/vt8500lcdfb.c:280:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
drivers/video/fbdev/vt8500lcdfb.c:280:2: note: Value stored to 'ret' is never read
ret = -ENOMEM;
^ ~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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/video/fbdev/s1d13xxxfb.c:681:2: warning: Value stored to 'is_dual' is never read [clang-analyzer-deadcode.DeadStores]
is_dual = (panel & 0x02) != 0;
^ ~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/s1d13xxxfb.c:681:2: note: Value stored to 'is_dual' is never read
is_dual = (panel & 0x02) != 0;
^ ~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/s1d13xxxfb.c:683:2: warning: Value stored to 'lcd_bpp' is never read [clang-analyzer-deadcode.DeadStores]
lcd_bpp = s1d13xxxfb_width_tab[is_tft][(panel >> 4) & 3];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/s1d13xxxfb.c:683:2: note: Value stored to 'lcd_bpp' is never read
lcd_bpp = s1d13xxxfb_width_tab[is_tft][(panel >> 4) & 3];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/video/fbdev/s3c-fb.c:492:16: warning: Value stored to 'buf' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
void __iomem *buf = regs;
^~~ ~~~~
drivers/video/fbdev/s3c-fb.c:492:16: note: Value stored to 'buf' during its initialization is never read
void __iomem *buf = regs;
^~~ ~~~~
Suppressed 3 warnings (3 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.
drivers/video/fbdev/sm501fb.c:1965:5: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(fb_mode, cp);
^~~~~~
drivers/video/fbdev/sm501fb.c:1965:5: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(fb_mode, cp);
^~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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.
kernel/kallsyms.c:436:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(buffer, name);
^~~~~~
kernel/kallsyms.c:436:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(buffer, name);
^~~~~~
Suppressed 4 warnings (3 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.
6 warnings generated.
kernel/kexec_core.c:771:4: warning: Value stored to 'addr' is never read [clang-analyzer-deadcode.DeadStores]
addr = old_addr;
^ ~~~~~~~~
kernel/kexec_core.c:771:4: note: Value stored to 'addr' is never read
addr = old_addr;
^ ~~~~~~~~
kernel/kexec_core.c:791:2: warning: Value stored to 'result' is never read [clang-analyzer-deadcode.DeadStores]
result = 0;
^ ~
kernel/kexec_core.c:791:2: note: Value stored to 'result' is never read
result = 0;
^ ~
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.
3 warnings generated.
Suppressed 3 warnings (3 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.
arch/arm/include/asm/atomic.h:223:1: warning: Access to field 'counter' results in a dereference of a null pointer (loaded from variable 'v') [clang-analyzer-core.NullDereference]
ATOMIC_OPS(add, +=, add)
^
arch/arm/include/asm/atomic.h:221:2: note: expanded from macro 'ATOMIC_OPS'
ATOMIC_FETCH_OP(op, c_op, asm_op)
^
arch/arm/include/asm/atomic.h:193:8: note: expanded from macro 'ATOMIC_FETCH_OP'
val = v->counter; \
^
kernel/cgroup/cgroup.c:6248:6: note: Assuming field 'pid' is 0
if (likely(child->pid)) {
^
include/linux/compiler.h:77:38: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^~~~
kernel/cgroup/cgroup.c:6248:2: note: Taking false branch
if (likely(child->pid)) {
--
drivers/mtd/lpddr/lpddr_cmds.c:446:21: note: 'len' is >= field 'bankwidth'
if (!word_gap && (len < map_bankwidth(map)))
^~~
drivers/mtd/lpddr/lpddr_cmds.c:446:3: note: Taking false branch
if (!word_gap && (len < map_bankwidth(map)))
^
drivers/mtd/lpddr/lpddr_cmds.c:454:7: note: Assuming 'len' is not equal to 0
if (!len || word_gap == map_bankwidth(map)) {
^~~~
drivers/mtd/lpddr/lpddr_cmds.c:454:7: note: Left side of '||' is false
drivers/mtd/lpddr/lpddr_cmds.c:454:15: note: Assuming 'word_gap' is not equal to field 'bankwidth'
if (!len || word_gap == map_bankwidth(map)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/lpddr/lpddr_cmds.c:454:3: note: Taking false branch
if (!len || word_gap == map_bankwidth(map)) {
^
drivers/mtd/lpddr/lpddr_cmds.c:461:7: note: Assuming 'vec_seek' is equal to field 'iov_len'
if (vec_seek == vec->iov_len) {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/lpddr/lpddr_cmds.c:461:3: note: Taking true branch
if (vec_seek == vec->iov_len) {
^
drivers/mtd/lpddr/lpddr_cmds.c:438:2: note: Loop condition is true. Execution continues on line 439
do {
^
drivers/mtd/lpddr/lpddr_cmds.c:441:24: note: The left operand of '-' is a garbage value
if (n > vec->iov_len - vec_seek)
~~~~~~~~~~~~ ^
include/linux/mtd/pfow.h:107:30: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult]
map_write(map, CMD(adr & ((1<<bits_per_chip) - 1)),
^
drivers/mtd/lpddr/lpddr_cmds.c:758:9: note: Calling 'do_xxlock'
return do_xxlock(mtd, ofs, len, DO_XXLOCK_UNLOCK);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/lpddr/lpddr_cmds.c:726:6: note: 'ret' is 0
if (ret) {
^~~
drivers/mtd/lpddr/lpddr_cmds.c:726:2: note: Taking false branch
if (ret) {
^
drivers/mtd/lpddr/lpddr_cmds.c:731:6: note: 'thunk' is not equal to DO_XXLOCK_LOCK
if (thunk == DO_XXLOCK_LOCK) {
^~~~~
drivers/mtd/lpddr/lpddr_cmds.c:731:2: note: Taking false branch
if (thunk == DO_XXLOCK_LOCK) {
^
drivers/mtd/lpddr/lpddr_cmds.c:734:13: note: 'thunk' is equal to DO_XXLOCK_UNLOCK
} else if (thunk == DO_XXLOCK_UNLOCK) {
^~~~~
drivers/mtd/lpddr/lpddr_cmds.c:734:9: note: Taking true branch
} else if (thunk == DO_XXLOCK_UNLOCK) {
^
drivers/mtd/lpddr/lpddr_cmds.c:735:3: note: Calling 'send_pfow_command'
send_pfow_command(map, LPDDR_UNLOCK_BLOCK, adr, adr + len, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/mtd/pfow.h:104:2: note: 'bits_per_chip' initialized here
int bits_per_chip = map_bankwidth(map) * 8;
^~~~~~~~~~~~~~~~~
include/linux/mtd/pfow.h:107:30: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'int'
map_write(map, CMD(adr & ((1<<bits_per_chip) - 1)),
^
include/linux/mtd/qinfo.h:86:32: note: expanded from macro 'CMD'
#define CMD(x) lpddr_build_cmd(x, map)
^
include/linux/mtd/map.h:455:58: note: expanded from macro 'map_write'
#define map_write(map, datum, ofs) inline_map_write(map, datum, ofs)
^~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/gpu/drm/exynos/exynos_drm_dsi.c:670:3: warning: Value stored to 'esc_clk' is never read [clang-analyzer-deadcode.DeadStores]
esc_clk = byte_clk / esc_div;
^ ~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:670:3: note: Value stored to 'esc_clk' is never read
esc_clk = byte_clk / esc_div;
^ ~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1060:4: warning: Value stored to 'length' is never read [clang-analyzer-deadcode.DeadStores]
length = xfer->rx_len;
^ ~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dsi.c:1060:4: note: Value stored to 'length' is never read
length = xfer->rx_len;
^ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
drivers/gpu/drm/exynos/exynos_mixer.c:464:9: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
MXR_LAYER_CFG_GRP0_MASK);
^
drivers/gpu/drm/exynos/regs-mixer.h:153:34: note: expanded from macro 'MXR_LAYER_CFG_GRP0_MASK'
#define MXR_LAYER_CFG_GRP0_MASK MXR_LAYER_CFG_GRP0_VAL(~0)
^
drivers/gpu/drm/exynos/regs-mixer.h:152:35: note: expanded from macro 'MXR_LAYER_CFG_GRP0_VAL'
#define MXR_LAYER_CFG_GRP0_VAL(x) MXR_MASK_VAL(x, 7, 4)
^
drivers/gpu/drm/exynos/regs-mixer.h:70:10: note: expanded from macro 'MXR_MASK_VAL'
(((val) << (low_bit)) & MXR_MASK(high_bit, low_bit))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1031:6: note: Assuming the condition is false
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:1031:2: note: Taking false branch
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1037:2: note: Loop condition is true. Entering loop body
for (i = 0; i < MIXER_WIN_NR; i++)
^
drivers/gpu/drm/exynos/exynos_mixer.c:1038:3: note: Calling 'mixer_disable_plane'
mixer_disable_plane(crtc, &ctx->planes[i]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:973:6: note: Assuming the condition is false
if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:973:2: note: Taking false branch
if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags))
^
drivers/gpu/drm/exynos/exynos_mixer.c:976:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&mixer_ctx->reg_slock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/gpu/drm/exynos/exynos_mixer.c:976:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&mixer_ctx->reg_slock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/gpu/drm/exynos/exynos_mixer.c:977:2: note: Calling 'mixer_cfg_layer'
mixer_cfg_layer(mixer_ctx, plane->index, 0, false);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:457:12: note: 'enable' is false
u32 val = enable ? ~0 : 0;
^~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:457:12: note: '?' condition is false
drivers/gpu/drm/exynos/exynos_mixer.c:459:2: note: Control jumps to 'case 0:' at line 460
switch (win) {
^
drivers/gpu/drm/exynos/exynos_mixer.c:464:9: note: The result of the left shift is undefined because the left operand is negative
MXR_LAYER_CFG_GRP0_MASK);
^
drivers/gpu/drm/exynos/regs-mixer.h:153:34: note: expanded from macro 'MXR_LAYER_CFG_GRP0_MASK'
#define MXR_LAYER_CFG_GRP0_MASK MXR_LAYER_CFG_GRP0_VAL(~0)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/regs-mixer.h:152:35: note: expanded from macro 'MXR_LAYER_CFG_GRP0_VAL'
#define MXR_LAYER_CFG_GRP0_VAL(x) MXR_MASK_VAL(x, 7, 4)
^~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/regs-mixer.h:70:10: note: expanded from macro 'MXR_MASK_VAL'
(((val) << (low_bit)) & MXR_MASK(high_bit, low_bit))
~~~~~ ^
drivers/gpu/drm/exynos/exynos_mixer.c:470:9: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
MXR_LAYER_CFG_GRP1_MASK);
^
drivers/gpu/drm/exynos/regs-mixer.h:151:34: note: expanded from macro 'MXR_LAYER_CFG_GRP1_MASK'
#define MXR_LAYER_CFG_GRP1_MASK MXR_LAYER_CFG_GRP1_VAL(~0)
^
drivers/gpu/drm/exynos/regs-mixer.h:150:35: note: expanded from macro 'MXR_LAYER_CFG_GRP1_VAL'
#define MXR_LAYER_CFG_GRP1_VAL(x) MXR_MASK_VAL(x, 11, 8)
^
drivers/gpu/drm/exynos/regs-mixer.h:70:10: note: expanded from macro 'MXR_MASK_VAL'
(((val) << (low_bit)) & MXR_MASK(high_bit, low_bit))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1031:6: note: Assuming the condition is false
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_mixer.c:1031:2: note: Taking false branch
if (!test_bit(MXR_BIT_POWERED, &ctx->flags))
^
drivers/gpu/drm/exynos/exynos_mixer.c:1037:2: note: Loop condition is true. Entering loop body
--
^
drivers/nvmem/core.c:1433:7: note: Returning from '__nvmem_cell_read'
rc = __nvmem_cell_read(nvmem, cell, buf, len);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvmem/core.c:1434:6: note: 'rc' is not equal to 0
if (rc) {
^~
drivers/nvmem/core.c:1434:2: note: Taking true branch
if (rc) {
^
drivers/nvmem/core.c:1634:8: note: Returning from 'nvmem_cell_read'
buf = nvmem_cell_read(cell, len);
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvmem/core.c:1636:6: note: Calling 'IS_ERR'
if (IS_ERR(buf))
^~~~~~~~~~~
include/linux/err.h:36:9: note: Assuming the condition is false
return IS_ERR_VALUE((unsigned long)ptr);
^
include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
#define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
return IS_ERR_VALUE((unsigned long)ptr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvmem/core.c:1636:6: note: Returning from 'IS_ERR'
if (IS_ERR(buf))
^~~~~~~~~~~
drivers/nvmem/core.c:1636:2: note: Taking false branch
if (IS_ERR(buf))
^
drivers/nvmem/core.c:1643:6: note: Assuming 'nbits' is 0
if (nbits)
^~~~~
drivers/nvmem/core.c:1643:2: note: Taking false branch
if (nbits)
^
drivers/nvmem/core.c:1646:11: note: The left operand of '>' is a garbage value
if (*len > max_len) {
~~~~ ^
Suppressed 3 warnings (3 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 (3 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.
drivers/gpu/drm/exynos/exynos_drm_plane.c:148:2: warning: Value stored to 'exynos_state' is never read [clang-analyzer-deadcode.DeadStores]
exynos_state = to_exynos_plane_state(plane->state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_plane.c:148:2: note: Value stored to 'exynos_state' is never read
exynos_state = to_exynos_plane_state(plane->state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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/gpu/drm/exynos/exynos_drm_dma.c:87:29: warning: Value stored to 'priv' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct exynos_drm_private *priv = drm_dev->dev_private;
^~~~ ~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dma.c:87:29: note: Value stored to 'priv' during its initialization is never read
struct exynos_drm_private *priv = drm_dev->dev_private;
^~~~ ~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dma.c:138:29: warning: Value stored to 'priv' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct exynos_drm_private *priv = drm->dev_private;
^~~~ ~~~~~~~~~~~~~~~~
drivers/gpu/drm/exynos/exynos_drm_dma.c:138:29: note: Value stored to 'priv' during its initialization is never read
struct exynos_drm_private *priv = drm->dev_private;
^~~~ ~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/i2c/busses/i2c-qcom-geni.c:170:6: warning: Value stored to 'm_cmd' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 m_cmd = readl_relaxed(gi2c->se.base + SE_GENI_M_CMD0);
^~~~~
drivers/i2c/busses/i2c-qcom-geni.c:170:6: note: Value stored to 'm_cmd' during its initialization is never read
u32 m_cmd = readl_relaxed(gi2c->se.base + SE_GENI_M_CMD0);
^~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:171:6: warning: Value stored to 'm_stat' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 m_stat = readl_relaxed(gi2c->se.base + SE_GENI_M_IRQ_STATUS);
^~~~~~
drivers/i2c/busses/i2c-qcom-geni.c:171:6: note: Value stored to 'm_stat' during its initialization is never read
u32 m_stat = readl_relaxed(gi2c->se.base + SE_GENI_M_IRQ_STATUS);
^~~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:172:6: warning: Value stored to 'geni_s' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 geni_s = readl_relaxed(gi2c->se.base + SE_GENI_STATUS);
^~~~~~
drivers/i2c/busses/i2c-qcom-geni.c:172:6: note: Value stored to 'geni_s' during its initialization is never read
u32 geni_s = readl_relaxed(gi2c->se.base + SE_GENI_STATUS);
^~~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:173:6: warning: Value stored to 'geni_ios' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
u32 geni_ios = readl_relaxed(gi2c->se.base + SE_GENI_IOS);
^~~~~~~~
drivers/i2c/busses/i2c-qcom-geni.c:173:6: note: Value stored to 'geni_ios' during its initialization is never read
u32 geni_ios = readl_relaxed(gi2c->se.base + SE_GENI_IOS);
^~~~~~~~
>> drivers/i2c/busses/i2c-qcom-geni.c:178:3: warning: Value stored to 'rx_st' is never read [clang-analyzer-deadcode.DeadStores]
rx_st = readl_relaxed(gi2c->se.base + SE_DMA_RX_IRQ_STAT);
^
drivers/i2c/busses/i2c-qcom-geni.c:178:3: note: Value stored to 'rx_st' is never read
>> drivers/i2c/busses/i2c-qcom-geni.c:179:3: warning: Value stored to 'tx_st' is never read [clang-analyzer-deadcode.DeadStores]
tx_st = readl_relaxed(gi2c->se.base + SE_DMA_TX_IRQ_STAT);
^
drivers/i2c/busses/i2c-qcom-geni.c:179:3: note: Value stored to 'tx_st' is never read
drivers/i2c/busses/i2c-qcom-geni.c:181:3: warning: Value stored to 'rx_st' is never read [clang-analyzer-deadcode.DeadStores]
rx_st = readl_relaxed(gi2c->se.base + SE_GENI_RX_FIFO_STATUS);
^
drivers/i2c/busses/i2c-qcom-geni.c:181:3: note: Value stored to 'rx_st' is never read
drivers/i2c/busses/i2c-qcom-geni.c:182:3: warning: Value stored to 'tx_st' is never read [clang-analyzer-deadcode.DeadStores]
tx_st = readl_relaxed(gi2c->se.base + SE_GENI_TX_FIFO_STATUS);
^
drivers/i2c/busses/i2c-qcom-geni.c:182:3: note: Value stored to 'tx_st' is never read
Suppressed 3 warnings (3 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 (3 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.
4 warnings generated.
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:275:9: warning: The result of the right shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
GENMASK(priv->config.lanes - 1, 0));
^
include/linux/bits.h:38:31: note: expanded from macro 'GENMASK'
(GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
^~~~~~~~~~~~~~~
include/linux/bits.h:36:11: note: expanded from macro '__GENMASK'
(~UL(0) >> (BITS_PER_LONG - 1 - (h))))
^ ~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:220:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:220:2: note: Taking false branch
if (ret < 0)
^
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:224:6: note: 'ret' is >= 0
if (ret < 0) {
^~~
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:224:2: note: Taking false branch
if (ret < 0) {
^
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:230:6: note: Assuming field 'pwrctl_offset' is < 0
if (drv_data->pwrctl_offset >= 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:230:2: note: Taking false branch
if (drv_data->pwrctl_offset >= 0)
^
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:236:8: note: Taking false branch
val = FIELD_PREP(CSIDPHY_CTRL_LANE_ENABLE_MASK, GENMASK(priv->config.lanes - 1, 0)) |
^
include/linux/bitfield.h:94:3: note: expanded from macro 'FIELD_PREP'
__BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \
^
include/linux/bitfield.h:46:3: note: expanded from macro '__BF_FIELD_CHECK'
BUILD_BUG_ON_MSG(!__builtin_constant_p(_mask), \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:236:8: note: Loop condition is false. Exiting loop
val = FIELD_PREP(CSIDPHY_CTRL_LANE_ENABLE_MASK, GENMASK(priv->config.lanes - 1, 0)) |
^
include/linux/bitfield.h:94:3: note: expanded from macro 'FIELD_PREP'
__BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \
^
include/linux/bitfield.h:46:3: note: expanded from macro '__BF_FIELD_CHECK'
BUILD_BUG_ON_MSG(!__builtin_constant_p(_mask), \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/phy/rockchip/phy-rockchip-inno-csidphy.c:236:8: note: Taking false branch
val = FIELD_PREP(CSIDPHY_CTRL_LANE_ENABLE_MASK, GENMASK(priv->config.lanes - 1, 0)) |
^
include/linux/bitfield.h:94:3: note: expanded from macro 'FIELD_PREP'
__BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \
^
include/linux/bitfield.h:48:3: note: expanded from macro '__BF_FIELD_CHECK'
BUILD_BUG_ON_MSG((_mask) == 0, _pfx "mask is zero"); \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
--
drivers/firmware/qemu_fw_cfg.c:597:10: note: Calling 'kzalloc'
entry = kzalloc(sizeof(*entry), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer, which participates in a condition later
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/qemu_fw_cfg.c:597:10: note: Returning from 'kzalloc'
entry = kzalloc(sizeof(*entry), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/qemu_fw_cfg.c:598:6: note: Assuming 'entry' is non-null
if (!entry)
^~~~~~
drivers/firmware/qemu_fw_cfg.c:598:2: note: Taking false branch
if (!entry)
^
drivers/firmware/qemu_fw_cfg.c:609:6: note: Assuming 'err' is 0
if (err) {
^~~
drivers/firmware/qemu_fw_cfg.c:609:2: note: Taking false branch
if (err) {
^
drivers/firmware/qemu_fw_cfg.c:616:6: note: Assuming 'err' is 0
if (err)
^~~
drivers/firmware/qemu_fw_cfg.c:616:2: note: Taking false branch
if (err)
^
drivers/firmware/qemu_fw_cfg.c:620:2: note: Calling 'fw_cfg_build_symlink'
fw_cfg_build_symlink(fw_cfg_fname_kset, &entry->kobj, entry->name);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firmware/qemu_fw_cfg.c:496:2: note: 'ret' declared without an initial value
int ret;
^~~~~~~
drivers/firmware/qemu_fw_cfg.c:501:6: note: Assuming 'dir' is non-null
if (!dir || !target || !name || !*name)
^~~~
drivers/firmware/qemu_fw_cfg.c:501:6: note: Left side of '||' is false
drivers/firmware/qemu_fw_cfg.c:501:15: note: 'target' is non-null
if (!dir || !target || !name || !*name)
^~~~~~
drivers/firmware/qemu_fw_cfg.c:501:6: note: Left side of '||' is false
if (!dir || !target || !name || !*name)
^
drivers/firmware/qemu_fw_cfg.c:501:26: note: 'name' is non-null
if (!dir || !target || !name || !*name)
^~~~
drivers/firmware/qemu_fw_cfg.c:501:6: note: Left side of '||' is false
if (!dir || !target || !name || !*name)
^
drivers/firmware/qemu_fw_cfg.c:501:34: note: Assuming the condition is false
if (!dir || !target || !name || !*name)
^~~~~~
drivers/firmware/qemu_fw_cfg.c:501:2: note: Taking false branch
if (!dir || !target || !name || !*name)
^
drivers/firmware/qemu_fw_cfg.c:506:6: note: Assuming 'name_copy' is non-null
if (!name_copy)
^~~~~~~~~~
drivers/firmware/qemu_fw_cfg.c:506:2: note: Taking false branch
if (!name_copy)
^
drivers/firmware/qemu_fw_cfg.c:510:10: note: Assuming 'tok' is non-null
while ((tok = strsep(&p, "/")) && *tok) {
^~~
drivers/firmware/qemu_fw_cfg.c:510:9: note: Left side of '&&' is true
while ((tok = strsep(&p, "/")) && *tok) {
^
drivers/firmware/qemu_fw_cfg.c:510:2: note: Loop condition is false. Execution continues on line 558
while ((tok = strsep(&p, "/")) && *tok) {
^
drivers/firmware/qemu_fw_cfg.c:559:2: note: Undefined or garbage value returned to caller
return ret;
^ ~~~
Suppressed 3 warnings (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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.
>> drivers/nvmem/sunxi_sid.c:107:2: warning: Null pointer passed as 1st argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(val, &word, bytes);
^ ~~~
drivers/nvmem/sunxi_sid.c:89:9: note: Assuming 'bytes' is >= 4
while (bytes >= 4) {
^~~~~~~~~~
drivers/nvmem/sunxi_sid.c:89:2: note: Loop condition is true. Entering loop body
while (bytes >= 4) {
^
drivers/nvmem/sunxi_sid.c:90:9: note: Calling 'sun8i_sid_register_readout'
ret = sun8i_sid_register_readout(sid, offset, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvmem/sunxi_sid.c:61:2: note: Loop condition is false. Exiting loop
writel(reg_val, sid->base + SUN8I_SID_PRCTL);
^
arch/arm/include/asm/io.h:308:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:167:20: note: expanded from macro '__iowmb'
#define __iowmb() wmb()
^
arch/arm/include/asm/barrier.h:66:16: note: expanded from macro 'wmb'
#define wmb() __arm_heavy_mb(st)
^
arch/arm/include/asm/barrier.h:58:30: note: expanded from macro '__arm_heavy_mb'
#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: '__sleep_us' is not equal to 0
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/iopoll.h:42:17: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^~~~~~~~~~~~
include/linux/kernel.h:183:39: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^~~~
drivers/nvmem/sunxi_sid.c:63:8: note: Taking true branch
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^
include/linux/iopoll.h:42:2: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^
include/linux/kernel.h:183:35: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: Loop condition is false. Exiting loop
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^
include/linux/iopoll.h:42:2: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^
include/linux/kernel.h:183:45: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^
include/linux/kernel.h:132:45: note: expanded from macro 'might_sleep'
do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
^
include/linux/kernel.h:109:26: note: expanded from macro 'might_resched'
# define might_resched() do { } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: Loop condition is false. Exiting loop
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
^
include/linux/iopoll.h:121:2: note: expanded from macro 'readx_poll_timeout'
read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
^
include/linux/iopoll.h:42:2: note: expanded from macro 'read_poll_timeout'
might_sleep_if((__sleep_us) != 0); \
^
include/linux/kernel.h:183:45: note: expanded from macro 'might_sleep_if'
#define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0)
^
include/linux/kernel.h:132:2: note: expanded from macro 'might_sleep'
do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
^
drivers/nvmem/sunxi_sid.c:63:8: note: Loop condition is false. Exiting loop
ret = readl_poll_timeout(sid->base + SUN8I_SID_PRCTL, reg_val,
^
include/linux/iopoll.h:156:2: note: expanded from macro 'readl_poll_timeout'
readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)
--
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~~~~~~~~
drivers/gpu/drm/sti/sti_hqvdp.c:1042:10: note: '?' condition is false
dst_h = clamp_val(new_plane_state->crtc_h, 0, mode->vdisplay - dst_y);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/gpu/drm/sti/sti_hqvdp.c:1042:2: note: The value 0 is assigned to 'dst_h'
dst_h = clamp_val(new_plane_state->crtc_h, 0, mode->vdisplay - dst_y);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/sti/sti_hqvdp.c:1049:6: note: Assuming field 'clock' is not equal to 0
if (mode->clock && !sti_hqvdp_check_hw_scaling(hqvdp, mode,
^~~~~~~~~~~
drivers/gpu/drm/sti/sti_hqvdp.c:1049:6: note: Left side of '&&' is true
drivers/gpu/drm/sti/sti_hqvdp.c:1051:21: note: Passing the value 0 via 6th parameter 'dst_h'
dst_w, dst_h)) {
^~~~~
drivers/gpu/drm/sti/sti_hqvdp.c:1049:22: note: Calling 'sti_hqvdp_check_hw_scaling'
if (mode->clock && !sti_hqvdp_check_hw_scaling(hqvdp, mode,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/sti/sti_hqvdp.c:741:9: note: Assuming '__UNIQUE_ID___x329' is > '__UNIQUE_ID___y330'
lfw /= max(src_w, dst_w) * mode->clock / 1000;
^
include/linux/minmax.h:52:19: note: expanded from macro 'max'
#define max(x, y) __careful_cmp(x, y, >)
^~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~~~~~~~~
drivers/gpu/drm/sti/sti_hqvdp.c:741:9: note: '?' condition is true
lfw /= max(src_w, dst_w) * mode->clock / 1000;
^
include/linux/minmax.h:52:19: note: expanded from macro 'max'
#define max(x, y) __careful_cmp(x, y, >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/gpu/drm/sti/sti_hqvdp.c:743:11: note: Division by zero
inv_zy = DIV_ROUND_UP(src_h, dst_h);
^
include/linux/math.h:36:22: note: expanded from macro 'DIV_ROUND_UP'
#define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
^
include/uapi/linux/const.h:34:54: note: expanded from macro '__KERNEL_DIV_ROUND_UP'
#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
~~~~~~~~~~~~~~~~^~~~~
Suppressed 3 warnings (3 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.
drivers/iommu/sun50i-iommu.c:510:3: warning: Value stored to 'dte' is never read [clang-analyzer-deadcode.DeadStores]
dte = old_dte;
^ ~~~~~~~
drivers/iommu/sun50i-iommu.c:510:3: note: Value stored to 'dte' is never read
dte = old_dte;
^ ~~~~~~~
Suppressed 3 warnings (3 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 (3 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/gpu/drm/drm_gem_vram_helper.c:396:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = gbo->bo.base.dev;
^~~ ~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_gem_vram_helper.c:396:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = gbo->bo.base.dev;
^~~ ~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_gem_vram_helper.c:564:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = bo->base.dev;
^~~ ~~~~~~~~~~~~
drivers/gpu/drm/drm_gem_vram_helper.c:564:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = bo->base.dev;
^~~ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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.
lib/test_lockup.c:231:32: warning: The right operand of '-' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
s64 cur_wait = local_clock() - wait_start;
^ ~~~~~~~~~~
lib/test_lockup.c:171:2: note: 'wait_start' declared without an initial value
u64 wait_start;
^~~~~~~~~~~~~~
lib/test_lockup.c:173:6: note: Assuming 'measure_lock_wait' is false
if (measure_lock_wait)
^~~~~~~~~~~~~~~~~
lib/test_lockup.c:173:2: note: Taking false branch
if (measure_lock_wait)
^
lib/test_lockup.c:176:6: note: Assuming 'lock_mutex_ptr' is not equal to 0
if (lock_mutex_ptr && master) {
^~~~~~~~~~~~~~
lib/test_lockup.c:176:6: note: Left side of '&&' is true
lib/test_lockup.c:176:24: note: Assuming 'master' is true
if (lock_mutex_ptr && master) {
^~~~~~
lib/test_lockup.c:176:2: note: Taking true branch
if (lock_mutex_ptr && master) {
^
lib/test_lockup.c:177:7: note: Assuming 'verbose' is false
if (verbose)
^~~~~~~
lib/test_lockup.c:177:3: note: Taking false branch
if (verbose)
^
lib/test_lockup.c:182:6: note: Assuming 'lock_rwsem_ptr' is 0
if (lock_rwsem_ptr && master) {
^~~~~~~~~~~~~~
lib/test_lockup.c:182:21: note: Left side of '&&' is false
if (lock_rwsem_ptr && master) {
^
lib/test_lockup.c:192:6: note: Assuming 'lock_mmap_sem' is false
if (lock_mmap_sem && master) {
^~~~~~~~~~~~~
lib/test_lockup.c:192:20: note: Left side of '&&' is false
if (lock_mmap_sem && master) {
^
lib/test_lockup.c:201:6: note: Assuming 'test_disable_irq' is false
if (test_disable_irq)
^~~~~~~~~~~~~~~~
lib/test_lockup.c:201:2: note: Taking false branch
if (test_disable_irq)
^
lib/test_lockup.c:204:6: note: Assuming 'disable_softirq' is false
if (disable_softirq)
^~~~~~~~~~~~~~~
lib/test_lockup.c:204:2: note: Taking false branch
if (disable_softirq)
^
lib/test_lockup.c:207:6: note: Assuming 'disable_preempt' is false
if (disable_preempt)
^~~~~~~~~~~~~~~
lib/test_lockup.c:207:2: note: Taking false branch
if (disable_preempt)
^
lib/test_lockup.c:210:6: note: Assuming 'lock_rcu' is false
if (lock_rcu)
^~~~~~~~
lib/test_lockup.c:210:2: note: Taking false branch
if (lock_rcu)
^
lib/test_lockup.c:213:6: note: Assuming 'lock_spinlock_ptr' is 0
if (lock_spinlock_ptr && master) {
^~~~~~~~~~~~~~~~~
lib/test_lockup.c:213:24: note: Left side of '&&' is false
if (lock_spinlock_ptr && master) {
^
lib/test_lockup.c:220:6: note: Assuming 'lock_rwlock_ptr' is 0
if (lock_rwlock_ptr && master) {
^~~~~~~~~~~~~~~
lib/test_lockup.c:220:22: note: Left side of '&&' is false
if (lock_rwlock_ptr && master) {
^
lib/test_lockup.c:230:6: note: Assuming 'measure_lock_wait' is true
--
^
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~~~~~~~~
drivers/gpu/drm/rcar-du/rcar_lvds.c:187:10: note: '?' condition is false
m_min = max_t(unsigned int, 1, DIV_ROUND_UP(fin, 24000000));
^
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/gpu/drm/rcar-du/rcar_lvds.c:188:10: note: Assuming '__UNIQUE_ID___x326' is >= '__UNIQUE_ID___y327'
m_max = min_t(unsigned int, 8, fin / 12000000);
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~~~~~~~~
drivers/gpu/drm/rcar-du/rcar_lvds.c:188:10: note: '?' condition is false
m_max = min_t(unsigned int, 8, fin / 12000000);
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/gpu/drm/rcar-du/rcar_lvds.c:190:18: note: Assuming 'm' is > 'm_max'
for (m = m_min; m <= m_max; ++m) {
^~~~~~~~~~
drivers/gpu/drm/rcar-du/rcar_lvds.c:190:2: note: Loop condition is false. Execution continues on line 252
for (m = m_min; m <= m_max; ++m) {
^
drivers/gpu/drm/rcar-du/rcar_lvds.c:252:28: note: Division by zero
output = fin * pll->pll_n / pll->pll_m / (1 << pll->pll_e)
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
drivers/gpu/drm/rcar-du/rcar_lvds.c:254:2: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
error = (long)(output - target) * 10000 / (long)target;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/rcar-du/rcar_lvds.c:254:2: note: Value stored to 'error' is never read
error = (long)(output - target) * 10000 / (long)target;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> net/sysctl_net.c:146:4: warning: Value stored to 'where' is never read [clang-analyzer-deadcode.DeadStores]
where = "module";
^ ~~~~~~~~
net/sysctl_net.c:146:4: note: Value stored to 'where' is never read
where = "module";
^ ~~~~~~~~
net/sysctl_net.c:148:4: warning: Value stored to 'where' is never read [clang-analyzer-deadcode.DeadStores]
where = "kernel";
^ ~~~~~~~~
net/sysctl_net.c:148:4: note: Value stored to 'where' is never read
where = "kernel";
^ ~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/regulator/max8998.c:285:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = max8998_get_voltage_register(rdev, ®,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:285:4: note: Value stored to 'ret' is never read
ret = max8998_get_voltage_register(rdev, ®,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:412:6: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
sel <<= ffs(rdev->desc->csel_mask) - 1;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:382:6: note: Assuming 'n_currents' is not equal to 0
if (n_currents == 0)
^~~~~~~~~~~~~~~
drivers/regulator/max8998.c:382:2: note: Taking false branch
if (n_currents == 0)
^
drivers/regulator/max8998.c:385:6: note: Assuming field 'curr_table' is non-null
if (rdev->desc->curr_table) {
^~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:385:2: note: Taking true branch
if (rdev->desc->curr_table) {
^
drivers/regulator/max8998.c:390:7: note: Assuming 'ascend' is false
if (ascend) {
^~~~~~
drivers/regulator/max8998.c:390:3: note: Taking false branch
if (ascend) {
^
drivers/regulator/max8998.c:399:16: note: 'i' is < 'n_currents'
for (i = 0; i < n_currents; i++) {
^
drivers/regulator/max8998.c:399:4: note: Loop condition is true. Entering loop body
for (i = 0; i < n_currents; i++) {
^
drivers/regulator/max8998.c:400:9: note: Assuming the condition is true
if (min_uA <= curr_table[i] &&
^~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:400:9: note: Left side of '&&' is true
drivers/regulator/max8998.c:401:9: note: Assuming the condition is true
curr_table[i] <= max_uA) {
^~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:400:5: note: Taking true branch
if (min_uA <= curr_table[i] &&
^
drivers/regulator/max8998.c:403:6: note: Execution continues on line 409
break;
^
drivers/regulator/max8998.c:409:6: note: 'sel' is >= 0
if (sel < 0)
^~~
drivers/regulator/max8998.c:409:2: note: Taking false branch
if (sel < 0)
^
drivers/regulator/max8998.c:412:6: note: Assigned value is garbage or undefined
sel <<= ffs(rdev->desc->csel_mask) - 1;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:430:6: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
val >>= ffs(rdev->desc->csel_mask) - 1;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/max8998.c:426:6: note: Assuming 'ret' is equal to 0
--
^
drivers/media/dvb-frontends/dib8000.c:2766:2: note: Loop condition is false. Exiting loop
dprintk("%dkhz tuner offset (frequency = %dHz & current_rf = %dHz) total_dds_offset_hz = %d\n", c->frequency - current_rf, c->frequency, current_rf, total_dds_offset_khz);
^
drivers/media/dvb-frontends/dib8000.c:34:30: note: expanded from macro 'dprintk'
#define dprintk(fmt, arg...) do { \
^
drivers/media/dvb-frontends/dib8000.c:2769:2: note: Calling 'dib8000_set_dds'
dib8000_set_dds(state, total_dds_offset_khz);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/dib8000.c:2698:23: note: Assuming '__x' is >= 0
u32 abs_offset_khz = abs(offset_khz);
^
include/linux/math.h:133:3: note: expanded from macro 'abs'
__abs_choose_expr(x, int, \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/math.h:144:28: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~~~
include/linux/math.h:144:54: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~
include/linux/math.h:144:54: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^~~~~
drivers/media/dvb-frontends/dib8000.c:2698:23: note: '?' condition is false
u32 abs_offset_khz = abs(offset_khz);
^
include/linux/math.h:133:3: note: expanded from macro 'abs'
__abs_choose_expr(x, int, \
^
include/linux/math.h:144:28: note: expanded from macro '__abs_choose_expr'
({ signed type __x = (x); __x < 0 ? -__x : __x; }), other)
^
drivers/media/dvb-frontends/dib8000.c:2700:15: note: Assuming the condition is false
u8 invert = !!(state->cfg.pll->ifreq & (1 << 25));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/dib8000.c:2703:6: note: Assuming field 'revision' is equal to 32912
if (state->revision == 0x8090) {
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/dib8000.c:2703:2: note: Taking true branch
if (state->revision == 0x8090) {
^
drivers/media/dvb-frontends/dib8000.c:2705:33: note: Calling 'dib8000_read32'
unit_khz_dds_val = (1<<26) / (dib8000_read32(state, 23) / 1000);
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/dib8000.c:216:6: note: Assuming the condition is true
if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
^
include/linux/mutex.h:188:40: note: expanded from macro 'mutex_lock_interruptible'
#define mutex_lock_interruptible(lock) mutex_lock_interruptible_nested(lock, 0)
^
drivers/media/dvb-frontends/dib8000.c:216:2: note: Taking true branch
if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) {
^
drivers/media/dvb-frontends/dib8000.c:217:3: note: Assuming 'debug' is 0
dprintk("could not acquire lock\n");
^
drivers/media/dvb-frontends/dib8000.c:35:6: note: expanded from macro 'dprintk'
if (debug) \
^~~~~
drivers/media/dvb-frontends/dib8000.c:217:3: note: Taking false branch
dprintk("could not acquire lock\n");
^
drivers/media/dvb-frontends/dib8000.c:35:2: note: expanded from macro 'dprintk'
if (debug) \
^
drivers/media/dvb-frontends/dib8000.c:217:3: note: Loop condition is false. Exiting loop
dprintk("could not acquire lock\n");
^
drivers/media/dvb-frontends/dib8000.c:34:30: note: expanded from macro 'dprintk'
#define dprintk(fmt, arg...) do { \
^
drivers/media/dvb-frontends/dib8000.c:218:3: note: Returning zero
return 0;
^~~~~~~~
drivers/media/dvb-frontends/dib8000.c:2705:33: note: Returning from 'dib8000_read32'
unit_khz_dds_val = (1<<26) / (dib8000_read32(state, 23) / 1000);
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/dib8000.c:2705:30: note: Division by zero
unit_khz_dds_val = (1<<26) / (dib8000_read32(state, 23) / 1000);
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
Suppressed 3 warnings (3 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 (3 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.
>> drivers/mtd/maps/pismo.c:246:11: warning: Array access (via field 'cs_addrs') results in a null pointer dereference [clang-analyzer-core.NullDereference]
pdata->cs_addrs[i]);
^ ~~~~~~~~
drivers/mtd/maps/pismo.c:214:2: note: 'pdata' initialized here
struct pismo_pdata *pdata = client->dev.platform_data;
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:219:7: note: Calling 'i2c_check_functionality'
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/i2c.h:900:9: note: Assuming the condition is true
return (func & i2c_get_functionality(adap)) == func;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/i2c.h:900:2: note: Returning the value 1, which participates in a condition later
return (func & i2c_get_functionality(adap)) == func;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:219:7: note: Returning from 'i2c_check_functionality'
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:219:2: note: Taking false branch
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
^
drivers/mtd/maps/pismo.c:224:10: note: Calling 'kzalloc'
pismo = kzalloc(sizeof(*pismo), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer, which participates in a condition later
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:224:10: note: Returning from 'kzalloc'
pismo = kzalloc(sizeof(*pismo), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:225:6: note: Assuming 'pismo' is non-null
if (!pismo)
^~~~~~
drivers/mtd/maps/pismo.c:225:2: note: Taking false branch
if (!pismo)
^
drivers/mtd/maps/pismo.c:229:6: note: Assuming 'pdata' is null
if (pdata) {
^~~~~
drivers/mtd/maps/pismo.c:229:2: note: Taking false branch
if (pdata) {
^
drivers/mtd/maps/pismo.c:236:6: note: 'ret' is >= 0
if (ret < 0) {
^~~
drivers/mtd/maps/pismo.c:236:2: note: Taking false branch
if (ret < 0) {
^
drivers/mtd/maps/pismo.c:241:2: note: Left side of '&&' is true
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:370:7: note: expanded from macro '__printk_index_emit'
if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
^
drivers/mtd/maps/pismo.c:241:2: note: Taking true branch
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:370:3: note: expanded from macro '__printk_index_emit'
if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
^
drivers/mtd/maps/pismo.c:241:2: note: '?' condition is true
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:379:12: note: expanded from macro '__printk_index_emit'
.fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \
^
drivers/mtd/maps/pismo.c:241:2: note: '?' condition is true
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit'
.level = __builtin_constant_p(_level) ? (_level) : NULL, \
^
drivers/mtd/maps/pismo.c:241:2: note: Loop condition is false. Exiting loop
dev_info(&client->dev, "%.15s board found\n", eeprom.board);
^
include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
dev_printk_index_emit(level, fmt); \
^
include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
printk_index_subsys_emit("%s %s: ", level, fmt)
^
include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
__printk_index_emit(fmt, level, subsys_fmt_prefix)
^
include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
do { \
^
drivers/mtd/maps/pismo.c:243:2: note: Loop condition is true. Entering loop body
for (i = 0; i < ARRAY_SIZE(eeprom.cs); i++)
^
drivers/mtd/maps/pismo.c:244:7: note: Assuming field 'type' is not equal to 255
if (eeprom.cs[i].type != 0xff)
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/maps/pismo.c:244:3: note: Taking true branch
if (eeprom.cs[i].type != 0xff)
^
drivers/mtd/maps/pismo.c:246:11: note: Array access (via field 'cs_addrs') results in a null pointer dereference
pdata->cs_addrs[i]);
^ ~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/i2c/busses/i2c-aspeed.c:253:2: warning: Value stored to 'command' is never read [clang-analyzer-deadcode.DeadStores]
command = readl(bus->base + ASPEED_I2C_CMD_REG);
^
drivers/i2c/busses/i2c-aspeed.c:253:2: note: Value stored to 'command' is never read
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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 (3 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.
drivers/mfd/vx855.c:89:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = mfd_add_devices(&pdev->dev, -1, vx855_cells, ARRAY_SIZE(vx855_cells),
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mfd/vx855.c:89:2: note: Value stored to 'ret' is never read
ret = mfd_add_devices(&pdev->dev, -1, vx855_cells, ARRAY_SIZE(vx855_cells),
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
net/nfc/llcp_core.c:585:2: warning: Value stored to 'gb_cur' is never read [clang-analyzer-deadcode.DeadStores]
gb_cur += miux_length;
^ ~~~~~~~~~~~
net/nfc/llcp_core.c:585:2: note: Value stored to 'gb_cur' is never read
gb_cur += miux_length;
^ ~~~~~~~~~~~
net/nfc/llcp_core.c:1416:2: warning: Value stored to 'dsap' is never read [clang-analyzer-deadcode.DeadStores]
dsap = nfc_llcp_dsap(skb);
^ ~~~~~~~~~~~~~~~~~~
net/nfc/llcp_core.c:1416:2: note: Value stored to 'dsap' is never read
dsap = nfc_llcp_dsap(skb);
^ ~~~~~~~~~~~~~~~~~~
net/nfc/llcp_core.c:1417:2: warning: Value stored to 'ssap' is never read [clang-analyzer-deadcode.DeadStores]
ssap = nfc_llcp_ssap(skb);
^ ~~~~~~~~~~~~~~~~~~
net/nfc/llcp_core.c:1417:2: note: Value stored to 'ssap' is never read
ssap = nfc_llcp_ssap(skb);
^ ~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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.
net/nfc/llcp_commands.c:448:2: warning: 3rd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
llcp_add_tlv(skb, service_name_tlv, service_name_tlv_length);
^ ~~~~~~~~~~~~~~~~~~~~~~~
net/nfc/llcp_commands.c:397:5: note: 'service_name_tlv_length' declared without an initial value
u8 service_name_tlv_length, miux_tlv_length, rw_tlv_length, rw;
^~~~~~~~~~~~~~~~~~~~~~~
net/nfc/llcp_commands.c:402:2: note: Taking false branch
pr_debug("Sending CONNECT\n");
^
include/linux/printk.h:576:2: note: expanded from macro 'pr_debug'
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
net/nfc/llcp_commands.c:405:6: note: Assuming 'local' is not equal to NULL
if (local == NULL)
^~~~~~~~~~~~~
net/nfc/llcp_commands.c:405:2: note: Taking false branch
if (local == NULL)
^
net/nfc/llcp_commands.c:408:6: note: Assuming field 'service_name' is equal to NULL
if (sock->service_name != NULL) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
net/nfc/llcp_commands.c:408:2: note: Taking false branch
if (sock->service_name != NULL) {
^
net/nfc/llcp_commands.c:421:9: note: Assuming the condition is false
miux = be16_to_cpu(sock->miux) > LLCP_MAX_MIUX ?
^
include/linux/byteorder/generic.h:97:21: note: expanded from macro 'be16_to_cpu'
#define be16_to_cpu __be16_to_cpu
^
include/uapi/linux/byteorder/little_endian.h:42:26: note: expanded from macro '__be16_to_cpu'
#define __be16_to_cpu(x) __swab16((__force __u16)(__be16)(x))
^
include/uapi/linux/swab.h:102:21: note: expanded from macro '__swab16'
#define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
^
net/nfc/llcp_commands.c:421:9: note: '?' condition is false
--
^
arch/arm/include/asm/io.h:308:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:167:20: note: expanded from macro '__iowmb'
#define __iowmb() wmb()
^
arch/arm/include/asm/barrier.h:66:16: note: expanded from macro 'wmb'
#define wmb() __arm_heavy_mb(st)
^
arch/arm/include/asm/barrier.h:58:30: note: expanded from macro '__arm_heavy_mb'
#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:620:14: note: Field 'addr_cycles' is <= 4
if (plnand->addr_cycles > 4)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:620:2: note: Taking false branch
if (plnand->addr_cycles > 4)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:624:9: note: '?' condition is true
ndelay(PSEC_TO_NSEC(sdr->tRR_min));
^
include/linux/mtd/rawnand.h:769:25: note: expanded from macro 'PSEC_TO_NSEC'
#define PSEC_TO_NSEC(x) __DIVIDE(x, 1000)
^
include/linux/mtd/rawnand.h:765:25: note: expanded from macro '__DIVIDE'
(__typeof__(dividend))(sizeof(dividend) <= sizeof(unsigned long) ? \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:626:6: note: Assuming 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:626:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:633:6: note: 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:633:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:641:6: note: Assuming 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:641:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:647:9: note: Calling 'pl35x_nand_recover_data_hwecc'
return pl35x_nand_recover_data_hwecc(nfc, chip, buf, nfc->ecc_buf);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:478:18: note: Assuming 'chunk' is < field 'steps'
for (chunk = 0; chunk < chip->ecc.steps;
^~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:478:2: note: Loop condition is true. Entering loop body
for (chunk = 0; chunk < chip->ecc.steps;
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:483:7: note: Assuming the condition is false
if (!PL35X_SMC_ECC_VALUE_IS_VALID(ecc_value))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:483:3: note: Taking false branch
if (!PL35X_SMC_ECC_VALUE_IS_VALID(ecc_value))
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:486:7: note: Assuming the condition is false
if (PL35X_SMC_ECC_VALUE_HAS_FAILED(ecc_value)) {
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:85:46: note: expanded from macro 'PL35X_SMC_ECC_VALUE_HAS_FAILED'
#define PL35X_SMC_ECC_VALUE_HAS_FAILED(x) ((x) & BIT(28))
^~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:486:3: note: Taking false branch
if (PL35X_SMC_ECC_VALUE_HAS_FAILED(ecc_value)) {
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:491:3: note: Calling 'pl35x_nand_ecc_reg_to_array'
pl35x_nand_ecc_reg_to_array(chip, ecc_value, calc_ecc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:21: note: Assuming 'ecc_byte' is < field 'bytes'
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:2: note: Loop condition is true. Entering loop body
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:21: note: Assuming 'ecc_byte' is < field 'bytes'
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:2: note: Loop condition is true. Entering loop body
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:21: note: Assuming 'ecc_byte' is >= field 'bytes'
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:446:2: note: Loop condition is false. Execution continues on line 446
for (ecc_byte = 0; ecc_byte < chip->ecc.bytes; ecc_byte++)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:491:3: note: Returning from 'pl35x_nand_ecc_reg_to_array'
pl35x_nand_ecc_reg_to_array(chip, ecc_value, calc_ecc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:492:11: note: Calling 'pl35x_nand_correct_data'
stats = pl35x_nand_correct_data(nfc, data, read_ecc, calc_ecc);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:411:54: note: The left operand of '<<' is a garbage value
calc_ecc_upper = ((calc_ecc[1] >> 4) | (calc_ecc[2] << 4)) &
~~~~~~~~~~~ ^
>> drivers/mtd/nand/raw/pl35x-nand-controller.c:1126:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
return ret;
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1132:33: note: Left side of '&&' is false
struct amba_device *smc_amba = to_amba_device(smc_dev);
^
include/linux/amba/bus.h:103:27: note: expanded from macro 'to_amba_device'
#define to_amba_device(d) container_of(d, struct amba_device, dev)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1132:33: note: Taking false branch
struct amba_device *smc_amba = to_amba_device(smc_dev);
^
include/linux/amba/bus.h:103:27: note: expanded from macro 'to_amba_device'
#define to_amba_device(d) container_of(d, struct amba_device, dev)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1132:33: note: Loop condition is false. Exiting loop
struct amba_device *smc_amba = to_amba_device(smc_dev);
^
include/linux/amba/bus.h:103:27: note: expanded from macro 'to_amba_device'
#define to_amba_device(d) container_of(d, struct amba_device, dev)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1137:6: note: Assuming 'nfc' is non-null
if (!nfc)
^~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1137:2: note: Taking false branch
if (!nfc)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1146:2: note: Taking false branch
if (IS_ERR(nfc->conf_regs))
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1150:2: note: Taking false branch
if (IS_ERR(nfc->io_regs))
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1154:6: note: 'ret' is 0
if (ret)
^~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1154:2: note: Taking false branch
if (ret)
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1157:8: note: Calling 'pl35x_nand_chips_init'
ret = pl35x_nand_chips_init(nfc);
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1109:2: note: 'ret' declared without an initial value
int ret;
^~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:6: note: Assuming 'nchips' is not equal to 0
if (!nchips || nchips > PL35X_NAND_MAX_CS) {
^~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:6: note: Left side of '||' is false
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:17: note: Assuming 'nchips' is <= PL35X_NAND_MAX_CS
if (!nchips || nchips > PL35X_NAND_MAX_CS) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1111:2: note: Taking false branch
if (!nchips || nchips > PL35X_NAND_MAX_CS) {
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1117:29: note: Assuming 'nand_np' is equal to null
for_each_child_of_node(np, nand_np) {
^
include/linux/of.h:1301:48: note: expanded from macro 'for_each_child_of_node'
for (child = of_get_next_child(parent, NULL); child != NULL; \
^~~~~~~~~~~~~
drivers/mtd/nand/raw/pl35x-nand-controller.c:1117:2: note: Loop condition is false. Execution continues on line 1126
for_each_child_of_node(np, nand_np) {
^
include/linux/of.h:1301:2: note: expanded from macro 'for_each_child_of_node'
for (child = of_get_next_child(parent, NULL); child != NULL; \
^
drivers/mtd/nand/raw/pl35x-nand-controller.c:1126:2: note: Undefined or garbage value returned to caller
--
drivers/gpu/drm/mcde/mcde_display.c:254:2: note: Control jumps to 'case 909202777:' at line 318
switch (format) {
^
drivers/gpu/drm/mcde/mcde_display.c:321:3: note: Execution continues on line 327
break;
^
drivers/gpu/drm/mcde/mcde_display.c:327:2: note: Loop condition is false. Exiting loop
writel(val, mcde->regs + conf);
^
arch/arm/include/asm/io.h:308:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:167:20: note: expanded from macro '__iowmb'
#define __iowmb() wmb()
^
arch/arm/include/asm/barrier.h:66:16: note: expanded from macro 'wmb'
#define wmb() __arm_heavy_mb(st)
^
arch/arm/include/asm/barrier.h:58:30: note: expanded from macro '__arm_heavy_mb'
#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0)
^
drivers/gpu/drm/mcde/mcde_display.c:332:2: note: Loop condition is false. Exiting loop
writel(val, mcde->regs + cr);
^
arch/arm/include/asm/io.h:308:25: note: expanded from macro 'writel'
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
^
arch/arm/include/asm/io.h:167:20: note: expanded from macro '__iowmb'
#define __iowmb() wmb()
^
arch/arm/include/asm/barrier.h:66:16: note: expanded from macro 'wmb'
#define wmb() __arm_heavy_mb(st)
^
arch/arm/include/asm/barrier.h:58:30: note: expanded from macro '__arm_heavy_mb'
#define __arm_heavy_mb(x...) do { dsb(x); arm_heavy_mb(); } while (0)
^
drivers/gpu/drm/mcde/mcde_display.c:334:2: note: Returning without writing to 'mcde->dpi_output', which participates in a condition later
return 0;
^
drivers/gpu/drm/mcde/mcde_display.c:1204:2: note: Returning from 'mcde_configure_extsrc'
mcde_configure_extsrc(mcde, MCDE_EXTSRC_0, format);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/mcde/mcde_display.c:1220:6: note: Assuming field 'dpi_output' is false
if (mcde->dpi_output) {
^~~~~~~~~~~~~~~~
drivers/gpu/drm/mcde/mcde_display.c:1220:2: note: Taking false branch
if (mcde->dpi_output) {
^
drivers/gpu/drm/mcde/mcde_display.c:1252:3: note: 3rd function call argument is an uninitialized value
mcde_configure_dsi_formatter(mcde, MCDE_DSI_FORMATTER_0,
^
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
8 warnings generated.
drivers/video/fbdev/nvidia/nvidia.c:124:4: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores]
tmp = 0;
^ ~
drivers/video/fbdev/nvidia/nvidia.c:124:4: note: Value stored to 'tmp' is never read
tmp = 0;
^ ~
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.
>> fs/overlayfs/inode.c:452:16: warning: Value stored to 'realinode' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct inode *realinode = ovl_inode_real(inode);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
fs/overlayfs/inode.c:452:16: note: Value stored to 'realinode' during its initialization is never read
struct inode *realinode = ovl_inode_real(inode);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
include/linux/dcache.h:526:9: warning: Access to field 'd_inode' results in a dereference of a null pointer (loaded from variable 'dentry') [clang-analyzer-core.NullDereference]
return dentry->d_inode;
^
fs/overlayfs/inode.c:1099:28: note: Assuming 'upperdentry' is null
struct inode *realinode = upperdentry ? d_inode(upperdentry) : NULL;
^~~~~~~~~~~
fs/overlayfs/inode.c:1099:28: note: '?' condition is false
fs/overlayfs/inode.c:1101:31: note: Assuming 'lowerpath' is null
struct dentry *lowerdentry = lowerpath ? lowerpath->dentry : NULL;
^~~~~~~~~
fs/overlayfs/inode.c:1101:31: note: '?' condition is false
fs/overlayfs/inode.c:1101:2: note: 'lowerdentry' initialized to a null pointer value
struct dentry *lowerdentry = lowerpath ? lowerpath->dentry : NULL;
^~~~~~~~~~~~~~~~~~~~~~~~~~
fs/overlayfs/inode.c:1104:13: note: 'bylower' is false
int fsid = bylower ? lowerpath->layer->fsid : 0;
^~~~~~~
fs/overlayfs/inode.c:1104:13: note: '?' condition is false
fs/overlayfs/inode.c:1107:12: note: Assuming field 'newinode' is null
int err = oip->newinode ? -EEXIST : -ENOMEM;
^~~~~~~~~~~~~
fs/overlayfs/inode.c:1107:12: note: '?' condition is false
fs/overlayfs/inode.c:1109:7: note: 'realinode' is null
if (!realinode)
^~~~~~~~~
fs/overlayfs/inode.c:1109:2: note: Taking true branch
if (!realinode)
^
fs/overlayfs/inode.c:1110:23: note: Passing null pointer value via 1st parameter 'dentry'
realinode = d_inode(lowerdentry);
^~~~~~~~~~~
fs/overlayfs/inode.c:1110:15: note: Calling 'd_inode'
realinode = d_inode(lowerdentry);
^~~~~~~~~~~~~~~~~~~~
include/linux/dcache.h:526:9: note: Access to field 'd_inode' results in a dereference of a null pointer (loaded from variable 'dentry')
return dentry->d_inode;
^~~~~~
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/media/dvb-frontends/si21xx.c:830:2: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
status |= si21_writeregs(state, PLL_DIVISOR_REG, ®s[0], 0x04);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/si21xx.c:830:2: note: Value stored to 'status' is never read
status |= si21_writeregs(state, PLL_DIVISOR_REG, ®s[0], 0x04);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 4 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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.
net/ethtool/ioctl.c:2094:4: warning: Called function pointer is null (null dereference) [clang-analyzer-core.CallAndMessage]
ops->get_ethtool_phy_stats(dev, &stats, data);
^~~~~~~~~~~~~~~~~~~~~~~~~~
net/ethtool/ioctl.c:2064:6: note: Assuming 'phydev' is non-null
if (!phydev && (!ops->get_ethtool_phy_stats || !ops->get_sset_count))
^~~~~~~
net/ethtool/ioctl.c:2064:14: note: Left side of '&&' is false
if (!phydev && (!ops->get_ethtool_phy_stats || !ops->get_sset_count))
^
net/ethtool/ioctl.c:2067:11: note: Field 'phydev' is non-null
if (dev->phydev && !ops->get_ethtool_phy_stats &&
^
net/ethtool/ioctl.c:2067:6: note: Left side of '&&' is true
if (dev->phydev && !ops->get_ethtool_phy_stats &&
^
net/ethtool/ioctl.c:2067:21: note: Assuming field 'get_ethtool_phy_stats' is null
if (dev->phydev && !ops->get_ethtool_phy_stats &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~
net/ethtool/ioctl.c:2067:6: note: Left side of '&&' is true
if (dev->phydev && !ops->get_ethtool_phy_stats &&
^
net/ethtool/ioctl.c:2068:6: note: Assuming 'phy_ops' is null
phy_ops && phy_ops->get_sset_count)
^~~~~~~
net/ethtool/ioctl.c:2068:14: note: Left side of '&&' is false
phy_ops && phy_ops->get_sset_count)
^
net/ethtool/ioctl.c:2072:6: note: Assuming 'n_stats' is >= 0
if (n_stats < 0)
^~~~~~~~~~~
net/ethtool/ioctl.c:2072:2: note: Taking false branch
if (n_stats < 0)
^
net/ethtool/ioctl.c:2074:6: note: Assuming the condition is false
if (n_stats > S32_MAX / sizeof(u64))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/ethtool/ioctl.c:2074:2: note: Taking false branch
--
^~~~~~~~~
drivers/firewire/core-cdev.c:1482:3: note: Left side of '&&' is false
container_of(packet, struct outbound_phy_packet_event, p);
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/firewire/core-cdev.c:1482:3: note: Taking false branch
container_of(packet, struct outbound_phy_packet_event, p);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/firewire/core-cdev.c:1482:3: note: Loop condition is false. Exiting loop
container_of(packet, struct outbound_phy_packet_event, p);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/firewire/core-cdev.c:1484:2: note: Control jumps to 'case 14:' at line 1493
switch (status) {
^
drivers/firewire/core-cdev.c:1493:63: note: Execution continues on line 1497
case ACK_TYPE_ERROR: e->phy_packet.rcode = RCODE_TYPE_ERROR; break;
^
drivers/firewire/core-cdev.c:1499:2: note: Calling 'queue_event'
queue_event(e->client, &e->event, &e->phy_packet,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firewire/core-cdev.c:281:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&client->lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/firewire/core-cdev.c:281:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&client->lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/firewire/core-cdev.c:282:6: note: Assuming field 'in_shutdown' is true
if (client->in_shutdown)
^~~~~~~~~~~~~~~~~~~
drivers/firewire/core-cdev.c:282:2: note: Taking true branch
if (client->in_shutdown)
^
drivers/firewire/core-cdev.c:283:3: note: Memory is released
kfree(event);
^~~~~~~~~~~~
drivers/firewire/core-cdev.c:1499:2: note: Returning; memory was released
queue_event(e->client, &e->event, &e->phy_packet,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firewire/core-cdev.c:1501:13: note: Use of memory after it is freed
client_put(e->client);
^~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/gpu/drm/sun4i/sun4i_tcon.c:1426:2: warning: Value stored to 'id' is never read [clang-analyzer-deadcode.DeadStores]
id = sun4i_tcon_of_get_id_from_port(port);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/sun4i/sun4i_tcon.c:1426:2: note: Value stored to 'id' is never read
id = sun4i_tcon_of_get_id_from_port(port);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/gpu/drm/sun4i/sun4i_tv.c:491:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(mode->name, tv_mode->name);
^~~~~~
drivers/gpu/drm/sun4i/sun4i_tv.c:491:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(mode->name, tv_mode->name);
^~~~~~
Suppressed 4 warnings (3 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.
3 warnings generated.
Suppressed 3 warnings (3 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 (3 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.
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c:149:2: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
val = readl(hdmi->base + SUN4I_HDMI_PAD_CTRL1_REG);
^
drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c:149:2: note: Value stored to 'val' is never read
Suppressed 3 warnings (3 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 (3 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/phy/rockchip/phy-rockchip-inno-hdmi.c:624:16: warning: Value stored to 'tmdsclock' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:624:16: note: Value stored to 'tmdsclock' during its initialization is never read
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:742:3: warning: Value stored to 'no_c' is never read [clang-analyzer-deadcode.DeadStores]
no_c = 1 << no_c;
^ ~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:742:3: note: Value stored to 'no_c' is never read
no_c = 1 << no_c;
^ ~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:778:16: warning: Value stored to 'tmdsclock' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c:778:16: note: Value stored to 'tmdsclock' during its initialization is never read
unsigned long tmdsclock = inno_hdmi_phy_get_tmdsclk(inno, rate);
^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/media/cec/platform/meson/ao-cec.c:432:10: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
--
^
include/linux/bitfield.h:94:3: note: expanded from macro 'FIELD_PREP'
__BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \
^
include/linux/bitfield.h:54:3: note: expanded from macro '__BF_FIELD_CHECK'
__BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
^
include/linux/build_bug.h:21:2: note: expanded from macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/media/cec/platform/meson/ao-cec.c:248:12: note: Loop condition is false. Exiting loop
u32 reg = FIELD_PREP(CEC_RW_ADDR, address);
^
include/linux/bitfield.h:94:3: note: expanded from macro 'FIELD_PREP'
__BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \
^
include/linux/bitfield.h:54:3: note: expanded from macro '__BF_FIELD_CHECK'
__BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
^
include/linux/build_bug.h:21:2: note: expanded from macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/media/cec/platform/meson/ao-cec.c:251:6: note: 'res' is non-null
if (res && *res)
^~~
drivers/media/cec/platform/meson/ao-cec.c:251:6: note: Left side of '&&' is true
drivers/media/cec/platform/meson/ao-cec.c:251:2: note: Taking true branch
if (res && *res)
^
drivers/media/cec/platform/meson/ao-cec.c:252:3: note: Returning without writing to '*data'
return;
^
drivers/media/cec/platform/meson/ao-cec.c:448:3: note: Returning from 'meson_ao_cec_read'
meson_ao_cec_read(ao_cec, CEC_RX_MSG_0_HEADER + i, &byte, &ret);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/cec/platform/meson/ao-cec.c:450:25: note: Assigned value is garbage or undefined
ao_cec->rx_msg.msg[i] = byte;
^ ~~~~
Suppressed 3 warnings (3 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/i2c/busses/i2c-rk3x.c:897:2: warning: Value stored to 't_low_ns' is never read [clang-analyzer-deadcode.DeadStores]
t_low_ns = div_u64(((u64)calc.div_low + 1) * 8 * 1000000000, clk_rate);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-rk3x.c:897:2: note: Value stored to 't_low_ns' is never read
t_low_ns = div_u64(((u64)calc.div_low + 1) * 8 * 1000000000, clk_rate);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-rk3x.c:898:2: warning: Value stored to 't_high_ns' is never read [clang-analyzer-deadcode.DeadStores]
t_high_ns = div_u64(((u64)calc.div_high + 1) * 8 * 1000000000,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/busses/i2c-rk3x.c:898:2: note: Value stored to 't_high_ns' is never read
t_high_ns = div_u64(((u64)calc.div_high + 1) * 8 * 1000000000,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
>> drivers/i2c/busses/i2c-rcar.c:412:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = rcar_i2c_priv_to_dev(priv);
^~~
drivers/i2c/busses/i2c-rcar.c:412:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = rcar_i2c_priv_to_dev(priv);
^~~
Suppressed 3 warnings (3 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 (3 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 (3 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.
drivers/clk/clk-max9485.c:199:9: warning: Access to field 'out' results in a dereference of a null pointer (loaded from variable 'prev') [clang-analyzer-core.NullDereference]
return prev->out;
^~~~
drivers/clk/clk-max9485.c:165:36: note: 'prev' initialized to a null pointer value
const struct max9485_rate *curr, *prev = NULL;
^~~~
drivers/clk/clk-max9485.c:167:29: note: Assuming field 'out' is equal to 0
for (curr = max9485_rates; curr->out != 0; curr++) {
^~~~~~~~~~~~~~
drivers/clk/clk-max9485.c:167:2: note: Loop condition is false. Execution continues on line 199
for (curr = max9485_rates; curr->out != 0; curr++) {
^
drivers/clk/clk-max9485.c:199:9: note: Access to field 'out' results in a dereference of a null pointer (loaded from variable 'prev')
return prev->out;
^~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/regulator/qcom_spmi-regulator.c:401:8: warning: Excessive padding in 'struct spmi_regulator_data' (4 padding bytes, where 0 is optimal).
Optimal fields order:
name,
supply,
ocp,
base,
force_type,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
--
^
drivers/gpu/drm/savage/savage_bci.c:987:9: note: Calling 'savage_freelist_get'
buf = savage_freelist_get(dev);
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/savage/savage_bci.c:256:2: note: Field 'status_ptr' is non-null
UPDATE_EVENT_COUNTER();
^
drivers/gpu/drm/savage/savage_drv.h:562:16: note: expanded from macro 'UPDATE_EVENT_COUNTER'
if (dev_priv->status_ptr) { \
^
drivers/gpu/drm/savage/savage_bci.c:256:2: note: Taking true branch
UPDATE_EVENT_COUNTER();
^
drivers/gpu/drm/savage/savage_drv.h:562:2: note: expanded from macro 'UPDATE_EVENT_COUNTER'
if (dev_priv->status_ptr) { \
^
drivers/gpu/drm/savage/savage_bci.c:256:2: note: 'count' is >= field 'event_counter'
UPDATE_EVENT_COUNTER();
^
drivers/gpu/drm/savage/savage_drv.h:566:7: note: expanded from macro 'UPDATE_EVENT_COUNTER'
if (count < dev_priv->event_counter) \
^~~~~
drivers/gpu/drm/savage/savage_bci.c:256:2: note: Taking false branch
UPDATE_EVENT_COUNTER();
^
drivers/gpu/drm/savage/savage_drv.h:566:3: note: expanded from macro 'UPDATE_EVENT_COUNTER'
if (count < dev_priv->event_counter) \
^
drivers/gpu/drm/savage/savage_bci.c:256:2: note: Loop condition is false. Exiting loop
UPDATE_EVENT_COUNTER();
^
drivers/gpu/drm/savage/savage_drv.h:561:33: note: expanded from macro 'UPDATE_EVENT_COUNTER'
#define UPDATE_EVENT_COUNTER( ) do { \
^
drivers/gpu/drm/savage/savage_bci.c:257:16: note: Field 'status_ptr' is non-null
if (dev_priv->status_ptr)
^
drivers/gpu/drm/savage/savage_bci.c:257:2: note: Taking true branch
if (dev_priv->status_ptr)
^
drivers/gpu/drm/savage/savage_bci.c:262:6: note: 'event' is <= field 'event_counter'
if (event > dev_priv->event_counter)
^~~~~
drivers/gpu/drm/savage/savage_bci.c:262:2: note: Taking false branch
if (event > dev_priv->event_counter)
^
drivers/gpu/drm/savage/savage_bci.c:268:12: note: Field 'buf' is non-null
if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
^
drivers/gpu/drm/savage/savage_bci.c:268:6: note: Left side of '&&' is true
if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
^
drivers/gpu/drm/savage/savage_bci.c:268:20: note: 'wrap' is > field 'wrap'
if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
^
drivers/gpu/drm/savage/savage_drv.h:578:18: note: expanded from macro 'TEST_AGE'
( (age)->wrap < (w) || ( (age)->wrap == (w) && (age)->event <= (e) ) )
^~~
drivers/gpu/drm/savage/savage_bci.c:268:20: note: Left side of '||' is true
if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
^
drivers/gpu/drm/savage/savage_drv.h:578:22: note: expanded from macro 'TEST_AGE'
( (age)->wrap < (w) || ( (age)->wrap == (w) && (age)->event <= (e) ) )
^
drivers/gpu/drm/savage/savage_bci.c:270:3: note: 'prev' initialized to a null pointer value
drm_savage_buf_priv_t *prev = tail->prev;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/savage/savage_bci.c:271:14: note: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'prev')
prev->next = next;
~~~~ ^
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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/cpufreq/armada-37xx-cpufreq.c:158:3: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
val = ARMADA_37XX_NB_CLK_SEL_TBG << ARMADA_37XX_NB_CLK_SEL_OFF;
^
drivers/cpufreq/armada-37xx-cpufreq.c:158:3: note: Value stored to 'val' is never read
>> drivers/cpufreq/armada-37xx-cpufreq.c:159:3: warning: Value stored to 'mask' is never read [clang-analyzer-deadcode.DeadStores]
mask = (ARMADA_37XX_NB_CLK_SEL_MASK
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/cpufreq/armada-37xx-cpufreq.c:159:3: note: Value stored to 'mask' is never read
mask = (ARMADA_37XX_NB_CLK_SEL_MASK
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c:74:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = ctx->dev;
^~~ ~~~~~~~~
drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c:74:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = ctx->dev;
^~~ ~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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.
drivers/regulator/bcm590xx-regulator.c:140:8: warning: Excessive padding in 'struct bcm590xx_info' (6 padding bytes, where 2 is optimal).
Optimal fields order:
name,
vin_name,
volt_table,
linear_ranges,
n_voltages,
n_linear_ranges,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct bcm590xx_info {
~~~~~~~^~~~~~~~~~~~~~~
drivers/regulator/bcm590xx-regulator.c:140:8: note: Excessive padding in 'struct bcm590xx_info' (6 padding bytes, where 2 is optimal). Optimal fields order: name, vin_name, volt_table, linear_ranges, n_voltages, n_linear_ranges, consider reordering the fields or adding explicit padding members
struct bcm590xx_info {
~~~~~~~^~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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.
drivers/regulator/bd9571mwv-regulator.c:91:6: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
val >>= ffs(rdev->desc->vsel_mask) - 1;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/regulator/bd9571mwv-regulator.c:83:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
drivers/regulator/bd9571mwv-regulator.c:83:2: note: Taking false branch
if (ret < 0)
^
--
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/minmax.h:104:48: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:14: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:31:25: note: expanded from macro '__cmp_once'
typeof(x) unique_x = (x); \
^
drivers/hwmon/adc128d818.c:217:11: note: '?' condition is false
regval = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -128, 127);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:48: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:112:27: note: expanded from macro 'max_t'
#define max_t(type, x, y) __careful_cmp((type)(x), (type)(y), >)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/adc128d818.c:217:11: note: '__UNIQUE_ID___x310' is < '__UNIQUE_ID___y311'
regval = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -128, 127);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^~~
drivers/hwmon/adc128d818.c:217:11: note: '?' condition is true
regval = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -128, 127);
^
include/linux/minmax.h:137:32: note: expanded from macro 'clamp_val'
#define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
^
include/linux/minmax.h:124:36: note: expanded from macro 'clamp_t'
#define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
^
include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
#define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
^
include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
__cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
^
include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
__cmp(unique_x, unique_y, op); })
^
include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
#define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
^
drivers/hwmon/adc128d818.c:217:2: note: The value -128 is assigned to 'regval'
regval = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -128, 127);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/hwmon/adc128d818.c:218:29: note: The result of the left shift is undefined because the left operand is negative
data->temp[index] = regval << 1;
~~~~~~ ^
Suppressed 3 warnings (3 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.
drivers/gpu/drm/tiny/simpledrm.c:719:21: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct drm_device *dev = &sdev->dev;
^~~ ~~~~~~~~~~
drivers/gpu/drm/tiny/simpledrm.c:719:21: note: Value stored to 'dev' during its initialization is never read
struct drm_device *dev = &sdev->dev;
^~~ ~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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 (3 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.
>> drivers/gpu/drm/xlnx/zynqmp_dp.c:994:11: warning: Array access (from variable 'buf') results in a null pointer dereference [clang-analyzer-core.NullDereference]
buf[i] = zynqmp_dp_read(dp, ZYNQMP_DP_AUX_REPLY_DATA);
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1003:25: note: Left side of '&&' is false
struct zynqmp_dp *dp = container_of(aux, struct zynqmp_dp, aux);
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1003:25: note: Taking false branch
struct zynqmp_dp *dp = container_of(aux, struct zynqmp_dp, aux);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1003:25: note: Loop condition is false. Exiting loop
struct zynqmp_dp *dp = container_of(aux, struct zynqmp_dp, aux);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1009:9: note: Assuming 'iter' is 0
iter = iter ? iter : 1;
^~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:1009:9: note: '?' condition is false
drivers/gpu/drm/xlnx/zynqmp_dp.c:1011:2: note: Loop condition is true. Entering loop body
for (i = 0; i < iter; i++) {
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:1013:13: note: Passing value via 4th parameter 'buf'
msg->buffer, msg->size,
^~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:1012:9: note: Calling 'zynqmp_dp_aux_cmd_submit'
ret = zynqmp_dp_aux_cmd_submit(dp, msg->request, msg->address,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:949:18: note: Assuming the condition is true
bool is_read = (cmd & AUX_READ_BIT) ? true : false;
^~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:949:17: note: '?' condition is true
bool is_read = (cmd & AUX_READ_BIT) ? true : false;
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:953:6: note: Assuming the condition is false
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REQUEST)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:953:2: note: Taking false branch
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REQUEST)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:957:7: note: 'is_read' is true
if (!is_read)
^~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:957:2: note: Taking false branch
if (!is_read)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:963:6: note: Assuming 'buf' is null
if (!buf || !bytes)
^~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:963:11: note: Left side of '||' is true
if (!buf || !bytes)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:970:2: note: Loop condition is true. Entering loop body
for (i = 0; ; i++) {
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:972:7: note: Assuming the condition is true
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REPLY)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:972:3: note: Taking true branch
if (reg & ZYNQMP_DP_INTERRUPT_SIGNAL_STATE_REPLY)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:973:4: note: Execution continues on line 982
break;
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:983:6: note: 'reply' is non-null
if (reply)
^~~~~
drivers/gpu/drm/xlnx/zynqmp_dp.c:983:2: note: Taking true branch
if (reply)
^
drivers/gpu/drm/xlnx/zynqmp_dp.c:986:6: note: 'is_read' is true
--
^
drivers/media/dvb-frontends/atbm8830.c:358:2: note: Calling 'atbm8830_read_reg'
atbm8830_read_reg(priv, REG_FRAME_ERR_CNT + 1, &t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/atbm8830.c:65:6: note: Assuming 'ret' is not equal to 1
if (ret != 1) {
^~~~~~~~
drivers/media/dvb-frontends/atbm8830.c:65:2: note: Taking true branch
if (ret != 1) {
^
drivers/media/dvb-frontends/atbm8830.c:66:3: note: Assuming 'debug' is 0
dprintk("%s: error reg=0x%04x, ret=%i\n", __func__, reg, ret);
^
drivers/media/dvb-frontends/atbm8830.c:17:7: note: expanded from macro 'dprintk'
if (debug) \
^~~~~
drivers/media/dvb-frontends/atbm8830.c:66:3: note: Taking false branch
dprintk("%s: error reg=0x%04x, ret=%i\n", __func__, reg, ret);
^
drivers/media/dvb-frontends/atbm8830.c:17:3: note: expanded from macro 'dprintk'
if (debug) \
^
drivers/media/dvb-frontends/atbm8830.c:66:3: note: Loop condition is false. Exiting loop
dprintk("%s: error reg=0x%04x, ret=%i\n", __func__, reg, ret);
^
drivers/media/dvb-frontends/atbm8830.c:16:2: note: expanded from macro 'dprintk'
do { \
^
drivers/media/dvb-frontends/atbm8830.c:67:3: note: Returning without writing to '*p_data'
return -EIO;
^
drivers/media/dvb-frontends/atbm8830.c:358:2: note: Returning from 'atbm8830_read_reg'
atbm8830_read_reg(priv, REG_FRAME_ERR_CNT + 1, &t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/atbm8830.c:359:16: note: The left operand of '&' is a garbage value
frame_err = t & 0x7F;
~ ^
drivers/media/dvb-frontends/atbm8830.c:382:10: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
pwm = t & 0x03;
~ ^
drivers/media/dvb-frontends/atbm8830.c:376:2: note: 't' declared without an initial value
u8 t;
^~~~
drivers/media/dvb-frontends/atbm8830.c:378:2: note: Assuming 'debug' is 0
dprintk("%s\n", __func__);
^
drivers/media/dvb-frontends/atbm8830.c:17:7: note: expanded from macro 'dprintk'
if (debug) \
^~~~~
drivers/media/dvb-frontends/atbm8830.c:378:2: note: Taking false branch
dprintk("%s\n", __func__);
^
drivers/media/dvb-frontends/atbm8830.c:17:3: note: expanded from macro 'dprintk'
if (debug) \
^
drivers/media/dvb-frontends/atbm8830.c:378:2: note: Loop condition is false. Exiting loop
dprintk("%s\n", __func__);
^
drivers/media/dvb-frontends/atbm8830.c:16:2: note: expanded from macro 'dprintk'
do { \
^
drivers/media/dvb-frontends/atbm8830.c:381:2: note: Calling 'atbm8830_read_reg'
atbm8830_read_reg(priv, REG_AGC_PWM_VAL + 1, &t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/atbm8830.c:65:6: note: Assuming 'ret' is not equal to 1
if (ret != 1) {
^~~~~~~~
drivers/media/dvb-frontends/atbm8830.c:65:2: note: Taking true branch
if (ret != 1) {
^
drivers/media/dvb-frontends/atbm8830.c:66:3: note: Assuming 'debug' is 0
dprintk("%s: error reg=0x%04x, ret=%i\n", __func__, reg, ret);
^
drivers/media/dvb-frontends/atbm8830.c:17:7: note: expanded from macro 'dprintk'
if (debug) \
^~~~~
drivers/media/dvb-frontends/atbm8830.c:66:3: note: Taking false branch
dprintk("%s: error reg=0x%04x, ret=%i\n", __func__, reg, ret);
^
drivers/media/dvb-frontends/atbm8830.c:17:3: note: expanded from macro 'dprintk'
if (debug) \
^
drivers/media/dvb-frontends/atbm8830.c:66:3: note: Loop condition is false. Exiting loop
dprintk("%s: error reg=0x%04x, ret=%i\n", __func__, reg, ret);
^
drivers/media/dvb-frontends/atbm8830.c:16:2: note: expanded from macro 'dprintk'
do { \
^
drivers/media/dvb-frontends/atbm8830.c:67:3: note: Returning without writing to '*p_data'
return -EIO;
^
drivers/media/dvb-frontends/atbm8830.c:381:2: note: Returning from 'atbm8830_read_reg'
atbm8830_read_reg(priv, REG_AGC_PWM_VAL + 1, &t);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/atbm8830.c:382:10: note: The left operand of '&' is a garbage value
pwm = t & 0x03;
~ ^
Suppressed 3 warnings (3 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.
>> drivers/gpu/drm/tegra/hub.c:243:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = dc->dev;
^~~ ~~~~~~~
drivers/gpu/drm/tegra/hub.c:243:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = dc->dev;
^~~ ~~~~~~~
drivers/gpu/drm/tegra/hub.c:381:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:381:2: note: Value stored to 'value' is never read
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:395:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_plane_readl(plane, DC_WIN_CORE_PRECOMP_WGRP_PIPE_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:395:2: note: Value stored to 'value' is never read
value = tegra_plane_readl(plane, DC_WIN_CORE_PRECOMP_WGRP_PIPE_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:400:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_POOL_CONFIG);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:400:2: note: Value stored to 'value' is never read
value = tegra_plane_readl(plane, DC_WIN_CORE_IHUB_WGRP_POOL_CONFIG);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:588:3: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = HORIZONTAL_TAPS_5 | VERTICAL_TAPS_5;
^
drivers/gpu/drm/tegra/hub.c:588:3: note: Value stored to 'value' is never read
drivers/gpu/drm/tegra/hub.c:593:4: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = HORIZONTAL_TAPS_2 | VERTICAL_TAPS_2;
^
drivers/gpu/drm/tegra/hub.c:593:4: note: Value stored to 'value' is never read
drivers/gpu/drm/tegra/hub.c:891:2: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores]
value = tegra_dc_readl(dc, DC_DISP_IHUB_COMMON_DISPLAY_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/tegra/hub.c:891:2: note: Value stored to 'value' is never read
value = tegra_dc_readl(dc, DC_DISP_IHUB_COMMON_DISPLAY_FETCH_METER);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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.
drivers/firewire/ohci.c:1398:4: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
dma_unmap_single(ohci->card.device, payload_bus,
^
include/linux/dma-mapping.h:407:38: note: expanded from macro 'dma_unmap_single'
#define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
^
drivers/firewire/ohci.c:2538:2: note: Calling 'at_context_transmit'
at_context_transmit(&ohci->at_response_ctx, packet);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firewire/ohci.c:1631:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&ctx->ohci->lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/firewire/ohci.c:1631:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&ctx->ohci->lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/firewire/ohci.c:1633:6: note: Assuming the condition is false
if (HEADER_GET_DESTINATION(packet->header[0]) == ctx->ohci->node_id &&
^
drivers/firewire/ohci.c:1506:35: note: expanded from macro 'HEADER_GET_DESTINATION'
#define HEADER_GET_DESTINATION(q) (((q) >> 16) & 0xffff)
^
drivers/firewire/ohci.c:1633:70: note: Left side of '&&' is false
if (HEADER_GET_DESTINATION(packet->header[0]) == ctx->ohci->node_id &&
^
drivers/firewire/ohci.c:1640:8: note: Calling 'at_context_queue_packet'
ret = at_context_queue_packet(ctx, packet);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/firewire/ohci.c:1288:20: note: 'payload_bus' declared without an initial value
dma_addr_t d_bus, payload_bus;
^~~~~~~~~~~
drivers/firewire/ohci.c:1295:6: note: Assuming 'd' is not equal to NULL
if (d == NULL) {
^~~~~~~~~
drivers/firewire/ohci.c:1295:2: note: Taking false branch
if (d == NULL) {
^
drivers/firewire/ohci.c:1311:2: note: Control jumps to 'case 10:' at line 1346
switch (tcode) {
^
drivers/firewire/ohci.c:1351:3: note: Execution continues on line 1359
break;
^
drivers/firewire/ohci.c:1359:2: note: Taking false branch
BUILD_BUG_ON(sizeof(struct driver_data) > sizeof(struct descriptor));
^
include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^
--
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/decnet/dn_route.c:1118:16: note: Left side of '&&' is false
BUG_ON(neigh && neigh->dev != dev_out);
^
net/decnet/dn_route.c:1118:3: note: Taking false branch
BUG_ON(neigh && neigh->dev != dev_out);
^
include/asm-generic/bug.h:161:32: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^
net/decnet/dn_route.c:1118:3: note: Loop condition is false. Exiting loop
BUG_ON(neigh && neigh->dev != dev_out);
^
include/asm-generic/bug.h:161:27: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^
net/decnet/dn_route.c:1122:7: note: 'neigh' is null
if (neigh)
^~~~~
net/decnet/dn_route.c:1122:3: note: Taking false branch
if (neigh)
^
net/decnet/dn_route.c:1124:7: note: 'gateway' is equal to 0
if (gateway == 0)
^~~~~~~
net/decnet/dn_route.c:1124:3: note: Taking true branch
if (gateway == 0)
^
net/decnet/dn_route.c:1126:7: note: Assuming field 'saddr' is not equal to 0
if (fld.saddr == 0) {
^~~~~~~~~~~~~~
net/decnet/dn_route.c:1126:3: note: Taking false branch
if (fld.saddr == 0) {
^
net/decnet/dn_route.c:1135:3: note: Control jumps to line 1175
goto make_route;
^
net/decnet/dn_route.c:1175:6: note: Assuming the condition is false
if (dev_out->flags & IFF_LOOPBACK)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/decnet/dn_route.c:1175:2: note: Taking false branch
if (dev_out->flags & IFF_LOOPBACK)
^
net/decnet/dn_route.c:1179:6: note: Assuming 'rt' is not equal to NULL
if (rt == NULL)
^~~~~~~~~~
net/decnet/dn_route.c:1179:2: note: Taking false branch
if (rt == NULL)
^
net/decnet/dn_route.c:1192:22: note: Assuming 'gateway' is not equal to 0
rt->rt_gateway = gateway ? gateway : fld.daddr;
^~~~~~~
net/decnet/dn_route.c:1192:22: note: '?' condition is true
net/decnet/dn_route.c:1205:2: note: Taking false branch
if (flags & RTCF_LOCAL)
^
net/decnet/dn_route.c:1208:8: note: Calling 'dn_rt_set_next_hop'
err = dn_rt_set_next_hop(rt, &res);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/decnet/dn_route.c:875:6: note: 'fi' is null
if (fi) {
^~
net/decnet/dn_route.c:875:2: note: Taking false branch
if (fi) {
^
net/decnet/dn_route.c:883:6: note: Assuming 'dev' is equal to NULL
if (dev != NULL && rt->n == NULL) {
^~~~~~~~~~~
net/decnet/dn_route.c:883:18: note: Left side of '&&' is false
if (dev != NULL && rt->n == NULL) {
^
net/decnet/dn_route.c:890:39: note: Access to field 'mtu' results in a dereference of a null pointer (loaded from field 'dev')
if (dst_metric(&rt->dst, RTAX_MTU) > rt->dst.dev->mtu)
^ ~~~
Suppressed 3 warnings (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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 (3 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/crypto/mxs-dcp.c:302:22: warning: Value stored to 'src' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct scatterlist *src = req->src;
^~~ ~~~~~~~~
drivers/crypto/mxs-dcp.c:302:22: note: Value stored to 'src' during its initialization is never read
struct scatterlist *src = req->src;
^~~ ~~~~~~~~
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.
drivers/crypto/s5p-sss.c:1313:22: warning: Value stored to 'dd' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct s5p_aes_dev *dd = ctx->dd;
^~ ~~~~~~~
drivers/crypto/s5p-sss.c:1313:22: note: Value stored to 'dd' during its initialization is never read
struct s5p_aes_dev *dd = ctx->dd;
^~ ~~~~~~~
drivers/crypto/s5p-sss.c:1339:10: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
ctx->sg = NULL;
^
drivers/crypto/s5p-sss.c:1642:9: note: '?' condition is false
return s5p_hash_init(req) ?: s5p_hash_finup(req);
^
drivers/crypto/s5p-sss.c:1642:31: note: Calling 's5p_hash_finup'
return s5p_hash_init(req) ?: s5p_hash_finup(req);
^~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1576:9: note: Calling 's5p_hash_update'
err1 = s5p_hash_update(req);
^~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1509:6: note: Assuming field 'nbytes' is not equal to 0
if (!req->nbytes)
^~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1509:2: note: Taking false branch
if (!req->nbytes)
^
drivers/crypto/s5p-sss.c:1512:6: note: Assuming the condition is false
if (ctx->bufcnt + req->nbytes <= BUFLEN) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1512:2: note: Taking false branch
if (ctx->bufcnt + req->nbytes <= BUFLEN) {
^
drivers/crypto/s5p-sss.c:1519:9: note: Calling 's5p_hash_enqueue'
return s5p_hash_enqueue(req, true); /* HASH_OP_UPDATE */
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1493:9: note: Calling 's5p_hash_handle_queue'
return s5p_hash_handle_queue(tctx->dd, req);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/s5p-sss.c:1380:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dd->hash_lock, flags);
^
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/crypto/s5p-sss.c:1380:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dd->hash_lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/crypto/s5p-sss.c:1381:6: note: 'req' is non-null
if (req)
^~~
drivers/crypto/s5p-sss.c:1381:2: note: Taking true branch
if (req)
^
drivers/crypto/s5p-sss.c:1384:6: note: Assuming the condition is false
if (test_bit(HASH_FLAGS_BUSY, &dd->hash_flags)) {
^
include/asm-generic/bitops/non-atomic.h:120:18: note: expanded from macro 'test_bit'
#define test_bit arch_test_bit
^
drivers/crypto/s5p-sss.c:1384:2: note: Taking false branch
if (test_bit(HASH_FLAGS_BUSY, &dd->hash_flags)) {
^
drivers/crypto/s5p-sss.c:1391:6: note: Assuming 'async_req' is non-null
if (async_req)
^~~~~~~~~
drivers/crypto/s5p-sss.c:1391:2: note: Taking true branch
if (async_req)
^
drivers/crypto/s5p-sss.c:1392:3: note: '?' condition is true
set_bit(HASH_FLAGS_BUSY, &dd->hash_flags);
^
arch/arm/include/asm/bitops.h:189:25: note: expanded from macro 'set_bit'
#define set_bit(nr,p) ATOMIC_BITOP(set_bit,nr,p)
^
arch/arm/include/asm/bitops.h:181:3: note: expanded from macro 'ATOMIC_BITOP'
(__builtin_constant_p(nr) ? ____atomic_##name(nr, p) : _##name(nr,p))
^
drivers/crypto/s5p-sss.c:1396:7: note: 'async_req' is non-null
if (!async_req)
^~~~~~~~~
drivers/crypto/s5p-sss.c:1396:2: note: Taking false branch
if (!async_req)
^
drivers/crypto/s5p-sss.c:1399:6: note: Assuming 'backlog' is null
if (backlog)
^~~~~~~
drivers/crypto/s5p-sss.c:1399:2: note: Taking false branch
if (backlog)
--
include/linux/spinlock.h:393:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:254:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
net/mac80211/tx.c:4656:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&local->queue_stop_reason_lock, flags);
^
include/linux/spinlock.h:391:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
net/mac80211/tx.c:4657:14: note: Assuming 'i' is < field 'queues'
for (i = 0; i < local->hw.queues; i++) {
^~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4657:2: note: Loop condition is true. Entering loop body
for (i = 0; i < local->hw.queues; i++) {
^
net/mac80211/tx.c:4662:7: note: Assuming the condition is true
if (local->queue_stop_reasons[i] ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:36: note: Left side of '||' is true
if (local->queue_stop_reasons[i] ||
^
net/mac80211/tx.c:4664:4: note: Execution continues on line 4657
continue;
^
net/mac80211/tx.c:4657:14: note: Assuming 'i' is < field 'queues'
for (i = 0; i < local->hw.queues; i++) {
^~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4657:2: note: Loop condition is true. Entering loop body
for (i = 0; i < local->hw.queues; i++) {
^
net/mac80211/tx.c:4662:7: note: Assuming the condition is true
if (local->queue_stop_reasons[i] ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:36: note: Left side of '||' is true
if (local->queue_stop_reasons[i] ||
^
net/mac80211/tx.c:4664:4: note: Execution continues on line 4657
continue;
^
net/mac80211/tx.c:4657:14: note: Assuming 'i' is < field 'queues'
for (i = 0; i < local->hw.queues; i++) {
^~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4657:2: note: Loop condition is true. Entering loop body
for (i = 0; i < local->hw.queues; i++) {
^
net/mac80211/tx.c:4662:7: note: Assuming the condition is false
if (local->queue_stop_reasons[i] ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:7: note: Left side of '||' is false
net/mac80211/tx.c:4663:7: note: Assuming the condition is false
skb_queue_empty(&local->pending[i]))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4662:3: note: Taking false branch
if (local->queue_stop_reasons[i] ||
^
net/mac80211/tx.c:4666:3: note: Loop condition is true. Entering loop body
while (!skb_queue_empty(&local->pending[i])) {
^
net/mac80211/tx.c:4670:16: note: Assuming field 'vif' is non-null
if (WARN_ON(!info->control.vif)) {
^
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
net/mac80211/tx.c:4670:4: note: Taking false branch
if (WARN_ON(!info->control.vif)) {
^
net/mac80211/tx.c:4678:11: note: Calling 'ieee80211_tx_pending_skb'
txok = ieee80211_tx_pending_skb(local, skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4610:6: note: Assuming the condition is false
if (info->control.flags & IEEE80211_TX_INTCFL_NEED_TXPROCESSING) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4610:2: note: Taking false branch
if (info->control.flags & IEEE80211_TX_INTCFL_NEED_TXPROCESSING) {
^
net/mac80211/tx.c:4618:13: note: Assuming the condition is false
} else if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4618:9: note: Taking false branch
} else if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) {
^
net/mac80211/tx.c:4631:3: note: Calling '__skb_queue_head_init'
__skb_queue_head_init(&skbs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4631:3: note: Returning from '__skb_queue_head_init'
__skb_queue_head_init(&skbs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4632:3: note: Calling '__skb_queue_tail'
__skb_queue_tail(&skbs, skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2081:2: note: Calling '__skb_queue_before'
__skb_queue_before(list, (struct sk_buff *)list, newsk);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2048:2: note: 2nd function call argument is an uninitialized value
__skb_insert(newsk, next->prev, next, list);
^ ~~~~~~~~~~
>> net/mac80211/tx.c:665:24: warning: Value stored to 'hdr' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct ieee80211_hdr *hdr = (void *)tx->skb->data;
^~~ ~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:665:24: note: Value stored to 'hdr' during its initialization is never read
struct ieee80211_hdr *hdr = (void *)tx->skb->data;
^~~ ~~~~~~~~~~~~~~~~~~~~~
>> net/mac80211/tx.c:670:7: warning: Value stored to 'encap' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
bool encap = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP;
^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:670:7: note: Value stored to 'encap' during its initialization is never read
bool encap = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP;
^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:2596:4: warning: Null pointer passed as 2nd argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(hdr.addr1, sta->sta.addr, ETH_ALEN);
^ ~~~~~~~~~~~~~
net/mac80211/tx.c:2578:2: note: Taking true branch
if (IS_ERR(sta))
^
net/mac80211/tx.c:2591:2: note: Control jumps to 'case NL80211_IFTYPE_AP_VLAN:' at line 2592
switch (sdata->vif.type) {
^
net/mac80211/tx.c:2593:7: note: Assuming field 'use_4addr' is true
if (sdata->wdev.use_4addr) {
^~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:2593:3: note: Taking true branch
if (sdata->wdev.use_4addr) {
^
net/mac80211/tx.c:2596:4: note: Null pointer passed as 2nd argument to memory copy function
memcpy(hdr.addr1, sta->sta.addr, ETH_ALEN);
^ ~~~~~~~~~~~~~
net/mac80211/tx.c:3476:11: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
switch (key->conf.cipher) {
^
net/mac80211/tx.c:5751:6: note: Assuming 'skb' is non-null
if (!skb)
^~~~
net/mac80211/tx.c:5751:2: note: Taking false branch
if (!skb)
^
net/mac80211/tx.c:5754:2: note: Calling 'skb_reserve'
skb_reserve(skb, local->hw.extra_tx_headroom);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2414:1: note: Returning without writing to 'skb->.sk', which participates in a condition later
}
^
net/mac80211/tx.c:5754:2: note: Returning from 'skb_reserve'
skb_reserve(skb, local->hw.extra_tx_headroom);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:5763:2: note: Calling '__ieee80211_subif_start_xmit'
__ieee80211_subif_start_xmit(skb, skb->dev, 0,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4166:6: note: Assuming the condition is false
if (unlikely(skb->len < ETH_HLEN)) {
^
include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4166:2: note: Taking false branch
if (unlikely(skb->len < ETH_HLEN)) {
^
net/mac80211/tx.c:4173:2: note: Taking false branch
if (ieee80211_lookup_ra_sta(sdata, skb, &sta))
^
net/mac80211/tx.c:4176:2: note: Taking false branch
if (IS_ERR(sta))
^
net/mac80211/tx.c:4179:6: note: Assuming field 'wake_tx_queue' is null
if (local->ops->wake_tx_queue) {
^~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/tx.c:4179:2: note: Taking false branch
if (local->ops->wake_tx_queue) {
^
net/mac80211/tx.c:4187:6: note: 'sta' is non-null
if (sta) {
^~~
net/mac80211/tx.c:4187:2: note: Taking true branch
if (sta) {
^
net/mac80211/tx.c:4192:13: note: Left side of '||' is false
fast_tx = rcu_dereference(sta->fast_tx);
^
include/linux/rcupdate.h:596:28: note: expanded from macro 'rcu_dereference'
#define rcu_dereference(p) rcu_dereference_check(p, 0)
^
include/linux/rcupdate.h:528:2: note: expanded from macro 'rcu_dereference_check'
__rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
^
include/linux/rcupdate.h:389:48: note: expanded from macro '__rcu_dereference_check'
typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:290:3: note: expanded from macro '__native_word'
(sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
^
net/mac80211/tx.c:4192:13: note: Left side of '||' is false
fast_tx = rcu_dereference(sta->fast_tx);
^
include/linux/rcupdate.h:596:28: note: expanded from macro 'rcu_dereference'
#define rcu_dereference(p) rcu_dereference_check(p, 0)
^
include/linux/rcupdate.h:528:2: note: expanded from macro 'rcu_dereference_check'
__rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
--
^
net/can/j1939/main.c:150:28: note: Loop condition is false. Exiting loop
struct j1939_priv *priv = container_of(kref, struct j1939_priv, kref);
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
net/can/j1939/main.c:153:2: note: Taking false branch
netdev_dbg(priv->ndev, "%s: 0x%p\n", __func__, priv);
^
include/linux/netdevice.h:5333:2: note: expanded from macro 'netdev_dbg'
if (0) \
^
net/can/j1939/main.c:155:2: note: Assuming '__ret_warn_on' is not equal to 0
WARN_ON_ONCE(!list_empty(&priv->active_session_list));
^
include/asm-generic/bug.h:179:33: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:167:2: note: expanded from macro 'WARN_ON'
unlikely(__ret_warn_on); \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
net/can/j1939/main.c:156:2: note: Assuming '__ret_warn_on' is not equal to 0
WARN_ON_ONCE(!list_empty(&priv->ecus));
^
include/asm-generic/bug.h:179:33: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:167:2: note: expanded from macro 'WARN_ON'
unlikely(__ret_warn_on); \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
net/can/j1939/main.c:157:2: note: Assuming '__ret_warn_on' is not equal to 0
WARN_ON_ONCE(!list_empty(&priv->j1939_socks));
^
include/asm-generic/bug.h:179:33: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:167:2: note: expanded from macro 'WARN_ON'
unlikely(__ret_warn_on); \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
net/can/j1939/main.c:160:2: note: Memory is released
kfree(priv);
^~~~~~~~~~~
include/linux/kref.h:65:3: note: Returning; memory was released
release(kref);
^~~~~~~~~~~~~
net/can/j1939/main.c:165:2: note: Returning; memory was released
kref_put(&priv->kref, __j1939_priv_release);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/can/j1939/main.c:182:3: note: Returning; memory was released via 1st parameter
j1939_priv_put(priv);
^~~~~~~~~~~~~~~~~~~~
net/can/j1939/main.c:281:8: note: Returning; memory was released via 1st parameter
ret = j1939_can_rx_register(priv);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
net/can/j1939/main.c:282:6: note: 'ret' is < 0
if (ret < 0)
^~~
net/can/j1939/main.c:282:2: note: Taking true branch
if (ret < 0)
^
net/can/j1939/main.c:283:3: note: Control jumps to line 288
goto out_priv_put;
^
net/can/j1939/main.c:290:2: note: Attempt to free released memory
kfree(priv);
^~~~~~~~~~~
Suppressed 3 warnings (3 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 (3 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/video/fbdev/via/viafbdev.c:147:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(fix->id, viafb_name);
^~~~~~
drivers/video/fbdev/via/viafbdev.c:147:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(fix->id, viafb_name);
^~~~~~
>> drivers/video/fbdev/via/viafbdev.c:1801:19: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
default_var.yres = default_yres;
^ ~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1723:20: note: 'default_yres' declared without an initial value
u32 default_xres, default_yres;
^~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1728:2: note: Taking false branch
DEBUG_MSG(KERN_INFO "VIAFB PCI Probe!!\n");
^
drivers/video/fbdev/via/debug.h:19:30: note: expanded from macro 'DEBUG_MSG'
#define DEBUG_MSG(f, a...) no_printk(f, ## a)
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
drivers/video/fbdev/via/viafbdev.c:1738:6: note: Assuming 'viafbinfo' is non-null
if (!viafbinfo)
^~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1738:2: note: Taking false branch
if (!viafbinfo)
^
drivers/video/fbdev/via/viafbdev.c:1752:6: note: Assuming 'viafb_dual_fb' is 0
if (viafb_dual_fb)
^~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1752:2: note: Taking false branch
if (viafb_dual_fb)
^
drivers/video/fbdev/via/viafbdev.c:1776:6: note: Assuming 'viafb_accel' is 0
if (viafb_accel && !viafb_setup_engine(viafbinfo)) {
^~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1776:18: note: Left side of '&&' is false
if (viafb_accel && !viafb_setup_engine(viafbinfo)) {
^
drivers/video/fbdev/via/viafbdev.c:1785:6: note: Assuming 'viafb_second_size' is 0
if (viafb_second_size && (viafb_second_size < 8)) {
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1785:24: note: Left side of '&&' is false
if (viafb_second_size && (viafb_second_size < 8)) {
^
drivers/video/fbdev/via/viafbdev.c:1794:2: note: Calling 'parse_mode'
parse_mode(viafb_mode, viaparinfo->shared->iga1_devices,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1630:6: note: Assuming 'str' is non-null
if (!str) {
^~~~
drivers/video/fbdev/via/viafbdev.c:1630:2: note: Taking false branch
if (!str) {
^
drivers/video/fbdev/via/viafbdev.c:1652:6: note: Assuming the condition is true
if (ptr[0] != 'x')
^~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1652:2: note: Taking true branch
if (ptr[0] != 'x')
^
drivers/video/fbdev/via/viafbdev.c:1653:3: note: Returning without writing to '*yres'
return -EINVAL;
^
drivers/video/fbdev/via/viafbdev.c:1794:2: note: Returning from 'parse_mode'
parse_mode(viafb_mode, viaparinfo->shared->iga1_devices,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1796:6: note: Assuming 'viafb_SAMM_ON' is not equal to 1
if (viafb_SAMM_ON == 1)
^~~~~~~~~~~~~~~~~~
drivers/video/fbdev/via/viafbdev.c:1796:2: note: Taking false branch
if (viafb_SAMM_ON == 1)
^
drivers/video/fbdev/via/viafbdev.c:1801:19: note: Assigned value is garbage or undefined
default_var.yres = default_yres;
^ ~~~~~~~~~~~~
Suppressed 3 warnings (3 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/mtd/nand/onenand/onenand_bbt.c:72:12: warning: Although the value stored to 'ooblen' is used in the enclosing expression, the value is never actually read from 'ooblen' [clang-analyzer-deadcode.DeadStores]
scanlen = ooblen = 0;
^ ~
drivers/mtd/nand/onenand/onenand_bbt.c:72:12: note: Although the value stored to 'ooblen' is used in the enclosing expression, the value is never actually read from 'ooblen'
scanlen = ooblen = 0;
^ ~
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.
4 warnings generated.
drivers/mtd/nand/onenand/generic.c:66:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = mtd_device_register(&info->mtd, pdata ? pdata->parts : NULL,
^
drivers/mtd/nand/onenand/generic.c:66:2: note: Value stored to 'err' is never read
Suppressed 3 warnings (3 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 (3 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.
drivers/mtd/nand/raw/nand_base.c:371:16: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
return status & NAND_STATUS_WP ? 0 : 1;
^
drivers/mtd/nand/raw/nand_base.c:5954:27: note: Left side of '&&' is false
struct nand_chip *chip = container_of(nand, struct nand_chip,
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
drivers/mtd/nand/raw/nand_base.c:5954:27: note: Taking false branch
--
^~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:180:46: note: expanded from macro 'WARN_ONCE'
#define WARN_ONCE(condition, format...) WARN(condition, format)
^~~~~~~~~
include/asm-generic/bug.h:173:25: note: expanded from macro 'WARN'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
net/core/dev.c:8190:2: note: Taking false branch
ASSERT_RTNL();
^
include/linux/rtnetlink.h:110:2: note: expanded from macro 'ASSERT_RTNL'
WARN_ONCE(!rtnl_is_locked(), \
^
include/asm-generic/bug.h:180:41: note: expanded from macro 'WARN_ONCE'
#define WARN_ONCE(condition, format...) WARN(condition, format)
^
include/asm-generic/bug.h:174:2: note: expanded from macro 'WARN'
no_printk(format); \
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
net/core/dev.c:8192:28: note: Assuming pointer value is null
changeupper_info.master = netdev_master_upper_dev_get(dev) == upper_dev;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:8197:46: note: Passing null pointer value via 2nd parameter 'upper_dev'
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
^~~~~~~~~
net/core/dev.c:8197:2: note: Calling '__netdev_adjacent_dev_unlink_neighbour'
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:8047:42: note: Passing null pointer value via 2nd parameter 'upper_dev'
__netdev_adjacent_dev_unlink_lists(dev, upper_dev, 1,
^~~~~~~~~
net/core/dev.c:8047:2: note: Calling '__netdev_adjacent_dev_unlink_lists'
__netdev_adjacent_dev_unlink_lists(dev, upper_dev, 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:8030:36: note: Passing null pointer value via 2nd parameter 'adj_dev'
__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
^~~~~~~~~
net/core/dev.c:8030:2: note: Calling '__netdev_adjacent_dev_remove'
__netdev_adjacent_dev_remove(dev, upper_dev, ref_nr, up_list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:7968:2: note: Taking false branch
pr_debug("Remove adjacency: dev %s adj_dev %s ref_nr %d\n",
^
include/linux/printk.h:576:2: note: expanded from macro 'pr_debug'
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:131:2: note: expanded from macro 'no_printk'
if (0) \
^
net/core/dev.c:7973:6: note: Assuming 'adj' is non-null
if (!adj) {
^~~~
net/core/dev.c:7973:2: note: Taking false branch
if (!adj) {
^
net/core/dev.c:7980:6: note: Assuming 'ref_nr' is >= field 'ref_nr'
if (adj->ref_nr > ref_nr) {
^~~~~~~~~~~~~~~~~~~~
net/core/dev.c:7980:2: note: Taking false branch
if (adj->ref_nr > ref_nr) {
^
net/core/dev.c:7988:6: note: Assuming field 'master' is false
if (adj->master)
^~~~~~~~~~~
net/core/dev.c:7988:2: note: Taking false branch
if (adj->master)
^
net/core/dev.c:7991:41: note: Passing null pointer value via 2nd parameter 'adj_dev'
if (netdev_adjacent_is_neigh_list(dev, adj_dev, dev_list))
^~~~~~~
net/core/dev.c:7991:6: note: Calling 'netdev_adjacent_is_neigh_list'
if (netdev_adjacent_is_neigh_list(dev, adj_dev, dev_list))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:7894:43: note: Left side of '||' is true
return (dev_list == &dev->adj_list.upper ||
^
net/core/dev.c:7896:32: note: Passing null pointer value via 1st parameter 'dev'
net_eq(dev_net(dev), dev_net(adj_dev));
^~~~~~~
net/core/dev.c:7896:24: note: Calling 'dev_net'
net_eq(dev_net(dev), dev_net(adj_dev));
^~~~~~~~~~~~~~~~
include/linux/netdevice.h:2432:19: note: Passing null pointer value via 1st parameter 'pnet'
return read_pnet(&dev->nd_net);
^~~~~~~~~~~~
include/linux/netdevice.h:2432:9: note: Calling 'read_pnet'
return read_pnet(&dev->nd_net);
^~~~~~~~~~~~~~~~~~~~~~~
include/net/net_namespace.h:327:9: note: Access to field 'net' results in a dereference of a null pointer (loaded from variable 'pnet')
return pnet->net;
^~~~
net/core/dev.c:958:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(name, dev->name);
^~~~~~
net/core/dev.c:958:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(name, dev->name);
^~~~~~
>> net/core/dev.c:3191:4: warning: Value stored to 'name' is never read [clang-analyzer-deadcode.DeadStores]
name = dev_driver_string(dev->dev.parent);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:3191:4: note: Value stored to 'name' is never read
name = dev_driver_string(dev->dev.parent);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:3193:4: warning: Value stored to 'name' is never read [clang-analyzer-deadcode.DeadStores]
name = netdev_name(dev);
^ ~~~~~~~~~~~~~~~~
net/core/dev.c:3193:4: note: Value stored to 'name' is never read
name = netdev_name(dev);
^ ~~~~~~~~~~~~~~~~
net/core/dev.c:5996:2: warning: Null pointer passed as 2nd argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(skb_tail_pointer(skb), NAPI_GRO_CB(skb)->frag0, grow);
^
net/core/dev.c:6327:24: note: Calling 'napi_frags_skb'
struct sk_buff *skb = napi_frags_skb(napi);
^~~~~~~~~~~~~~~~~~~~
net/core/dev.c:6298:15: note: Calling 'skb_gro_header_hard'
if (unlikely(skb_gro_header_hard(skb, hlen))) {
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/core/dev.c:6298:15: note: Returning from 'skb_gro_header_hard'
if (unlikely(skb_gro_header_hard(skb, hlen))) {
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/core/dev.c:6298:2: note: Taking true branch
if (unlikely(skb_gro_header_hard(skb, hlen))) {
^
net/core/dev.c:6299:9: note: Calling 'skb_gro_header_slow'
eth = skb_gro_header_slow(skb, hlen, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/netdevice.h:3045:7: note: Calling 'pskb_may_pull'
if (!pskb_may_pull(skb, hlen))
^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2356:13: note: Assuming the condition is true
if (likely(len <= skb_headlen(skb)))
^
include/linux/compiler.h:77:40: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^
include/linux/skbuff.h:2356:2: note: Taking true branch
if (likely(len <= skb_headlen(skb)))
^
include/linux/netdevice.h:3045:7: note: Returning from 'pskb_may_pull'
if (!pskb_may_pull(skb, hlen))
^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/netdevice.h:3045:2: note: Taking false branch
if (!pskb_may_pull(skb, hlen))
^
include/linux/netdevice.h:3048:2: note: Calling 'skb_gro_frag0_invalidate'
skb_gro_frag0_invalidate(skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/netdevice.h:3038:2: note: Null pointer value stored to field 'frag0'
NAPI_GRO_CB(skb)->frag0 = NULL;
^
include/linux/netdevice.h:2590:26: note: expanded from macro 'NAPI_GRO_CB'
#define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb)
^
include/linux/netdevice.h:3048:2: note: Returning from 'skb_gro_frag0_invalidate'
skb_gro_frag0_invalidate(skb);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:6299:9: note: Returning from 'skb_gro_header_slow'
eth = skb_gro_header_slow(skb, hlen, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/dev.c:6300:16: note: Assuming 'eth' is non-null
if (unlikely(!eth)) {
^
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
net/core/dev.c:6300:3: note: Taking false branch
if (unlikely(!eth)) {
^
net/core/dev.c:6312:2: note: Calling '__skb_pull'
__skb_pull(skb, hlen);
^~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:2329:9: note: Assuming field 'len' is >= field 'data_len'
BUG_ON(skb->len < skb->data_len);
^
include/asm-generic/bug.h:161:45: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^~~~~~~~~
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/skbuff.h:2329:2: note: Taking false branch
BUG_ON(skb->len < skb->data_len);
^
include/asm-generic/bug.h:161:32: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^
include/linux/skbuff.h:2329:2: note: Loop condition is false. Exiting loop
BUG_ON(skb->len < skb->data_len);
^
include/asm-generic/bug.h:161:27: note: expanded from macro 'BUG_ON'
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
--
include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
include/linux/skbuff.h:1860:6: note: Assuming 'skb' is equal to 'list_'
if (skb == (struct sk_buff *)list_)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/skbuff.h:1860:2: note: Taking true branch
if (skb == (struct sk_buff *)list_)
^
include/linux/skbuff.h:1862:2: note: Returning null pointer (loaded from 'skb'), which participates in a condition later
return skb;
^~~~~~~~~~
net/mac80211/rx.c:1109:25: note: Returning from 'skb_peek_tail'
struct sk_buff *tail = skb_peek_tail(frames);
^~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1112:6: note: Assuming the condition is false
if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1112:2: note: Taking false branch
if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
^
net/mac80211/rx.c:1115:7: note: 'tail' is null
if (!tail)
^~~~
net/mac80211/rx.c:1115:2: note: Taking true branch
if (!tail)
^
net/mac80211/rx.c:1116:3: note: Returning without writing to 'tid_agg_rx->stored_mpdu_num', which participates in a condition later
return false;
^
net/mac80211/rx.c:1116:3: note: Returning without writing to 'tid_agg_rx->buf_size'
net/mac80211/rx.c:1116:3: note: Returning zero, which participates in a condition later
return false;
^~~~~~~~~~~~
net/mac80211/rx.c:1194:7: note: Returning from 'ieee80211_rx_reorder_ready'
if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1194:6: note: Left side of '&&' is true
if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
^
net/mac80211/rx.c:1195:6: note: Assuming field 'stored_mpdu_num' is not equal to 0
tid_agg_rx->stored_mpdu_num) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1194:2: note: Taking true branch
if (!ieee80211_rx_reorder_ready(tid_agg_rx, index) &&
^
net/mac80211/rx.c:1201:48: note: Assuming 'j' is equal to 'index'
for (j = (index + 1) % tid_agg_rx->buf_size; j != index;
^~~~~~~~~~
net/mac80211/rx.c:1201:3: note: Loop condition is false. Execution continues on line 1236
for (j = (index + 1) % tid_agg_rx->buf_size; j != index;
^
net/mac80211/rx.c:1236:18: note: Field 'stored_mpdu_num' is not equal to 0
if (tid_agg_rx->stored_mpdu_num) {
^
net/mac80211/rx.c:1236:2: note: Taking true branch
if (tid_agg_rx->stored_mpdu_num) {
^
net/mac80211/rx.c:1239:10: note: Assuming the condition is true
for (; j != (index - 1) % tid_agg_rx->buf_size;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1239:3: note: Loop condition is true. Entering loop body
for (; j != (index - 1) % tid_agg_rx->buf_size;
^
net/mac80211/rx.c:1241:8: note: Calling 'ieee80211_rx_reorder_ready'
if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1112:2: note: Taking false branch
if (tid_agg_rx->reorder_buf_filtered & BIT_ULL(index))
^
net/mac80211/rx.c:1115:6: note: Assuming 'tail' is null, which participates in a condition later
if (!tail)
^~~~~
net/mac80211/rx.c:1115:2: note: Taking true branch
if (!tail)
^
net/mac80211/rx.c:1116:3: note: Returning without writing to 'tid_agg_rx->buf_size'
return false;
^
net/mac80211/rx.c:1116:3: note: Returning zero, which participates in a condition later
return false;
^~~~~~~~~~~~
net/mac80211/rx.c:1241:8: note: Returning from 'ieee80211_rx_reorder_ready'
if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:1241:4: note: Taking false branch
if (ieee80211_rx_reorder_ready(tid_agg_rx, j))
^
net/mac80211/rx.c:1240:20: note: Division by zero
j = (j + 1) % tid_agg_rx->buf_size) {
~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
>> net/mac80211/rx.c:5009:2: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:716:7: note: expanded from macro 'list_for_each_entry_safe'
n = list_next_entry(pos, member); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
list_entry((pos)->member.next, typeof(*(pos)), member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:494:2: note: expanded from macro 'container_of'
void *__mptr = (void *)(ptr); \
^ ~~~~~~~~~~~~~
net/mac80211/rx.c:5001:2: note: Calling 'ieee80211_rx_list'
ieee80211_rx_list(hw, pubsta, skb, &list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:4876:2: note: Assuming '__ret_warn_on' is not equal to 0
WARN_ON_ONCE(softirq_count() == 0);
^
include/asm-generic/bug.h:179:33: note: expanded from macro 'WARN_ON_ONCE'
#define WARN_ON_ONCE(condition) WARN_ON(condition)
^~~~~~~~~~~~~~~~~~
include/asm-generic/bug.h:167:2: note: expanded from macro 'WARN_ON'
unlikely(__ret_warn_on); \
^~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
net/mac80211/rx.c:4878:14: note: Assuming field 'band' is >= NUM_NL80211_BANDS
if (WARN_ON(status->band >= NUM_NL80211_BANDS))
^
include/asm-generic/bug.h:166:25: note: expanded from macro 'WARN_ON'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
net/mac80211/rx.c:4878:2: note: Taking true branch
if (WARN_ON(status->band >= NUM_NL80211_BANDS))
^
net/mac80211/rx.c:4879:3: note: Control jumps to line 4984
goto drop;
^
net/mac80211/rx.c:5001:2: note: Returning from 'ieee80211_rx_list'
ieee80211_rx_list(hw, pubsta, skb, &list);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/mac80211/rx.c:5004:6: note: Assuming 'napi' is non-null
if (!napi) {
^~~~~
net/mac80211/rx.c:5004:2: note: Taking false branch
if (!napi) {
^
net/mac80211/rx.c:5009:2: note: Left side of '&&' is false
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
net/mac80211/rx.c:5009:2: note: Taking false branch
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
net/mac80211/rx.c:5009:2: note: Loop condition is false. Exiting loop
list_for_each_entry_safe(skb, tmp, &list, list) {
^
include/linux/list.h:715:13: note: expanded from macro 'list_for_each_entry_safe'
for (pos = list_first_entry(head, typeof(*pos), member), \
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
vim +/fc_req +193 drivers/clk/mmp/clk-mix.c
ee81f4ee2a3632 Chao Xie 2014-10-31 133
ee81f4ee2a3632 Chao Xie 2014-10-31 134 static int _set_rate(struct mmp_clk_mix *mix, u32 mux_val, u32 div_val,
ee81f4ee2a3632 Chao Xie 2014-10-31 135 unsigned int change_mux, unsigned int change_div)
ee81f4ee2a3632 Chao Xie 2014-10-31 136 {
ee81f4ee2a3632 Chao Xie 2014-10-31 137 struct mmp_clk_mix_reg_info *ri = &mix->reg_info;
ee81f4ee2a3632 Chao Xie 2014-10-31 138 u8 width, shift;
ee81f4ee2a3632 Chao Xie 2014-10-31 139 u32 mux_div, fc_req;
ee81f4ee2a3632 Chao Xie 2014-10-31 140 int ret, timeout = 50;
ee81f4ee2a3632 Chao Xie 2014-10-31 141 unsigned long flags = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 142
ee81f4ee2a3632 Chao Xie 2014-10-31 143 if (!change_mux && !change_div)
ee81f4ee2a3632 Chao Xie 2014-10-31 144 return -EINVAL;
ee81f4ee2a3632 Chao Xie 2014-10-31 145
ee81f4ee2a3632 Chao Xie 2014-10-31 146 if (mix->lock)
ee81f4ee2a3632 Chao Xie 2014-10-31 147 spin_lock_irqsave(mix->lock, flags);
ee81f4ee2a3632 Chao Xie 2014-10-31 148
ee81f4ee2a3632 Chao Xie 2014-10-31 149 if (mix->type == MMP_CLK_MIX_TYPE_V1
ee81f4ee2a3632 Chao Xie 2014-10-31 150 || mix->type == MMP_CLK_MIX_TYPE_V2)
ee81f4ee2a3632 Chao Xie 2014-10-31 151 mux_div = readl(ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 152 else
ee81f4ee2a3632 Chao Xie 2014-10-31 153 mux_div = readl(ri->reg_clk_sel);
ee81f4ee2a3632 Chao Xie 2014-10-31 154
ee81f4ee2a3632 Chao Xie 2014-10-31 155 if (change_div) {
ee81f4ee2a3632 Chao Xie 2014-10-31 156 width = ri->width_div;
ee81f4ee2a3632 Chao Xie 2014-10-31 157 shift = ri->shift_div;
ee81f4ee2a3632 Chao Xie 2014-10-31 158 mux_div &= ~MMP_CLK_BITS_MASK(width, shift);
ee81f4ee2a3632 Chao Xie 2014-10-31 159 mux_div |= MMP_CLK_BITS_SET_VAL(div_val, width, shift);
ee81f4ee2a3632 Chao Xie 2014-10-31 160 }
ee81f4ee2a3632 Chao Xie 2014-10-31 161
ee81f4ee2a3632 Chao Xie 2014-10-31 162 if (change_mux) {
ee81f4ee2a3632 Chao Xie 2014-10-31 163 width = ri->width_mux;
ee81f4ee2a3632 Chao Xie 2014-10-31 164 shift = ri->shift_mux;
ee81f4ee2a3632 Chao Xie 2014-10-31 165 mux_div &= ~MMP_CLK_BITS_MASK(width, shift);
ee81f4ee2a3632 Chao Xie 2014-10-31 166 mux_div |= MMP_CLK_BITS_SET_VAL(mux_val, width, shift);
ee81f4ee2a3632 Chao Xie 2014-10-31 167 }
ee81f4ee2a3632 Chao Xie 2014-10-31 168
ee81f4ee2a3632 Chao Xie 2014-10-31 169 if (mix->type == MMP_CLK_MIX_TYPE_V1) {
ee81f4ee2a3632 Chao Xie 2014-10-31 170 writel(mux_div, ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 171 } else if (mix->type == MMP_CLK_MIX_TYPE_V2) {
ee81f4ee2a3632 Chao Xie 2014-10-31 172 mux_div |= (1 << ri->bit_fc);
ee81f4ee2a3632 Chao Xie 2014-10-31 173 writel(mux_div, ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 174
ee81f4ee2a3632 Chao Xie 2014-10-31 175 do {
ee81f4ee2a3632 Chao Xie 2014-10-31 176 fc_req = readl(ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 177 timeout--;
ee81f4ee2a3632 Chao Xie 2014-10-31 178 if (!(fc_req & (1 << ri->bit_fc)))
ee81f4ee2a3632 Chao Xie 2014-10-31 179 break;
ee81f4ee2a3632 Chao Xie 2014-10-31 180 } while (timeout);
ee81f4ee2a3632 Chao Xie 2014-10-31 181
ee81f4ee2a3632 Chao Xie 2014-10-31 182 if (timeout == 0) {
ee81f4ee2a3632 Chao Xie 2014-10-31 183 pr_err("%s:%s cannot do frequency change\n",
aef28cb6b3b22f Stephen Boyd 2015-07-30 184 __func__, clk_hw_get_name(&mix->hw));
ee81f4ee2a3632 Chao Xie 2014-10-31 185 ret = -EBUSY;
ee81f4ee2a3632 Chao Xie 2014-10-31 186 goto error;
ee81f4ee2a3632 Chao Xie 2014-10-31 187 }
ee81f4ee2a3632 Chao Xie 2014-10-31 188 } else {
ee81f4ee2a3632 Chao Xie 2014-10-31 189 fc_req = readl(ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 190 fc_req |= 1 << ri->bit_fc;
ee81f4ee2a3632 Chao Xie 2014-10-31 191 writel(fc_req, ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 192 writel(mux_div, ri->reg_clk_sel);
ee81f4ee2a3632 Chao Xie 2014-10-31 @193 fc_req &= ~(1 << ri->bit_fc);
ee81f4ee2a3632 Chao Xie 2014-10-31 194 }
ee81f4ee2a3632 Chao Xie 2014-10-31 195
ee81f4ee2a3632 Chao Xie 2014-10-31 196 ret = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 197 error:
ee81f4ee2a3632 Chao Xie 2014-10-31 198 if (mix->lock)
ee81f4ee2a3632 Chao Xie 2014-10-31 199 spin_unlock_irqrestore(mix->lock, flags);
ee81f4ee2a3632 Chao Xie 2014-10-31 200
ee81f4ee2a3632 Chao Xie 2014-10-31 201 return ret;
ee81f4ee2a3632 Chao Xie 2014-10-31 202 }
ee81f4ee2a3632 Chao Xie 2014-10-31 203
0817b62cc037a5 Boris Brezillon 2015-07-07 204 static int mmp_clk_mix_determine_rate(struct clk_hw *hw,
0817b62cc037a5 Boris Brezillon 2015-07-07 205 struct clk_rate_request *req)
ee81f4ee2a3632 Chao Xie 2014-10-31 206 {
ee81f4ee2a3632 Chao Xie 2014-10-31 207 struct mmp_clk_mix *mix = to_clk_mix(hw);
ee81f4ee2a3632 Chao Xie 2014-10-31 208 struct mmp_clk_mix_clk_table *item;
aef28cb6b3b22f Stephen Boyd 2015-07-30 209 struct clk_hw *parent, *parent_best;
ee81f4ee2a3632 Chao Xie 2014-10-31 210 unsigned long parent_rate, mix_rate, mix_rate_best, parent_rate_best;
ee81f4ee2a3632 Chao Xie 2014-10-31 211 unsigned long gap, gap_best;
ee81f4ee2a3632 Chao Xie 2014-10-31 212 u32 div_val_max;
ee81f4ee2a3632 Chao Xie 2014-10-31 213 unsigned int div;
ee81f4ee2a3632 Chao Xie 2014-10-31 214 int i, j;
ee81f4ee2a3632 Chao Xie 2014-10-31 215
ee81f4ee2a3632 Chao Xie 2014-10-31 216
ee81f4ee2a3632 Chao Xie 2014-10-31 217 mix_rate_best = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 218 parent_rate_best = 0;
57d866e606ddf2 Boris Brezillon 2015-07-09 219 gap_best = ULONG_MAX;
ee81f4ee2a3632 Chao Xie 2014-10-31 220 parent_best = NULL;
ee81f4ee2a3632 Chao Xie 2014-10-31 221
ee81f4ee2a3632 Chao Xie 2014-10-31 222 if (mix->table) {
ee81f4ee2a3632 Chao Xie 2014-10-31 223 for (i = 0; i < mix->table_size; i++) {
ee81f4ee2a3632 Chao Xie 2014-10-31 224 item = &mix->table[i];
ee81f4ee2a3632 Chao Xie 2014-10-31 225 if (item->valid == 0)
ee81f4ee2a3632 Chao Xie 2014-10-31 226 continue;
aef28cb6b3b22f Stephen Boyd 2015-07-30 227 parent = clk_hw_get_parent_by_index(hw,
ee81f4ee2a3632 Chao Xie 2014-10-31 228 item->parent_index);
aef28cb6b3b22f Stephen Boyd 2015-07-30 229 parent_rate = clk_hw_get_rate(parent);
ee81f4ee2a3632 Chao Xie 2014-10-31 230 mix_rate = parent_rate / item->divisor;
0817b62cc037a5 Boris Brezillon 2015-07-07 231 gap = abs(mix_rate - req->rate);
7a3aad90d331de Markus Elfring 2017-09-27 232 if (!parent_best || gap < gap_best) {
ee81f4ee2a3632 Chao Xie 2014-10-31 233 parent_best = parent;
ee81f4ee2a3632 Chao Xie 2014-10-31 234 parent_rate_best = parent_rate;
ee81f4ee2a3632 Chao Xie 2014-10-31 235 mix_rate_best = mix_rate;
ee81f4ee2a3632 Chao Xie 2014-10-31 236 gap_best = gap;
ee81f4ee2a3632 Chao Xie 2014-10-31 237 if (gap_best == 0)
ee81f4ee2a3632 Chao Xie 2014-10-31 238 goto found;
ee81f4ee2a3632 Chao Xie 2014-10-31 239 }
ee81f4ee2a3632 Chao Xie 2014-10-31 240 }
ee81f4ee2a3632 Chao Xie 2014-10-31 241 } else {
497295afb5ab07 Stephen Boyd 2015-06-25 242 for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
aef28cb6b3b22f Stephen Boyd 2015-07-30 243 parent = clk_hw_get_parent_by_index(hw, i);
aef28cb6b3b22f Stephen Boyd 2015-07-30 244 parent_rate = clk_hw_get_rate(parent);
ee81f4ee2a3632 Chao Xie 2014-10-31 245 div_val_max = _get_maxdiv(mix);
ee81f4ee2a3632 Chao Xie 2014-10-31 246 for (j = 0; j < div_val_max; j++) {
ee81f4ee2a3632 Chao Xie 2014-10-31 247 div = _get_div(mix, j);
ee81f4ee2a3632 Chao Xie 2014-10-31 248 mix_rate = parent_rate / div;
0817b62cc037a5 Boris Brezillon 2015-07-07 249 gap = abs(mix_rate - req->rate);
7a3aad90d331de Markus Elfring 2017-09-27 250 if (!parent_best || gap < gap_best) {
ee81f4ee2a3632 Chao Xie 2014-10-31 251 parent_best = parent;
ee81f4ee2a3632 Chao Xie 2014-10-31 252 parent_rate_best = parent_rate;
ee81f4ee2a3632 Chao Xie 2014-10-31 253 mix_rate_best = mix_rate;
ee81f4ee2a3632 Chao Xie 2014-10-31 254 gap_best = gap;
ee81f4ee2a3632 Chao Xie 2014-10-31 255 if (gap_best == 0)
ee81f4ee2a3632 Chao Xie 2014-10-31 256 goto found;
ee81f4ee2a3632 Chao Xie 2014-10-31 257 }
ee81f4ee2a3632 Chao Xie 2014-10-31 258 }
ee81f4ee2a3632 Chao Xie 2014-10-31 259 }
ee81f4ee2a3632 Chao Xie 2014-10-31 260 }
ee81f4ee2a3632 Chao Xie 2014-10-31 261
ee81f4ee2a3632 Chao Xie 2014-10-31 262 found:
57d866e606ddf2 Boris Brezillon 2015-07-09 263 if (!parent_best)
57d866e606ddf2 Boris Brezillon 2015-07-09 264 return -EINVAL;
57d866e606ddf2 Boris Brezillon 2015-07-09 265
0817b62cc037a5 Boris Brezillon 2015-07-07 266 req->best_parent_rate = parent_rate_best;
aef28cb6b3b22f Stephen Boyd 2015-07-30 267 req->best_parent_hw = parent_best;
0817b62cc037a5 Boris Brezillon 2015-07-07 268 req->rate = mix_rate_best;
ee81f4ee2a3632 Chao Xie 2014-10-31 269
0817b62cc037a5 Boris Brezillon 2015-07-07 270 return 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 271 }
ee81f4ee2a3632 Chao Xie 2014-10-31 272
ee81f4ee2a3632 Chao Xie 2014-10-31 273 static int mmp_clk_mix_set_rate_and_parent(struct clk_hw *hw,
ee81f4ee2a3632 Chao Xie 2014-10-31 274 unsigned long rate,
ee81f4ee2a3632 Chao Xie 2014-10-31 275 unsigned long parent_rate,
ee81f4ee2a3632 Chao Xie 2014-10-31 276 u8 index)
ee81f4ee2a3632 Chao Xie 2014-10-31 277 {
ee81f4ee2a3632 Chao Xie 2014-10-31 278 struct mmp_clk_mix *mix = to_clk_mix(hw);
ee81f4ee2a3632 Chao Xie 2014-10-31 279 unsigned int div;
ee81f4ee2a3632 Chao Xie 2014-10-31 280 u32 div_val, mux_val;
ee81f4ee2a3632 Chao Xie 2014-10-31 281
ee81f4ee2a3632 Chao Xie 2014-10-31 282 div = parent_rate / rate;
ee81f4ee2a3632 Chao Xie 2014-10-31 283 div_val = _get_div_val(mix, div);
ee81f4ee2a3632 Chao Xie 2014-10-31 284 mux_val = _get_mux_val(mix, index);
ee81f4ee2a3632 Chao Xie 2014-10-31 285
ee81f4ee2a3632 Chao Xie 2014-10-31 286 return _set_rate(mix, mux_val, div_val, 1, 1);
ee81f4ee2a3632 Chao Xie 2014-10-31 287 }
ee81f4ee2a3632 Chao Xie 2014-10-31 288
ee81f4ee2a3632 Chao Xie 2014-10-31 289 static u8 mmp_clk_mix_get_parent(struct clk_hw *hw)
ee81f4ee2a3632 Chao Xie 2014-10-31 290 {
ee81f4ee2a3632 Chao Xie 2014-10-31 291 struct mmp_clk_mix *mix = to_clk_mix(hw);
ee81f4ee2a3632 Chao Xie 2014-10-31 292 struct mmp_clk_mix_reg_info *ri = &mix->reg_info;
ee81f4ee2a3632 Chao Xie 2014-10-31 293 unsigned long flags = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 294 u32 mux_div = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 295 u8 width, shift;
ee81f4ee2a3632 Chao Xie 2014-10-31 296 u32 mux_val;
ee81f4ee2a3632 Chao Xie 2014-10-31 297
ee81f4ee2a3632 Chao Xie 2014-10-31 298 if (mix->lock)
ee81f4ee2a3632 Chao Xie 2014-10-31 299 spin_lock_irqsave(mix->lock, flags);
ee81f4ee2a3632 Chao Xie 2014-10-31 300
ee81f4ee2a3632 Chao Xie 2014-10-31 301 if (mix->type == MMP_CLK_MIX_TYPE_V1
ee81f4ee2a3632 Chao Xie 2014-10-31 302 || mix->type == MMP_CLK_MIX_TYPE_V2)
ee81f4ee2a3632 Chao Xie 2014-10-31 303 mux_div = readl(ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 304 else
ee81f4ee2a3632 Chao Xie 2014-10-31 305 mux_div = readl(ri->reg_clk_sel);
ee81f4ee2a3632 Chao Xie 2014-10-31 306
ee81f4ee2a3632 Chao Xie 2014-10-31 307 if (mix->lock)
ee81f4ee2a3632 Chao Xie 2014-10-31 308 spin_unlock_irqrestore(mix->lock, flags);
ee81f4ee2a3632 Chao Xie 2014-10-31 309
ee81f4ee2a3632 Chao Xie 2014-10-31 310 width = mix->reg_info.width_mux;
ee81f4ee2a3632 Chao Xie 2014-10-31 311 shift = mix->reg_info.shift_mux;
ee81f4ee2a3632 Chao Xie 2014-10-31 312
ee81f4ee2a3632 Chao Xie 2014-10-31 313 mux_val = MMP_CLK_BITS_GET_VAL(mux_div, width, shift);
ee81f4ee2a3632 Chao Xie 2014-10-31 314
ee81f4ee2a3632 Chao Xie 2014-10-31 315 return _get_mux(mix, mux_val);
ee81f4ee2a3632 Chao Xie 2014-10-31 316 }
ee81f4ee2a3632 Chao Xie 2014-10-31 317
ee81f4ee2a3632 Chao Xie 2014-10-31 318 static unsigned long mmp_clk_mix_recalc_rate(struct clk_hw *hw,
ee81f4ee2a3632 Chao Xie 2014-10-31 319 unsigned long parent_rate)
ee81f4ee2a3632 Chao Xie 2014-10-31 320 {
ee81f4ee2a3632 Chao Xie 2014-10-31 321 struct mmp_clk_mix *mix = to_clk_mix(hw);
ee81f4ee2a3632 Chao Xie 2014-10-31 322 struct mmp_clk_mix_reg_info *ri = &mix->reg_info;
ee81f4ee2a3632 Chao Xie 2014-10-31 323 unsigned long flags = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 324 u32 mux_div = 0;
ee81f4ee2a3632 Chao Xie 2014-10-31 325 u8 width, shift;
ee81f4ee2a3632 Chao Xie 2014-10-31 326 unsigned int div;
ee81f4ee2a3632 Chao Xie 2014-10-31 327
ee81f4ee2a3632 Chao Xie 2014-10-31 328 if (mix->lock)
ee81f4ee2a3632 Chao Xie 2014-10-31 329 spin_lock_irqsave(mix->lock, flags);
ee81f4ee2a3632 Chao Xie 2014-10-31 330
ee81f4ee2a3632 Chao Xie 2014-10-31 331 if (mix->type == MMP_CLK_MIX_TYPE_V1
ee81f4ee2a3632 Chao Xie 2014-10-31 332 || mix->type == MMP_CLK_MIX_TYPE_V2)
ee81f4ee2a3632 Chao Xie 2014-10-31 333 mux_div = readl(ri->reg_clk_ctrl);
ee81f4ee2a3632 Chao Xie 2014-10-31 334 else
ee81f4ee2a3632 Chao Xie 2014-10-31 335 mux_div = readl(ri->reg_clk_sel);
ee81f4ee2a3632 Chao Xie 2014-10-31 336
ee81f4ee2a3632 Chao Xie 2014-10-31 337 if (mix->lock)
ee81f4ee2a3632 Chao Xie 2014-10-31 338 spin_unlock_irqrestore(mix->lock, flags);
ee81f4ee2a3632 Chao Xie 2014-10-31 339
ee81f4ee2a3632 Chao Xie 2014-10-31 340 width = mix->reg_info.width_div;
ee81f4ee2a3632 Chao Xie 2014-10-31 341 shift = mix->reg_info.shift_div;
ee81f4ee2a3632 Chao Xie 2014-10-31 342
ee81f4ee2a3632 Chao Xie 2014-10-31 343 div = _get_div(mix, MMP_CLK_BITS_GET_VAL(mux_div, width, shift));
ee81f4ee2a3632 Chao Xie 2014-10-31 344
ee81f4ee2a3632 Chao Xie 2014-10-31 @345 return parent_rate / div;
ee81f4ee2a3632 Chao Xie 2014-10-31 346 }
ee81f4ee2a3632 Chao Xie 2014-10-31 347
:::::: The code at line 193 was first introduced by commit
:::::: ee81f4ee2a3632a2d7928f680c4af8243a18762f clk: mmp: add clock type mix
:::::: TO: Chao Xie <chao.xie@marvell.com>
:::::: CC: Michael Turquette <mturquette@linaro.org>
---
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-16 19: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=202201170345.hJQcladh-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.