tree:
https://github.com/Xilinx/linux-xlnx xlnx_rebase_v5.10
head: bf98c1493fb23bfd7e2678498b7e337ce2cd1d53
commit: 824faebe34d034969fc79852a2999fdc11c5cd33 [626/1760] fpga: Add
firmware store function
:::::: branch date: 14 hours ago
:::::: commit date: 3 months ago
config: x86_64-randconfig-c001-20210810 (attached as .config)
compiler: clang version 14.0.0 (
https://github.com/llvm/llvm-project
d39ebdae674c8efc84ebe8dc32716ec353220530)
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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
#
https://github.com/Xilinx/linux-xlnx/commit/824faebe34d034969fc79852a2999...
git remote add xlnx
https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xlnx xlnx_rebase_v5.10
git checkout 824faebe34d034969fc79852a2999fdc11c5cd33
# save the attached .config 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(a)intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^~~~~~~~~~~
mm/hugetlb.c:1900:9: note: Returning from 'alloc_surplus_huge_page'
page = alloc_surplus_huge_page(h, gfp_mask, nid, nodemask);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/hugetlb.c:1903:2: note: Returning null pointer (loaded from
'page'), which participates in a condition later
return page;
^~~~~~~~~~~
mm/hugetlb.c:2327:10: note: Returning from
'alloc_buddy_huge_page_with_mpol'
page = alloc_buddy_huge_page_with_mpol(h, vma, addr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/hugetlb.c:2328:8: note: 'page' is null
if (!page)
^~~~
mm/hugetlb.c:2328:3: note: Taking true branch
if (!page)
^
mm/hugetlb.c:2329:4: note: Control jumps to line 2373
goto out_uncharge_cgroup;
^
mm/hugetlb.c:2373:2: note: 3rd function call argument is an
uninitialized value
hugetlb_cgroup_uncharge_cgroup(idx, pages_per_huge_page(h),
h_cg);
^ ~~~~
Suppressed 8 warnings (8 in non-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/crypto/keysetup_v1.c:82:2: warning: Potential leak of memory
pointed to by 'req' [clang-analyzer-unix.Malloc]
crypto_free_skcipher(tfm);
^
fs/crypto/keysetup_v1.c:307:30: note: Left side of '&&' is false
if (key == ERR_PTR(-ENOKEY) &&
ci->ci_inode->i_sb->s_cop->key_prefix) {
^
fs/crypto/keysetup_v1.c:312:2: note: Taking false branch
if (IS_ERR(key))
^
fs/crypto/keysetup_v1.c:315:8: note: Calling 'fscrypt_setup_v1_file_key'
err = fscrypt_setup_v1_file_key(ci, payload->raw);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/crypto/keysetup_v1.c:292:6: note: Assuming the condition is false
if (ci->ci_policy.v1.flags & FSCRYPT_POLICY_FLAG_DIRECT_KEY)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/crypto/keysetup_v1.c:292:2: note: Taking false branch
if (ci->ci_policy.v1.flags & FSCRYPT_POLICY_FLAG_DIRECT_KEY)
^
fs/crypto/keysetup_v1.c:295:10: note: Calling
'setup_v1_file_key_derived'
return setup_v1_file_key_derived(ci, raw_master_key);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/crypto/keysetup_v1.c:276:6: note: Assuming 'derived_key' is non-null
if (!derived_key)
^~~~~~~~~~~~
fs/crypto/keysetup_v1.c:276:2: note: Taking false branch
if (!derived_key)
^
fs/crypto/keysetup_v1.c:279:8: note: Calling 'derive_key_aes'
err = derive_key_aes(raw_master_key, ci->ci_nonce,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/crypto/keysetup_v1.c:57:2: note: Taking false branch
if (IS_ERR(tfm)) {
^
fs/crypto/keysetup_v1.c:63:8: note: Calling 'skcipher_request_alloc'
req = skcipher_request_alloc(tfm, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/crypto/skcipher.h:496:8: note: Memory is allocated
req = kmalloc(sizeof(struct skcipher_request) +
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/crypto/skcipher.h:499:6: note: Assuming 'req' is non-null
if (likely(req))
^
include/linux/compiler.h:77:38: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^~~~
include/crypto/skcipher.h:499:2: note: Taking true branch
if (likely(req))
^
fs/crypto/keysetup_v1.c:63:8: note: Returned allocated memory
req = skcipher_request_alloc(tfm, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/crypto/keysetup_v1.c:64:7: note: 'req' is non-null
if (!req) {
^~~
fs/crypto/keysetup_v1.c:64:2: note: Taking false branch
if (!req) {
^
fs/crypto/keysetup_v1.c:72:6: note: Assuming 'res' is < 0
if (res < 0)
^~~~~~~
fs/crypto/keysetup_v1.c:72:2: note: Taking true branch
if (res < 0)
^
fs/crypto/keysetup_v1.c:73:3: note: Control jumps to line 81
goto out;
^
fs/crypto/keysetup_v1.c:82:2: note: Potential leak of memory pointed
to by 'req'
crypto_free_skcipher(tfm);
^
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.
> drivers/fpga/fpga-mgr.c:451: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(image_name, buf);
^~~~~~
drivers/fpga/fpga-mgr.c:451: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(image_name, buf);
^~~~~~
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.
11 warnings generated.
drivers/fsi/fsi-core.c:719:4: warning: Value stored to 'rc' is never
read [clang-analyzer-deadcode.DeadStores]
rc = -EFAULT;
^ ~~~~~~~
drivers/fsi/fsi-core.c:719:4: note: Value stored to 'rc' is never read
rc = -EFAULT;
^ ~~~~~~~
drivers/fsi/fsi-core.c:724:2: warning: Value stored to 'rc' is never
read [clang-analyzer-deadcode.DeadStores]
rc = count;
^ ~~~~~
drivers/fsi/fsi-core.c:724:2: note: Value stored to 'rc' is never read
rc = count;
^ ~~~~~
drivers/fsi/fsi-core.c:753:4: warning: Value stored to 'rc' is never
read [clang-analyzer-deadcode.DeadStores]
rc = -EFAULT;
^ ~~~~~~~
drivers/fsi/fsi-core.c:753:4: note: Value stored to 'rc' is never read
rc = -EFAULT;
^ ~~~~~~~
drivers/fsi/fsi-core.c:761:2: warning: Value stored to 'rc' is never
read [clang-analyzer-deadcode.DeadStores]
rc = count;
^ ~~~~~
drivers/fsi/fsi-core.c:761:2: note: Value stored to 'rc' is never read
rc = count;
^ ~~~~~
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.
8 warnings generated.
drivers/fsi/fsi-scom.c:356:17: warning: Value stored to 'dev' during
its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &scom->fsi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~
drivers/fsi/fsi-scom.c:356:17: note: Value stored to 'dev' during
its initialization is never read
struct device *dev = &scom->fsi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~
drivers/fsi/fsi-scom.c:386:17: warning: Value stored to 'dev' during
its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &scom->fsi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~
drivers/fsi/fsi-scom.c:386:17: note: Value stored to 'dev' during
its initialization is never read
struct device *dev = &scom->fsi_dev->dev;
^~~ ~~~~~~~~~~~~~~~~~~~
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.
13 warnings generated.
Suppressed 13 warnings (13 in non-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.
drivers/net/xen-netfront.c:105:8: warning: Excessive padding in
'struct netfront_queue' (96 padding bytes, where 32 is optimal).
Optimal fields order: xdp_rxq, rx_lock, info, xdp_prog,
page_pool, tx, rx, tx_lock, rx_refill_timer, napi,
tx_skbs, grant_tx_page, rx_skbs, id, tx_evtchn,
rx_evtchn, tx_irq, rx_irq, tx_ring_ref, gref_tx_head,
tx_skb_freelist, rx_ring_ref, gref_rx_head, grant_tx_ref,
grant_rx_ref, name, tx_irq_name, rx_irq_name, consider
reordering the fields or adding explicit padding members
[clang-analyzer-optin.performance.Padding]
struct netfront_queue {
~~~~~~~^~~~~~~~~~~~~~~~
drivers/net/xen-netfront.c:105:8: note: Excessive padding in 'struct
netfront_queue' (96 padding bytes, where 32 is optimal). Optimal fields
order: xdp_rxq, rx_lock, info, xdp_prog, page_pool, tx, rx, tx_lock,
rx_refill_timer, napi, tx_skbs, grant_tx_page, rx_skbs, id, tx_evtchn,
rx_evtchn, tx_irq, rx_irq, tx_ring_ref, gref_tx_head, tx_skb_freelist,
rx_ring_ref, gref_rx_head, grant_tx_ref, grant_rx_ref, name,
tx_irq_name, rx_irq_name, consider reordering the fields or adding
explicit padding members
struct netfront_queue {
~~~~~~~^~~~~~~~~~~~~~~~
drivers/net/xen-netfront.c:299:11: warning: Value stored to
'req_prod' during its initialization is never read
[clang-analyzer-deadcode.DeadStores]
RING_IDX req_prod = queue->rx.req_prod_pvt;
^~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
drivers/net/xen-netfront.c:299:11: note: Value stored to 'req_prod'
during its initialization is never read
RING_IDX req_prod = queue->rx.req_prod_pvt;
vim +451 drivers/fpga/fpga-mgr.c
ecb5fbe299dfaa Wu Hao 2018-06-30 437 824faebe34d034 Michal Simek
2019-12-31 438 static ssize_t firmware_store(struct device *dev,
824faebe34d034 Michal Simek 2019-12-31 439 struct
device_attribute *attr,
824faebe34d034 Michal Simek 2019-12-31 440 const char *buf,
size_t count)
824faebe34d034 Michal Simek 2019-12-31 441 {
824faebe34d034 Michal Simek 2019-12-31 442 struct fpga_manager *mgr =
to_fpga_manager(dev);
824faebe34d034 Michal Simek 2019-12-31 443 unsigned int len;
824faebe34d034 Michal Simek 2019-12-31 444 char image_name[NAME_MAX];
824faebe34d034 Michal Simek 2019-12-31 445 int ret;
824faebe34d034 Michal Simek 2019-12-31 446 824faebe34d034 Michal Simek
2019-12-31 447 /* struct with information about the FPGA image to
program. */
824faebe34d034 Michal Simek 2019-12-31 448 struct fpga_image_info
info = {0};
824faebe34d034 Michal Simek 2019-12-31 449 824faebe34d034 Michal Simek
2019-12-31 450 /* lose terminating \n */
824faebe34d034 Michal Simek 2019-12-31 @451 strcpy(image_name, buf);
824faebe34d034 Michal Simek 2019-12-31 452 len = strlen(image_name);
824faebe34d034 Michal Simek 2019-12-31 453 if (image_name[len - 1] ==
'\n')
824faebe34d034 Michal Simek 2019-12-31 454 image_name[len - 1] = 0;
824faebe34d034 Michal Simek 2019-12-31 455 824faebe34d034 Michal Simek
2019-12-31 456 ret = fpga_mgr_firmware_load(mgr, &info, image_name);
824faebe34d034 Michal Simek 2019-12-31 457 if (ret)
824faebe34d034 Michal Simek 2019-12-31 458 return ret;
824faebe34d034 Michal Simek 2019-12-31 459 824faebe34d034 Michal Simek
2019-12-31 460 return count;
824faebe34d034 Michal Simek 2019-12-31 461 }
824faebe34d034 Michal Simek 2019-12-31 462
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org