All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH net-next] devlink: Simplify devlink port API calls
Date: Mon, 09 Aug 2021 16:21:50 +0800	[thread overview]
Message-ID: <202108091605.Aco665JX-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 15698 bytes --]

CC: clang-built-linux(a)googlegroups.com
CC: kbuild-all(a)lists.01.org
In-Reply-To: <c9f15f122181f05f09fffd2380365b9925dd6427.1628422645.git.leonro@nvidia.com>
References: <c9f15f122181f05f09fffd2380365b9925dd6427.1628422645.git.leonro@nvidia.com>
TO: Leon Romanovsky <leon@kernel.org>

Hi Leon,

I love your patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Leon-Romanovsky/devlink-Simplify-devlink-port-API-calls/20210808-194343
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git f9be84db09d2e8930319503683305781378a7dbf
:::::: branch date: 21 hours ago
:::::: commit date: 21 hours ago
config: x86_64-randconfig-c001-20210808 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 41a6b50c25961addc04438b567ee1f4ef9e40f98)
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/0day-ci/linux/commit/30335171ca292d93926e3606fde0a3e76cf792a0
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Leon-Romanovsky/devlink-Simplify-devlink-port-API-calls/20210808-194343
        git checkout 30335171ca292d93926e3606fde0a3e76cf792a0
        # 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@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   fs/fuse/dev.c:1677:14: note: '?' condition is false
           num_pages = min(num_pages, fc->max_pages);
                       ^
   include/linux/minmax.h:45:19: note: expanded from macro 'min'
   #define min(x, y)       __careful_cmp(x, y, <)
                           ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   fs/fuse/dev.c:1681:7: note: Calling 'kzalloc'
           ra = kzalloc(args_size, GFP_KERNEL);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:721:9: note: Uninitialized value stored to field 'num_pages'
           return kmalloc(size, flags | __GFP_ZERO);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:721:2: note: Returning pointer, which participates in a condition later
           return kmalloc(size, flags | __GFP_ZERO);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/fuse/dev.c:1681:7: note: Returning from 'kzalloc'
           ra = kzalloc(args_size, GFP_KERNEL);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/fuse/dev.c:1682:6: note: Assuming 'ra' is non-null
           if (!ra)
               ^~~
   fs/fuse/dev.c:1682:2: note: Taking false branch
           if (!ra)
           ^
   fs/fuse/dev.c:1698:9: note: Assuming 'num' is not equal to 0
           while (num && ap->num_pages < num_pages) {
                  ^~~
   fs/fuse/dev.c:1698:9: note: Left side of '&&' is true
   fs/fuse/dev.c:1698:30: note: The left operand of '<' is a garbage value
           while (num && ap->num_pages < num_pages) {
                         ~~~~~~~~~~~~~ ^
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   11 warnings generated.
   net/core/net-sysfs.c:1719:2: warning: Value stored to 'txq' is never read [clang-analyzer-deadcode.DeadStores]
           txq = real_tx;
           ^     ~~~~~~~
   net/core/net-sysfs.c:1719:2: note: Value stored to 'txq' is never read
           txq = real_tx;
           ^     ~~~~~~~
   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.
   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.
   60 warnings generated.
   Suppressed 60 warnings (58 in non-user code, 2 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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   70 warnings generated.
>> net/core/devlink.c:1283:8: warning: Called function pointer is null (null dereference) [clang-analyzer-core.CallAndMessage]
           err = devlink_port->devlink->ops->port_type_set(devlink_port,
                 ^
   net/core/devlink.c:1383:6: note: Assuming the condition is true
           if (info->attrs[DEVLINK_ATTR_PORT_TYPE]) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:1383:2: note: Taking true branch
           if (info->attrs[DEVLINK_ATTR_PORT_TYPE]) {
           ^
   net/core/devlink.c:1387:9: note: Calling 'devlink_port_type_set'
                   err = devlink_port_type_set(devlink_port, port_type);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:1277:6: note: Assuming field 'port_type_set' is null
           if (devlink_port->devlink->ops->port_type_set)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:1277:2: note: Taking false branch
           if (devlink_port->devlink->ops->port_type_set)
           ^
   net/core/devlink.c:1280:6: note: Assuming 'port_type' is not equal to field 'type'
           if (port_type == devlink_port->type)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:1280:2: note: Taking false branch
           if (port_type == devlink_port->type)
           ^
   net/core/devlink.c:1283:8: note: Called function pointer is null (null dereference)
           err = devlink_port->devlink->ops->port_type_set(devlink_port,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:4316:15: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
                   if (!strcmp(param_item->param->name, param_name))
                               ^
   net/core/devlink.c:9956:9: note: Calling '__devlink_params_unregister'
           return __devlink_params_unregister(devlink_port->devlink,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:9838:14: note: Assuming 'i' is < 'params_count'
           for (i = 0; i < params_count; i++, param++)
                       ^~~~~~~~~~~~~~~~
   net/core/devlink.c:9838:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < params_count; i++, param++)
           ^
   net/core/devlink.c:9839:3: note: Calling 'devlink_param_unregister_one'
                   devlink_param_unregister_one(devlink, 0, param_list, param,
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:4805:11: note: 'param_item' is non-null
           WARN_ON(!param_item);
                    ^
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   net/core/devlink.c:4805:2: note: Taking false branch
           WARN_ON(!param_item);
           ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   net/core/devlink.c:4808:2: note: Memory is released
           kfree(param_item);
           ^~~~~~~~~~~~~~~~~
   net/core/devlink.c:9839:3: note: Returning; memory was released
                   devlink_param_unregister_one(devlink, 0, param_list, param,
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:9838:14: note: Assuming 'i' is < 'params_count'
           for (i = 0; i < params_count; i++, param++)
                       ^~~~~~~~~~~~~~~~
   net/core/devlink.c:9838:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < params_count; i++, param++)
           ^
   net/core/devlink.c:9839:3: note: Calling 'devlink_param_unregister_one'
                   devlink_param_unregister_one(devlink, 0, param_list, param,
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:4804:15: note: Calling 'devlink_param_find_by_name'
           param_item = devlink_param_find_by_name(param_list, param->name);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/core/devlink.c:4315:2: note: Left side of '&&' is false
           list_for_each_entry(param_item, param_list, list)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   net/core/devlink.c:4315:2: note: Taking false branch
           list_for_each_entry(param_item, param_list, list)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'

vim +1283 net/core/devlink.c

bfcd3a46617209 Jiri Pirko      2016-02-26  1270  
30335171ca292d Leon Romanovsky 2021-08-08  1271  static int devlink_port_type_set(struct devlink_port *devlink_port,
bfcd3a46617209 Jiri Pirko      2016-02-26  1272  				 enum devlink_port_type port_type)
bfcd3a46617209 Jiri Pirko      2016-02-26  1273  
bfcd3a46617209 Jiri Pirko      2016-02-26  1274  {
bfcd3a46617209 Jiri Pirko      2016-02-26  1275  	int err;
bfcd3a46617209 Jiri Pirko      2016-02-26  1276  
30335171ca292d Leon Romanovsky 2021-08-08  1277  	if (devlink_port->devlink->ops->port_type_set)
30335171ca292d Leon Romanovsky 2021-08-08  1278  		return -EOPNOTSUPP;
30335171ca292d Leon Romanovsky 2021-08-08  1279  
6edf10173a1feb Elad Raz        2016-10-23  1280  	if (port_type == devlink_port->type)
6edf10173a1feb Elad Raz        2016-10-23  1281  		return 0;
30335171ca292d Leon Romanovsky 2021-08-08  1282  
30335171ca292d Leon Romanovsky 2021-08-08 @1283  	err = devlink_port->devlink->ops->port_type_set(devlink_port,
30335171ca292d Leon Romanovsky 2021-08-08  1284  							port_type);
bfcd3a46617209 Jiri Pirko      2016-02-26  1285  	if (err)
bfcd3a46617209 Jiri Pirko      2016-02-26  1286  		return err;
30335171ca292d Leon Romanovsky 2021-08-08  1287  
bfcd3a46617209 Jiri Pirko      2016-02-26  1288  	devlink_port->desired_type = port_type;
bfcd3a46617209 Jiri Pirko      2016-02-26  1289  	devlink_port_notify(devlink_port, DEVLINK_CMD_PORT_NEW);
bfcd3a46617209 Jiri Pirko      2016-02-26  1290  	return 0;
bfcd3a46617209 Jiri Pirko      2016-02-26  1291  }
bfcd3a46617209 Jiri Pirko      2016-02-26  1292  

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37390 bytes --]

             reply	other threads:[~2021-08-09  8:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09  8:21 kernel test robot [this message]
2021-08-09 10:54 ` [PATCH net-next] devlink: Simplify devlink port API calls kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-08-08 11:41 Leon Romanovsky
2021-08-08 12:00 ` patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202108091605.Aco665JX-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.