CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Michal Simek <[email protected]>

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/824faebe34d034969fc79852a2999fdc11c5cd33
        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 <[email protected]>


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/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to