* sound/soc/amd/yc/pci-acp6x.c:251:7: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
@ 2021-12-08 8:04 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-12-08 8:04 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 38027 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2a987e65025e2b79c6d453b78cb5985ac6e5eb26
commit: 89728d97db3f078aceb967ebe5ed2d0797b6a117 ASoC: amd: enable Yellow carp acp6x drivers build
date: 7 weeks ago
:::::: branch date: 8 hours ago
:::::: commit date: 7 weeks ago
config: x86_64-randconfig-c007-20211205 (https://download.01.org/0day-ci/archive/20211208/202112081617.VrR6PIcx-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 6e8678903523019903222e4521a5e41af743cab0)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=89728d97db3f078aceb967ebe5ed2d0797b6a117
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 89728d97db3f078aceb967ebe5ed2d0797b6a117
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^
drivers/thunderbolt/tunnel.c:1543:7: note: Array access (via field 'paths') results in a null pointer dereference
if (tunnel->paths[i])
^ ~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
drivers/base/regmap/regcache.c:137:7: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
if (config->reg_defaults[i].reg % map->reg_stride)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:121:6: note: Assuming field 'cache_type' is not equal to REGCACHE_NONE
if (map->cache_type == REGCACHE_NONE) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:121:2: note: Taking false branch
if (map->cache_type == REGCACHE_NONE) {
^
drivers/base/regmap/regcache.c:130:6: note: Assuming field 'reg_defaults' is null
if (config->reg_defaults && !config->num_reg_defaults) {
^~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:130:27: note: Left side of '&&' is false
if (config->reg_defaults && !config->num_reg_defaults) {
^
drivers/base/regmap/regcache.c:136:14: note: Assuming 'i' is < field 'num_reg_defaults'
for (i = 0; i < config->num_reg_defaults; i++)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/base/regmap/regcache.c:136:2: note: Loop condition is true. Entering loop body
for (i = 0; i < config->num_reg_defaults; i++)
^
drivers/base/regmap/regcache.c:137:7: note: Dereference of null pointer
if (config->reg_defaults[i].reg % map->reg_stride)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (6 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.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
>> sound/soc/amd/yc/pci-acp6x.c:251:7: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
for (--index; index >= 0; index--)
^ ~~~~~
sound/soc/amd/yc/pci-acp6x.c:149:11: note: 'index' declared without an initial value
int ret, index;
^~~~~
sound/soc/amd/yc/pci-acp6x.c:156:6: note: Assuming field 'revision' is equal to 96
if (pci->revision != 0x60)
^~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:156:2: note: Taking false branch
if (pci->revision != 0x60)
^
sound/soc/amd/yc/pci-acp6x.c:159:6: note: Assuming the condition is false
if (pci_enable_device(pci)) {
^~~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:159:2: note: Taking false branch
if (pci_enable_device(pci)) {
^
sound/soc/amd/yc/pci-acp6x.c:165:6: note: Assuming 'ret' is >= 0
if (ret < 0) {
^~~~~~~
sound/soc/amd/yc/pci-acp6x.c:165:2: note: Taking false branch
if (ret < 0) {
^
sound/soc/amd/yc/pci-acp6x.c:172:6: note: Assuming 'adata' is non-null
if (!adata) {
^~~~~~
sound/soc/amd/yc/pci-acp6x.c:172:2: note: Taking false branch
if (!adata) {
^
sound/soc/amd/yc/pci-acp6x.c:179:7: note: Assuming field 'end' is equal to 0
pci_resource_len(pci, 0));
^
include/linux/pci.h:1932:4: note: expanded from macro 'pci_resource_len'
((pci_resource_end((dev), (bar)) == 0) ? 0 : \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/pci.h:1929:36: note: expanded from macro 'pci_resource_end'
#define pci_resource_end(dev, bar) ((dev)->resource[(bar)].end)
^
sound/soc/amd/yc/pci-acp6x.c:179:7: note: '?' condition is true
pci_resource_len(pci, 0));
^
include/linux/pci.h:1932:3: note: expanded from macro 'pci_resource_len'
((pci_resource_end((dev), (bar)) == 0) ? 0 : \
^
sound/soc/amd/yc/pci-acp6x.c:180:6: note: Assuming field 'acp6x_base' is non-null
if (!adata->acp6x_base) {
^~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:180:2: note: Taking false branch
if (!adata->acp6x_base) {
^
sound/soc/amd/yc/pci-acp6x.c:186:8: note: Calling 'acp6x_init'
ret = acp6x_init(adata->acp6x_base);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:91:6: note: Assuming 'ret' is 0
if (ret) {
^~~
sound/soc/amd/yc/pci-acp6x.c:91:2: note: Taking false branch
if (ret) {
^
sound/soc/amd/yc/pci-acp6x.c:98:6: note: Assuming 'ret' is 0
if (ret) {
^~~
sound/soc/amd/yc/pci-acp6x.c:98:2: note: Taking false branch
if (ret) {
^
sound/soc/amd/yc/pci-acp6x.c:104:2: note: Returning zero, which participates in a condition later
return 0;
^~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:186:8: note: Returning from 'acp6x_init'
ret = acp6x_init(adata->acp6x_base);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:187:6: note: 'ret' is 0
if (ret)
^~~
sound/soc/amd/yc/pci-acp6x.c:187:2: note: Taking false branch
if (ret)
^
sound/soc/amd/yc/pci-acp6x.c:190:2: note: Control jumps to 'case ACP_CONFIG_15:' at line 196
switch (val) {
^
sound/soc/amd/yc/pci-acp6x.c:197:3: note: Loop condition is false. Exiting loop
dev_info(&pci->dev, "Audio Mode %d\n", val);
^
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:392:34: note: expanded from macro '__printk_index_emit'
#define __printk_index_emit(...) do {} while (0)
^
sound/soc/amd/yc/pci-acp6x.c:198:3: note: Execution continues on line 238
break;
--
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
13 warnings generated.
net/unix/af_unix.c:1598:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = 0;
^ ~
net/unix/af_unix.c:1598:3: note: Value stored to 'err' is never read
err = 0;
^ ~
net/unix/af_unix.c:2601:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = -EOPNOTSUPP;
^ ~~~~~~~~~~~
net/unix/af_unix.c:2601:3: note: Value stored to 'err' is never read
err = -EOPNOTSUPP;
^ ~~~~~~~~~~~
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
fs/readdir.c:156:2: warning: Value stored to 'd_ino' is never read [clang-analyzer-deadcode.DeadStores]
d_ino = ino;
^ ~~~
fs/readdir.c:156:2: note: Value stored to 'd_ino' is never read
d_ino = ino;
^ ~~~
fs/readdir.c:239:2: warning: Value stored to 'd_ino' is never read [clang-analyzer-deadcode.DeadStores]
d_ino = ino;
^ ~~~
fs/readdir.c:239:2: note: Value stored to 'd_ino' is never read
d_ino = ino;
^ ~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
12 warnings generated.
Suppressed 12 warnings (12 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
15 warnings generated.
net/ipv6/sit.c:275: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(parms->name, dev->name);
^~~~~~
net/ipv6/sit.c:275: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(parms->name, dev->name);
^~~~~~
net/ipv6/sit.c:339:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
net/ipv6/sit.c:339:4: note: Value stored to 'ret' is never read
ret = -ENOMEM;
^ ~~~~~~~
net/ipv6/sit.c:1453: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(tunnel->parms.name, dev->name);
^~~~~~
net/ipv6/sit.c:1453: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(tunnel->parms.name, dev->name);
^~~~~~
net/ipv6/sit.c:1932: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(t->parms.name, sitn->fb_tunnel_dev->name);
^~~~~~
net/ipv6/sit.c:1932: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(t->parms.name, sitn->fb_tunnel_dev->name);
^~~~~~
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
>> sound/soc/amd/yc/acp6x-pdm-dma.c:54:2: warning: Value stored to 'pdm_ctrl' is never read [clang-analyzer-deadcode.DeadStores]
pdm_ctrl = 0x00;
^ ~~~~
sound/soc/amd/yc/acp6x-pdm-dma.c:54:2: note: Value stored to 'pdm_ctrl' is never read
pdm_ctrl = 0x00;
^ ~~~~
>> sound/soc/amd/yc/acp6x-pdm-dma.c:121:2: warning: Value stored to 'pdm_enable' is never read [clang-analyzer-deadcode.DeadStores]
pdm_enable = 0x00;
^ ~~~~
sound/soc/amd/yc/acp6x-pdm-dma.c:121:2: note: Value stored to 'pdm_enable' is never read
pdm_enable = 0x00;
^ ~~~~
>> sound/soc/amd/yc/acp6x-pdm-dma.c:122:2: warning: Value stored to 'pdm_dma_enable' is never read [clang-analyzer-deadcode.DeadStores]
pdm_dma_enable = 0x00;
^ ~~~~
sound/soc/amd/yc/acp6x-pdm-dma.c:122:2: note: Value stored to 'pdm_dma_enable' is never read
pdm_dma_enable = 0x00;
^ ~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
net/sunrpc/auth_gss/gss_rpc_xdr.c:303:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = xdr_decode_hyper(p, &status->major_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:303:2: note: Value stored to 'p' is never read
p = xdr_decode_hyper(p, &status->major_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:314:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = xdr_decode_hyper(p, &status->minor_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:314:2: note: Value stored to 'p' is never read
p = xdr_decode_hyper(p, &status->minor_status);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:365:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = gssx_enc_option(xdr, &opt);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:365:2: note: Value stored to 'err' is never read
err = gssx_enc_option(xdr, &opt);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:607:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = xdr_encode_hyper(p, ctx->ctx_flags);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:607:2: note: Value stored to 'p' is never read
p = xdr_encode_hyper(p, ctx->ctx_flags);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:670:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = xdr_decode_hyper(p, &ctx->ctx_flags);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:670:2: note: Value stored to 'p' is never read
p = xdr_decode_hyper(p, &ctx->ctx_flags);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:698:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = xdr_encode_hyper(p, cb->initiator_addrtype);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:698:2: note: Value stored to 'p' is never read
p = xdr_encode_hyper(p, cb->initiator_addrtype);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:709:2: warning: Value stored to 'p' is never read [clang-analyzer-deadcode.DeadStores]
p = xdr_encode_hyper(p, cb->acceptor_addrtype);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/sunrpc/auth_gss/gss_rpc_xdr.c:709:2: note: Value stored to 'p' is never read
p = xdr_encode_hyper(p, cb->acceptor_addrtype);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 12 warnings (12 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
28 warnings generated.
Suppressed 28 warnings (28 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
12 warnings generated.
net/ethtool/netlink.c:635:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = -ENOMEM;
^ ~~~~~~~
net/ethtool/netlink.c:635:2: note: Value stored to 'ret' is never read
ret = -ENOMEM;
^ ~~~~~~~
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
Suppressed 11 warnings (11 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
vim +251 sound/soc/amd/yc/pci-acp6x.c
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 143
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 144 static int snd_acp6x_probe(struct pci_dev *pci,
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 145 const struct pci_device_id *pci_id)
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 146 {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 147 struct acp6x_dev_data *adata;
fc329c1de49825 Vijendar Mukunda 2021-10-18 148 struct platform_device_info pdevinfo[ACP6x_DEVS];
fc329c1de49825 Vijendar Mukunda 2021-10-18 149 int ret, index;
fc329c1de49825 Vijendar Mukunda 2021-10-18 150 int val = 0x00;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 151 u32 addr;
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 152 unsigned int irqflags;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 153
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 154 irqflags = IRQF_SHARED;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 155 /* Yellow Carp device check */
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 156 if (pci->revision != 0x60)
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 157 return -ENODEV;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 158
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 159 if (pci_enable_device(pci)) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 160 dev_err(&pci->dev, "pci_enable_device failed\n");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 161 return -ENODEV;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 162 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 163
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 164 ret = pci_request_regions(pci, "AMD ACP3x audio");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 165 if (ret < 0) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 166 dev_err(&pci->dev, "pci_request_regions failed\n");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 167 goto disable_pci;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 168 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 169
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 170 adata = devm_kzalloc(&pci->dev, sizeof(struct acp6x_dev_data),
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 171 GFP_KERNEL);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 172 if (!adata) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 173 ret = -ENOMEM;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 174 goto release_regions;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 175 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 176
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 177 addr = pci_resource_start(pci, 0);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 178 adata->acp6x_base = devm_ioremap(&pci->dev, addr,
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 179 pci_resource_len(pci, 0));
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 180 if (!adata->acp6x_base) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 181 ret = -ENOMEM;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 182 goto release_regions;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 183 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 184 pci_set_master(pci);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 185 pci_set_drvdata(pci, adata);
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 186 ret = acp6x_init(adata->acp6x_base);
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 187 if (ret)
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 188 goto release_regions;
fc329c1de49825 Vijendar Mukunda 2021-10-18 189 val = acp6x_readl(adata->acp6x_base + ACP_PIN_CONFIG);
fc329c1de49825 Vijendar Mukunda 2021-10-18 190 switch (val) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 191 case ACP_CONFIG_0:
fc329c1de49825 Vijendar Mukunda 2021-10-18 192 case ACP_CONFIG_1:
fc329c1de49825 Vijendar Mukunda 2021-10-18 193 case ACP_CONFIG_2:
fc329c1de49825 Vijendar Mukunda 2021-10-18 194 case ACP_CONFIG_3:
fc329c1de49825 Vijendar Mukunda 2021-10-18 195 case ACP_CONFIG_9:
fc329c1de49825 Vijendar Mukunda 2021-10-18 196 case ACP_CONFIG_15:
fc329c1de49825 Vijendar Mukunda 2021-10-18 197 dev_info(&pci->dev, "Audio Mode %d\n", val);
fc329c1de49825 Vijendar Mukunda 2021-10-18 198 break;
fc329c1de49825 Vijendar Mukunda 2021-10-18 199 default:
fc329c1de49825 Vijendar Mukunda 2021-10-18 200 adata->res = devm_kzalloc(&pci->dev,
fc329c1de49825 Vijendar Mukunda 2021-10-18 201 sizeof(struct resource),
fc329c1de49825 Vijendar Mukunda 2021-10-18 202 GFP_KERNEL);
fc329c1de49825 Vijendar Mukunda 2021-10-18 203 if (!adata->res) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 204 ret = -ENOMEM;
fc329c1de49825 Vijendar Mukunda 2021-10-18 205 goto de_init;
fc329c1de49825 Vijendar Mukunda 2021-10-18 206 }
fc329c1de49825 Vijendar Mukunda 2021-10-18 207
fc329c1de49825 Vijendar Mukunda 2021-10-18 208 adata->res->name = "acp_iomem";
fc329c1de49825 Vijendar Mukunda 2021-10-18 209 adata->res->flags = IORESOURCE_MEM;
fc329c1de49825 Vijendar Mukunda 2021-10-18 210 adata->res->start = addr;
fc329c1de49825 Vijendar Mukunda 2021-10-18 211 adata->res->end = addr + (ACP6x_REG_END - ACP6x_REG_START);
fc329c1de49825 Vijendar Mukunda 2021-10-18 212
fc329c1de49825 Vijendar Mukunda 2021-10-18 213 adata->acp6x_audio_mode = ACP6x_PDM_MODE;
fc329c1de49825 Vijendar Mukunda 2021-10-18 214
fc329c1de49825 Vijendar Mukunda 2021-10-18 215 memset(&pdevinfo, 0, sizeof(pdevinfo));
fc329c1de49825 Vijendar Mukunda 2021-10-18 216 pdevinfo[0].name = "acp_yc_pdm_dma";
fc329c1de49825 Vijendar Mukunda 2021-10-18 217 pdevinfo[0].id = 0;
fc329c1de49825 Vijendar Mukunda 2021-10-18 218 pdevinfo[0].parent = &pci->dev;
fc329c1de49825 Vijendar Mukunda 2021-10-18 219 pdevinfo[0].num_res = 1;
fc329c1de49825 Vijendar Mukunda 2021-10-18 220 pdevinfo[0].res = adata->res;
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 221
fc329c1de49825 Vijendar Mukunda 2021-10-18 222 pdevinfo[1].name = "dmic-codec";
fc329c1de49825 Vijendar Mukunda 2021-10-18 223 pdevinfo[1].id = 0;
fc329c1de49825 Vijendar Mukunda 2021-10-18 224 pdevinfo[1].parent = &pci->dev;
fc329c1de49825 Vijendar Mukunda 2021-10-18 225
fc329c1de49825 Vijendar Mukunda 2021-10-18 226 for (index = 0; index < ACP6x_DEVS; index++) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 227 adata->pdev[index] =
fc329c1de49825 Vijendar Mukunda 2021-10-18 228 platform_device_register_full(&pdevinfo[index]);
fc329c1de49825 Vijendar Mukunda 2021-10-18 229 if (IS_ERR(adata->pdev[index])) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 230 dev_err(&pci->dev, "cannot register %s device\n",
fc329c1de49825 Vijendar Mukunda 2021-10-18 231 pdevinfo[index].name);
fc329c1de49825 Vijendar Mukunda 2021-10-18 232 ret = PTR_ERR(adata->pdev[index]);
fc329c1de49825 Vijendar Mukunda 2021-10-18 233 goto unregister_devs;
fc329c1de49825 Vijendar Mukunda 2021-10-18 234 }
fc329c1de49825 Vijendar Mukunda 2021-10-18 235 }
fc329c1de49825 Vijendar Mukunda 2021-10-18 236 break;
fc329c1de49825 Vijendar Mukunda 2021-10-18 237 }
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 238 ret = devm_request_irq(&pci->dev, pci->irq, acp6x_irq_handler,
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 239 irqflags, "ACP_PCI_IRQ", adata);
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 240 if (ret) {
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 241 dev_err(&pci->dev, "ACP PCI IRQ request failed\n");
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 242 goto unregister_devs;
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 243 }
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 244 pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 245 pm_runtime_use_autosuspend(&pci->dev);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 246 pm_runtime_put_noidle(&pci->dev);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 247 pm_runtime_allow(&pci->dev);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 248
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 249 return 0;
fc329c1de49825 Vijendar Mukunda 2021-10-18 250 unregister_devs:
fc329c1de49825 Vijendar Mukunda 2021-10-18 @251 for (--index; index >= 0; index--)
fc329c1de49825 Vijendar Mukunda 2021-10-18 252 platform_device_unregister(adata->pdev[index]);
fc329c1de49825 Vijendar Mukunda 2021-10-18 253 de_init:
fc329c1de49825 Vijendar Mukunda 2021-10-18 254 if (acp6x_deinit(adata->acp6x_base))
fc329c1de49825 Vijendar Mukunda 2021-10-18 255 dev_err(&pci->dev, "ACP de-init failed\n");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 256 release_regions:
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 257 pci_release_regions(pci);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 258 disable_pci:
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 259 pci_disable_device(pci);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 260
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 261 return ret;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 262 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 263
:::::: The code at line 251 was first introduced by commit
:::::: fc329c1de49825a30d5381e18316a3fd45aac7a9 ASoC: amd: add platform devices for acp6x pdm driver and dmic driver
:::::: TO: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
:::::: CC: Mark Brown <broonie@kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
* sound/soc/amd/yc/pci-acp6x.c:251:7: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
@ 2021-12-08 10:58 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-12-08 10:58 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 38406 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
CC: Mark Brown <broonie@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2a987e65025e2b79c6d453b78cb5985ac6e5eb26
commit: 89728d97db3f078aceb967ebe5ed2d0797b6a117 ASoC: amd: enable Yellow carp acp6x drivers build
date: 7 weeks ago
:::::: branch date: 10 hours ago
:::::: commit date: 7 weeks ago
config: x86_64-randconfig-c007-20211205 (https://download.01.org/0day-ci/archive/20211208/202112081736.bx8rAHCS-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5f1d1854eb1450d352663ee732235893c5782237)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=89728d97db3f078aceb967ebe5ed2d0797b6a117
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 89728d97db3f078aceb967ebe5ed2d0797b6a117
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
7 warnings generated.
Suppressed 7 warnings (6 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.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
>> sound/soc/amd/yc/pci-acp6x.c:251:7: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
for (--index; index >= 0; index--)
^ ~~~~~
sound/soc/amd/yc/pci-acp6x.c:149:11: note: 'index' declared without an initial value
int ret, index;
^~~~~
sound/soc/amd/yc/pci-acp6x.c:156:6: note: Assuming field 'revision' is equal to 96
if (pci->revision != 0x60)
^~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:156:2: note: Taking false branch
if (pci->revision != 0x60)
^
sound/soc/amd/yc/pci-acp6x.c:159:6: note: Assuming the condition is false
if (pci_enable_device(pci)) {
^~~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:159:2: note: Taking false branch
if (pci_enable_device(pci)) {
^
sound/soc/amd/yc/pci-acp6x.c:165:6: note: Assuming 'ret' is >= 0
if (ret < 0) {
^~~~~~~
sound/soc/amd/yc/pci-acp6x.c:165:2: note: Taking false branch
if (ret < 0) {
^
sound/soc/amd/yc/pci-acp6x.c:172:6: note: Assuming 'adata' is non-null
if (!adata) {
^~~~~~
sound/soc/amd/yc/pci-acp6x.c:172:2: note: Taking false branch
if (!adata) {
^
sound/soc/amd/yc/pci-acp6x.c:179:7: note: Assuming field 'end' is equal to 0
pci_resource_len(pci, 0));
^
include/linux/pci.h:1932:4: note: expanded from macro 'pci_resource_len'
((pci_resource_end((dev), (bar)) == 0) ? 0 : \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/pci.h:1929:36: note: expanded from macro 'pci_resource_end'
#define pci_resource_end(dev, bar) ((dev)->resource[(bar)].end)
^
sound/soc/amd/yc/pci-acp6x.c:179:7: note: '?' condition is true
pci_resource_len(pci, 0));
^
include/linux/pci.h:1932:3: note: expanded from macro 'pci_resource_len'
((pci_resource_end((dev), (bar)) == 0) ? 0 : \
^
sound/soc/amd/yc/pci-acp6x.c:180:6: note: Assuming field 'acp6x_base' is non-null
if (!adata->acp6x_base) {
^~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:180:2: note: Taking false branch
if (!adata->acp6x_base) {
^
sound/soc/amd/yc/pci-acp6x.c:186:8: note: Calling 'acp6x_init'
ret = acp6x_init(adata->acp6x_base);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:91:6: note: Assuming 'ret' is 0
if (ret) {
^~~
sound/soc/amd/yc/pci-acp6x.c:91:2: note: Taking false branch
if (ret) {
^
sound/soc/amd/yc/pci-acp6x.c:98:6: note: Assuming 'ret' is 0
if (ret) {
^~~
sound/soc/amd/yc/pci-acp6x.c:98:2: note: Taking false branch
if (ret) {
^
sound/soc/amd/yc/pci-acp6x.c:104:2: note: Returning zero, which participates in a condition later
return 0;
^~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:186:8: note: Returning from 'acp6x_init'
ret = acp6x_init(adata->acp6x_base);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/soc/amd/yc/pci-acp6x.c:187:6: note: 'ret' is 0
if (ret)
^~~
sound/soc/amd/yc/pci-acp6x.c:187:2: note: Taking false branch
if (ret)
^
sound/soc/amd/yc/pci-acp6x.c:190:2: note: Control jumps to 'case ACP_CONFIG_15:' at line 196
switch (val) {
^
sound/soc/amd/yc/pci-acp6x.c:197:3: note: Loop condition is false. Exiting loop
dev_info(&pci->dev, "Audio Mode %d\n", val);
^
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:392:34: note: expanded from macro '__printk_index_emit'
#define __printk_index_emit(...) do {} while (0)
^
sound/soc/amd/yc/pci-acp6x.c:198:3: note: Execution continues on line 238
break;
--
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (6 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.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
Suppressed 9 warnings (9 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
sound/soc/codecs/ak4613.c:402:2: warning: Value stored to 'fmt_ctrl' is never read [clang-analyzer-deadcode.DeadStores]
fmt_ctrl = NO_FMT;
^
sound/soc/codecs/ak4613.c:402:2: note: Value stored to 'fmt_ctrl' is never read
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
>> sound/soc/amd/yc/acp6x-pdm-dma.c:54:2: warning: Value stored to 'pdm_ctrl' is never read [clang-analyzer-deadcode.DeadStores]
pdm_ctrl = 0x00;
^ ~~~~
sound/soc/amd/yc/acp6x-pdm-dma.c:54:2: note: Value stored to 'pdm_ctrl' is never read
pdm_ctrl = 0x00;
^ ~~~~
>> sound/soc/amd/yc/acp6x-pdm-dma.c:121:2: warning: Value stored to 'pdm_enable' is never read [clang-analyzer-deadcode.DeadStores]
pdm_enable = 0x00;
^ ~~~~
sound/soc/amd/yc/acp6x-pdm-dma.c:121:2: note: Value stored to 'pdm_enable' is never read
pdm_enable = 0x00;
^ ~~~~
>> sound/soc/amd/yc/acp6x-pdm-dma.c:122:2: warning: Value stored to 'pdm_dma_enable' is never read [clang-analyzer-deadcode.DeadStores]
pdm_dma_enable = 0x00;
^ ~~~~
sound/soc/amd/yc/acp6x-pdm-dma.c:122:2: note: Value stored to 'pdm_dma_enable' is never read
pdm_dma_enable = 0x00;
^ ~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
sound/soc/intel/atom/sst-atom-controls.c:145: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(uinfo->value.enumerated.name,
^~~~~~
sound/soc/intel/atom/sst-atom-controls.c:145: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(uinfo->value.enumerated.name,
^~~~~~
sound/soc/intel/atom/sst-atom-controls.c:442:28: warning: Value stored to 'component' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
^~~~~~~~~
sound/soc/intel/atom/sst-atom-controls.c:442:28: note: Value stored to 'component' during its initialization is never read
struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
^~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
sound/hda/intel-dsp-config.c:29:8: warning: Excessive padding in 'struct config_entry' (8 padding bytes, where 0 is optimal).
Optimal fields order:
dmi_table,
flags,
device,
acpi_hid,
codec_hid,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct config_entry {
~~~~~~~^~~~~~~~~~~~~~
sound/hda/intel-dsp-config.c:29:8: note: Excessive padding in 'struct config_entry' (8 padding bytes, where 0 is optimal). Optimal fields order: dmi_table, flags, device, acpi_hid, codec_hid, consider reordering the fields or adding explicit padding members
struct config_entry {
~~~~~~~^~~~~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
drivers/media/dvb-frontends/mb86a20s.c:877:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = mb86a20s_writereg(state, 0x52, 0x00);
^
drivers/media/dvb-frontends/mb86a20s.c:877:3: note: Value stored to 'rc' is never read
drivers/media/dvb-frontends/mb86a20s.c:903:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = mb86a20s_writereg(state, 0x52, 0x01);
^
drivers/media/dvb-frontends/mb86a20s.c:903:3: note: Value stored to 'rc' is never read
drivers/media/dvb-frontends/mb86a20s.c:1011:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
rc = mb86a20s_writereg(state, 0x5e, 0x00);
vim +251 sound/soc/amd/yc/pci-acp6x.c
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 143
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 144 static int snd_acp6x_probe(struct pci_dev *pci,
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 145 const struct pci_device_id *pci_id)
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 146 {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 147 struct acp6x_dev_data *adata;
fc329c1de49825 Vijendar Mukunda 2021-10-18 148 struct platform_device_info pdevinfo[ACP6x_DEVS];
fc329c1de49825 Vijendar Mukunda 2021-10-18 149 int ret, index;
fc329c1de49825 Vijendar Mukunda 2021-10-18 150 int val = 0x00;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 151 u32 addr;
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 152 unsigned int irqflags;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 153
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 154 irqflags = IRQF_SHARED;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 155 /* Yellow Carp device check */
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 156 if (pci->revision != 0x60)
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 157 return -ENODEV;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 158
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 159 if (pci_enable_device(pci)) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 160 dev_err(&pci->dev, "pci_enable_device failed\n");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 161 return -ENODEV;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 162 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 163
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 164 ret = pci_request_regions(pci, "AMD ACP3x audio");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 165 if (ret < 0) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 166 dev_err(&pci->dev, "pci_request_regions failed\n");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 167 goto disable_pci;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 168 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 169
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 170 adata = devm_kzalloc(&pci->dev, sizeof(struct acp6x_dev_data),
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 171 GFP_KERNEL);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 172 if (!adata) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 173 ret = -ENOMEM;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 174 goto release_regions;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 175 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 176
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 177 addr = pci_resource_start(pci, 0);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 178 adata->acp6x_base = devm_ioremap(&pci->dev, addr,
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 179 pci_resource_len(pci, 0));
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 180 if (!adata->acp6x_base) {
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 181 ret = -ENOMEM;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 182 goto release_regions;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 183 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 184 pci_set_master(pci);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 185 pci_set_drvdata(pci, adata);
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 186 ret = acp6x_init(adata->acp6x_base);
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 187 if (ret)
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 188 goto release_regions;
fc329c1de49825 Vijendar Mukunda 2021-10-18 189 val = acp6x_readl(adata->acp6x_base + ACP_PIN_CONFIG);
fc329c1de49825 Vijendar Mukunda 2021-10-18 190 switch (val) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 191 case ACP_CONFIG_0:
fc329c1de49825 Vijendar Mukunda 2021-10-18 192 case ACP_CONFIG_1:
fc329c1de49825 Vijendar Mukunda 2021-10-18 193 case ACP_CONFIG_2:
fc329c1de49825 Vijendar Mukunda 2021-10-18 194 case ACP_CONFIG_3:
fc329c1de49825 Vijendar Mukunda 2021-10-18 195 case ACP_CONFIG_9:
fc329c1de49825 Vijendar Mukunda 2021-10-18 196 case ACP_CONFIG_15:
fc329c1de49825 Vijendar Mukunda 2021-10-18 197 dev_info(&pci->dev, "Audio Mode %d\n", val);
fc329c1de49825 Vijendar Mukunda 2021-10-18 198 break;
fc329c1de49825 Vijendar Mukunda 2021-10-18 199 default:
fc329c1de49825 Vijendar Mukunda 2021-10-18 200 adata->res = devm_kzalloc(&pci->dev,
fc329c1de49825 Vijendar Mukunda 2021-10-18 201 sizeof(struct resource),
fc329c1de49825 Vijendar Mukunda 2021-10-18 202 GFP_KERNEL);
fc329c1de49825 Vijendar Mukunda 2021-10-18 203 if (!adata->res) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 204 ret = -ENOMEM;
fc329c1de49825 Vijendar Mukunda 2021-10-18 205 goto de_init;
fc329c1de49825 Vijendar Mukunda 2021-10-18 206 }
fc329c1de49825 Vijendar Mukunda 2021-10-18 207
fc329c1de49825 Vijendar Mukunda 2021-10-18 208 adata->res->name = "acp_iomem";
fc329c1de49825 Vijendar Mukunda 2021-10-18 209 adata->res->flags = IORESOURCE_MEM;
fc329c1de49825 Vijendar Mukunda 2021-10-18 210 adata->res->start = addr;
fc329c1de49825 Vijendar Mukunda 2021-10-18 211 adata->res->end = addr + (ACP6x_REG_END - ACP6x_REG_START);
fc329c1de49825 Vijendar Mukunda 2021-10-18 212
fc329c1de49825 Vijendar Mukunda 2021-10-18 213 adata->acp6x_audio_mode = ACP6x_PDM_MODE;
fc329c1de49825 Vijendar Mukunda 2021-10-18 214
fc329c1de49825 Vijendar Mukunda 2021-10-18 215 memset(&pdevinfo, 0, sizeof(pdevinfo));
fc329c1de49825 Vijendar Mukunda 2021-10-18 216 pdevinfo[0].name = "acp_yc_pdm_dma";
fc329c1de49825 Vijendar Mukunda 2021-10-18 217 pdevinfo[0].id = 0;
fc329c1de49825 Vijendar Mukunda 2021-10-18 218 pdevinfo[0].parent = &pci->dev;
fc329c1de49825 Vijendar Mukunda 2021-10-18 219 pdevinfo[0].num_res = 1;
fc329c1de49825 Vijendar Mukunda 2021-10-18 220 pdevinfo[0].res = adata->res;
8c7161f2c97b2d Vijendar Mukunda 2021-10-18 221
fc329c1de49825 Vijendar Mukunda 2021-10-18 222 pdevinfo[1].name = "dmic-codec";
fc329c1de49825 Vijendar Mukunda 2021-10-18 223 pdevinfo[1].id = 0;
fc329c1de49825 Vijendar Mukunda 2021-10-18 224 pdevinfo[1].parent = &pci->dev;
fc329c1de49825 Vijendar Mukunda 2021-10-18 225
fc329c1de49825 Vijendar Mukunda 2021-10-18 226 for (index = 0; index < ACP6x_DEVS; index++) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 227 adata->pdev[index] =
fc329c1de49825 Vijendar Mukunda 2021-10-18 228 platform_device_register_full(&pdevinfo[index]);
fc329c1de49825 Vijendar Mukunda 2021-10-18 229 if (IS_ERR(adata->pdev[index])) {
fc329c1de49825 Vijendar Mukunda 2021-10-18 230 dev_err(&pci->dev, "cannot register %s device\n",
fc329c1de49825 Vijendar Mukunda 2021-10-18 231 pdevinfo[index].name);
fc329c1de49825 Vijendar Mukunda 2021-10-18 232 ret = PTR_ERR(adata->pdev[index]);
fc329c1de49825 Vijendar Mukunda 2021-10-18 233 goto unregister_devs;
fc329c1de49825 Vijendar Mukunda 2021-10-18 234 }
fc329c1de49825 Vijendar Mukunda 2021-10-18 235 }
fc329c1de49825 Vijendar Mukunda 2021-10-18 236 break;
fc329c1de49825 Vijendar Mukunda 2021-10-18 237 }
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 238 ret = devm_request_irq(&pci->dev, pci->irq, acp6x_irq_handler,
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 239 irqflags, "ACP_PCI_IRQ", adata);
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 240 if (ret) {
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 241 dev_err(&pci->dev, "ACP PCI IRQ request failed\n");
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 242 goto unregister_devs;
cc0deaa2dc7300 Vijendar Mukunda 2021-10-18 243 }
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 244 pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 245 pm_runtime_use_autosuspend(&pci->dev);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 246 pm_runtime_put_noidle(&pci->dev);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 247 pm_runtime_allow(&pci->dev);
c8212df7bc0f2e Vijendar Mukunda 2021-10-18 248
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 249 return 0;
fc329c1de49825 Vijendar Mukunda 2021-10-18 250 unregister_devs:
fc329c1de49825 Vijendar Mukunda 2021-10-18 @251 for (--index; index >= 0; index--)
fc329c1de49825 Vijendar Mukunda 2021-10-18 252 platform_device_unregister(adata->pdev[index]);
fc329c1de49825 Vijendar Mukunda 2021-10-18 253 de_init:
fc329c1de49825 Vijendar Mukunda 2021-10-18 254 if (acp6x_deinit(adata->acp6x_base))
fc329c1de49825 Vijendar Mukunda 2021-10-18 255 dev_err(&pci->dev, "ACP de-init failed\n");
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 256 release_regions:
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 257 pci_release_regions(pci);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 258 disable_pci:
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 259 pci_disable_device(pci);
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 260
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 261 return ret;
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 262 }
c62442bd5d9f86 Vijendar Mukunda 2021-10-18 263
:::::: The code at line 251 was first introduced by commit
:::::: fc329c1de49825a30d5381e18316a3fd45aac7a9 ASoC: amd: add platform devices for acp6x pdm driver and dmic driver
:::::: TO: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
:::::: CC: Mark Brown <broonie@kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-12-08 10:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-08 8:04 sound/soc/amd/yc/pci-acp6x.c:251:7: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign] kernel test robot
2021-12-08 10:58 kernel test robot
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.