CC: [email protected]
CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: AngeloGioacchino Del Regno <[email protected]>
CC: Sam Ravnborg <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   f81e94e91878bded599cc60f2881cfd50991aeb9
commit: a19125a281128c836faae249c1001eb8d7a18b48 [271/3632] drm/panel: Add BOE 
BF060Y8M-AJ0 5.99" AMOLED panel driver
:::::: branch date: 21 hours ago
:::::: commit date: 6 weeks ago
config: arm-randconfig-c002-20211119 
(https://download.01.org/0day-ci/archive/20211126/[email protected]/config)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a19125a281128c836faae249c1001eb8d7a18b48
        git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout a19125a281128c836faae249c1001eb8d7a18b48
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
   drivers/pinctrl/pinctrl-single.c:1830:6: note: 'ret' is 0
           if (ret) {
               ^~~
   drivers/pinctrl/pinctrl-single.c:1830:2: note: Taking false branch
           if (ret) {
           ^
   drivers/pinctrl/pinctrl-single.c:1837:6: note: Assuming 'res' is non-null
           if (!res) {
               ^~~~
   drivers/pinctrl/pinctrl-single.c:1837:2: note: Taking false branch
           if (!res) {
           ^
   drivers/pinctrl/pinctrl-single.c:1844:6: note: Assuming field 'res' is 
non-null
           if (!pcs->res) {
               ^~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:1844:2: note: Taking false branch
           if (!pcs->res) {
           ^
   drivers/pinctrl/pinctrl-single.c:1851:6: note: Assuming field 'base' is 
non-null
           if (!pcs->base) {
               ^~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:1851:2: note: Taking false branch
           if (!pcs->base) {
           ^
   drivers/pinctrl/pinctrl-single.c:1856:2: note: Calling 'platform_set_drvdata'
           platform_set_drvdata(pdev, pcs);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/platform_device.h:243:2: note: Calling 'dev_set_drvdata'
           dev_set_drvdata(&pdev->dev, data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/device.h:692:1: note: Returning without writing to 
'data->bits_per_mux', which participates in a condition later
   }
   ^
   include/linux/device.h:692:1: note: Returning without writing to 
'data->bits_per_pin'
   include/linux/platform_device.h:243:2: note: Returning from 'dev_set_drvdata'
           dev_set_drvdata(&pdev->dev, data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/platform_device.h:244:1: note: Returning without writing to 
'data->bits_per_mux', which participates in a condition later
   }
   ^
   include/linux/platform_device.h:244:1: note: Returning without writing to 
'data->bits_per_pin'
   drivers/pinctrl/pinctrl-single.c:1856:2: note: Returning from 
'platform_set_drvdata'
           platform_set_drvdata(pdev, pcs);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:1858:2: note: Control jumps to the 
'default' case at line 1871
           switch (pcs->width) {
           ^
   drivers/pinctrl/pinctrl-single.c:1872:3: note:  Execution continues on line 
1875
                   break;
                   ^
   drivers/pinctrl/pinctrl-single.c:1878:6: note: Assuming the condition is 
false
           if (PCS_HAS_PINCONF)
               ^
   drivers/pinctrl/pinctrl-single.c:212:27: note: expanded from macro 
'PCS_HAS_PINCONF'
   #define PCS_HAS_PINCONF         (pcs->flags & PCS_FEAT_PINCONF)
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:1878:2: note: Taking false branch
           if (PCS_HAS_PINCONF)
           ^
   drivers/pinctrl/pinctrl-single.c:1882:8: note: Calling 
'pcs_allocate_pin_table'
           ret = pcs_allocate_pin_table(pcs);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:730:11: note: Field 'bits_per_mux' is true
           if (pcs->bits_per_mux) {
                    ^
   drivers/pinctrl/pinctrl-single.c:730:2: note: Taking true branch
           if (pcs->bits_per_mux) {
           ^
   drivers/pinctrl/pinctrl-single.c:731:23: note: Calling 'fls'
                   pcs->bits_per_pin = fls(pcs->fmask);
                                       ^~~~~~~~~~~~~~~
   include/asm-generic/bitops/builtin-fls.h:14:9: note: Assuming 'x' is 0
           return x ? sizeof(x) * 8 - __builtin_clz(x) : 0;
                  ^
   include/asm-generic/bitops/builtin-fls.h:14:9: note: '?' condition is false
   include/asm-generic/bitops/builtin-fls.h:14:2: note: Returning zero
           return x ? sizeof(x) * 8 - __builtin_clz(x) : 0;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:731:23: note: Returning from 'fls'
                   pcs->bits_per_pin = fls(pcs->fmask);
                                       ^~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:731:3: note: The value 0 is assigned to 
field 'bits_per_pin'
                   pcs->bits_per_pin = fls(pcs->fmask);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:732:41: note: Division by zero
                   nr_pins = (pcs->size * BITS_PER_BYTE) / pcs->bits_per_pin;
                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:1417:3: warning: Value stored to 'mask' is 
never read [clang-analyzer-deadcode.DeadStores]
                   mask = pcs->read(pcswi->reg);
                   ^      ~~~~~~~~~~~~~~~~~~~~~
   drivers/pinctrl/pinctrl-single.c:1417:3: note: Value stored to 'mask' is 
never read
                   mask = pcs->read(pcswi->reg);
                   ^      ~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-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.
>> drivers/gpu/drm/panel/panel-boe-bf060y8m-aj0.c:205:2: warning: Value stored 
>> to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = regulator_bulk_disable(ARRAY_SIZE(boe->vregs), boe->vregs);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/panel/panel-boe-bf060y8m-aj0.c:205:2: note: Value stored to 
'ret' is never read
           ret = regulator_bulk_disable(ARRAY_SIZE(boe->vregs), boe->vregs);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-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.
   drivers/gpu/drm/panel/panel-elida-kd35t133.c:65:17: warning: Value stored to 
'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   drivers/gpu/drm/panel/panel-elida-kd35t133.c:65:17: note: Value stored to 
'dev' during its initialization is never read
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   include/linux/dcache.h:526:9: warning: Access to field 'd_inode' results in 
a dereference of a null pointer (loaded from variable 'dentry') 
[clang-analyzer-core.NullDereference]
           return dentry->d_inode;
                  ^
   fs/overlayfs/inode.c:1099:28: note: Assuming 'upperdentry' is null
           struct inode *realinode = upperdentry ? d_inode(upperdentry) : NULL;
                                     ^~~~~~~~~~~
   fs/overlayfs/inode.c:1099:28: note: '?' condition is false
   fs/overlayfs/inode.c:1101:31: note: Assuming 'lowerpath' is null
           struct dentry *lowerdentry = lowerpath ? lowerpath->dentry : NULL;
                                        ^~~~~~~~~
   fs/overlayfs/inode.c:1101:31: note: '?' condition is false
   fs/overlayfs/inode.c:1101:2: note: 'lowerdentry' initialized to a null 
pointer value
           struct dentry *lowerdentry = lowerpath ? lowerpath->dentry : NULL;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/overlayfs/inode.c:1104:13: note: 'bylower' is false
           int fsid = bylower ? lowerpath->layer->fsid : 0;
                      ^~~~~~~
   fs/overlayfs/inode.c:1104:13: note: '?' condition is false
   fs/overlayfs/inode.c:1107:12: note: Assuming field 'newinode' is null
           int err = oip->newinode ? -EEXIST : -ENOMEM;
                     ^~~~~~~~~~~~~
   fs/overlayfs/inode.c:1107:12: note: '?' condition is false
   fs/overlayfs/inode.c:1109:7: note: 'realinode' is null
           if (!realinode)
                ^~~~~~~~~
   fs/overlayfs/inode.c:1109:2: note: Taking true branch
           if (!realinode)
           ^
   fs/overlayfs/inode.c:1110:23: note: Passing null pointer value via 1st 
parameter 'dentry'
                   realinode = d_inode(lowerdentry);
                                       ^~~~~~~~~~~
   fs/overlayfs/inode.c:1110:15: note: Calling 'd_inode'
                   realinode = d_inode(lowerdentry);
                               ^~~~~~~~~~~~~~~~~~~~
   include/linux/dcache.h:526:9: note: Access to field 'd_inode' results in a 
dereference of a null pointer (loaded from variable 'dentry')
           return dentry->d_inode;
                  ^~~~~~
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   fs/overlayfs/export.c:498:17: warning: Value stored to 'ancestor' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct dentry *ancestor = ERR_PTR(-EIO);
                          ^~~~~~~~   ~~~~~~~~~~~~~
   fs/overlayfs/export.c:498:17: note: Value stored to 'ancestor' during its 
initialization is never read
           struct dentry *ancestor = ERR_PTR(-EIO);
                          ^~~~~~~~   ~~~~~~~~~~~~~
   include/linux/dcache.h:395:9: warning: Access to field 'd_flags' results in 
a dereference of a null pointer (loaded from variable 'dentry') 
[clang-analyzer-core.NullDereference]

vim +/ret +205 drivers/gpu/drm/panel/panel-boe-bf060y8m-aj0.c

a19125a281128c AngeloGioacchino Del Regno 2021-09-01  190  
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  191  static int 
boe_bf060y8m_aj0_unprepare(struct drm_panel *panel)
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  192  {
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  193       struct 
boe_bf060y8m_aj0 *boe = to_boe_bf060y8m_aj0(panel);
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  194       struct device 
*dev = &boe->dsi->dev;
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  195       int ret;
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  196  
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  197       if 
(!boe->prepared)
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  198               return 
0;
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  199  
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  200       ret = 
boe_bf060y8m_aj0_off(boe);
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  201       if (ret < 0)
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  202               
dev_err(dev, "Failed to un-initialize panel: %d\n", ret);
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  203  
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  204       
gpiod_set_value_cansleep(boe->reset_gpio, 1);
a19125a281128c AngeloGioacchino Del Regno 2021-09-01 @205       ret = 
regulator_bulk_disable(ARRAY_SIZE(boe->vregs), boe->vregs);
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  206  
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  207       boe->prepared = 
false;
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  208       return 0;
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  209  }
a19125a281128c AngeloGioacchino Del Regno 2021-09-01  210  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to