All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <rong.a.chen@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH net-next] devlink: Simplify devlink port API calls
Date: Mon, 09 Aug 2021 18:54:53 +0800	[thread overview]
Message-ID: <2f9dce2e-0310-e9e4-d1ae-ea006d8dc655@intel.com> (raw)
In-Reply-To: <202108091605.Aco665JX-lkp@intel.com>

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

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 --]

[-- Attachment #3: AttachedMessagePart.ksh --]
[-- Type: text/plain, Size: 150 bytes --]

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-leave@lists.01.org


  reply	other threads:[~2021-08-09 10:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09  8:21 [PATCH net-next] devlink: Simplify devlink port API calls kernel test robot
2021-08-09 10:54 ` kernel test robot [this message]
  -- 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=2f9dce2e-0310-e9e4-d1ae-ea006d8dc655@intel.com \
    --to=rong.a.chen@intel.com \
    --cc=kbuild-all@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.