[usb:usb-testing 3/89] drivers/usb/dwc3/gadget.c:687:2: warning: Value stored to 'dep' is never read [clang-analyzer-deadcode.DeadStores]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
head:   0d45a1373e669880b8beaecc8765f44cb0241e47
commit: 9f607a309fbe95fc1f77acce5af70766a7142537 [3/89] usb: dwc3: Resize TX FIFOs to meet EP bursting requirements
config: x86_64-randconfig-c007-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 44d0a99a12ec7ead4d2f5ef649ba05b40f6d463d)
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/gregkh/usb.git/commit/?id=9f607a309fbe95fc1f77acce5af70766a7142537
        git remote add usb https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
        git fetch --no-tags usb usb-testing
        git checkout 9f607a309fbe95fc1f77acce5af70766a7142537
        # 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@xxxxxxxxx>


clang-analyzer warnings: (new ones prefixed by >>)
           ^
   drivers/hid/hid-dr.c:259:7: note: Assuming the condition is false
                   if (field->flags & HID_MAIN_ITEM_RELATIVE)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-dr.c:259:3: note: Taking false branch
                   if (field->flags & HID_MAIN_ITEM_RELATIVE)
                   ^
   drivers/hid/hid-dr.c:262:4: note: Calling 'hid_map_usage'
                           map_abs(usage->hid & 0xf);
                           ^
   drivers/hid/hid-dr.c:245:25: note: expanded from macro 'map_abs'
   #define map_abs(c)      hid_map_usage(hi, usage, bit, max, EV_ABS, (c))
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:982:2: note: 'input' initialized here
           struct input_dev *input = hidinput->input;
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:986:2: note: Control jumps to 'case 3:'  at line 987
           switch (type) {
           ^
   include/linux/hid.h:990:3: note:  Execution continues on line 1005
                   break;
                   ^
   include/linux/hid.h:1005:15: note: 'c' is <= 'limit'
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:15: note: Left side of '||' is false
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/hid.h:1005:28: note: Assuming 'bmap' is null
           if (unlikely(c > limit || !bmap)) {
                                     ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/hid.h:1005:2: note: Taking true branch
           if (unlikely(c > limit || !bmap)) {
           ^
   include/linux/hid.h:1006:3: note: Assuming the condition is true
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:557:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/printk.h:540:6: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
               ^~~~~~~~~~~~~~~~~
   include/linux/ratelimit_types.h:41:28: note: expanded from macro '__ratelimit'
   #define __ratelimit(state) ___ratelimit(state, __func__)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1006:3: note: Taking true branch
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:557:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:540:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/hid.h:1007:9: note: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input')
                                       input->name, c, type);
                                       ^
   include/linux/printk.h:557:49: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                                                          ^~~~~~~~~~~
   include/linux/printk.h:541:17: note: expanded from macro 'printk_ratelimited'
                   printk(fmt, ##__VA_ARGS__);                             \
                                 ^~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   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.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-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/usb/dwc3/gadget.c:687:2: warning: Value stored to 'dep' is never read [clang-analyzer-deadcode.DeadStores]
           dep = dwc->eps[1];
           ^     ~~~~~~~~~~~
   drivers/usb/dwc3/gadget.c:687:2: note: Value stored to 'dep' is never read
           dep = dwc->eps[1];
           ^     ~~~~~~~~~~~
   drivers/usb/dwc3/gadget.c:698:3: warning: Value stored to 'dep' is never read [clang-analyzer-deadcode.DeadStores]
                   dep = dwc->eps[num];
                   ^     ~~~~~~~~~~~~~
   drivers/usb/dwc3/gadget.c:698:3: note: Value stored to 'dep' is never read
                   dep = dwc->eps[num];
                   ^     ~~~~~~~~~~~~~
   drivers/usb/dwc3/gadget.c:3110:19: warning: Value stored to 'trb' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct dwc3_trb *trb = &dep->trb_pool[dep->trb_dequeue];
                            ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/dwc3/gadget.c:3110:19: note: Value stored to 'trb' during its initialization is never read
           struct dwc3_trb *trb = &dep->trb_pool[dep->trb_dequeue];
                            ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (3 in non-user code, 1 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/regulator/core.c:1109:2: warning: Value stored to 'count' is never read [clang-analyzer-deadcode.DeadStores]
           count += scnprintf(buf + count, len - count, ", %s",
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/core.c:1109:2: note: Value stored to 'count' is never read
           count += scnprintf(buf + count, len - count, ", %s",
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/core.c:3791:3: warning: Value stored to 'possible_uV' is never read [clang-analyzer-deadcode.DeadStores]
                   possible_uV = desired_min_uV;
                   ^             ~~~~~~~~~~~~~~
   drivers/regulator/core.c:3791:3: note: Value stored to 'possible_uV' is never read
                   possible_uV = desired_min_uV;
                   ^             ~~~~~~~~~~~~~~
   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.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-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.
   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.
   8 warnings generated.
   drivers/usb/host/xhci-dbgcap.c:828:4: warning: Value stored to 'ctrl' is never read [clang-analyzer-deadcode.DeadStores]
                           ctrl = readl(&dbc->regs->control);
                           ^
   drivers/usb/host/xhci-dbgcap.c:828:4: note: Value stored to '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.
   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.
   include/uapi/linux/phonet.h:176:9: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           return pn_object(spn->spn_dev, spn->spn_obj);
                  ^
   net/phonet/pep.c:776:6: note: Assuming 'skb' is non-null
           if (!skb)
               ^~~~
   net/phonet/pep.c:776:2: note: Taking false branch
           if (!skb)
           ^
   net/phonet/pep.c:780:6: note: Assuming field 'skc_state' is equal to TCP_LISTEN
           if (sk->sk_state != TCP_LISTEN) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/phonet/pep.c:780:2: note: Taking false branch

vim +/dep +687 drivers/usb/dwc3/gadget.c

   668	
   669	/**
   670	 * dwc3_gadget_clear_tx_fifo_size - Clears txfifo allocation
   671	 * @dwc: pointer to the DWC3 context
   672	 *
   673	 * Iterates through all the endpoint registers and clears the previous txfifo
   674	 * allocations.
   675	 */
   676	void dwc3_gadget_clear_tx_fifos(struct dwc3 *dwc)
   677	{
   678		struct dwc3_ep *dep;
   679		int fifo_depth;
   680		int size;
   681		int num;
   682	
   683		if (!dwc->do_fifo_resize)
   684			return;
   685	
   686		/* Read ep0IN related TXFIFO size */
 > 687		dep = dwc->eps[1];
   688		size = dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(0));
   689		if (DWC3_IP_IS(DWC3))
   690			fifo_depth = DWC3_GTXFIFOSIZ_TXFDEP(size);
   691		else
   692			fifo_depth = DWC31_GTXFIFOSIZ_TXFDEP(size);
   693	
   694		dwc->last_fifo_depth = fifo_depth;
   695		/* Clear existing TXFIFO for all IN eps except ep0 */
   696		for (num = 3; num < min_t(int, dwc->num_eps, DWC3_ENDPOINTS_NUM);
   697		     num += 2) {
   698			dep = dwc->eps[num];
   699			/* Don't change TXFRAMNUM on usb31 version */
   700			size = DWC3_IP_IS(DWC3) ? 0 :
   701				dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(num >> 1)) &
   702					   DWC31_GTXFIFOSIZ_TXFRAMNUM;
   703	
   704			dwc3_writel(dwc->regs, DWC3_GTXFIFOSIZ(num >> 1), size);
   705		}
   706		dwc->num_ep_resized = 0;
   707	}
   708	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux