::::::
:::::: Manual check reason: "low confidence bisect report"
:::::: Manual check reason: "low confidence static check warning:
drivers/net/ethernet/mscc/ocelot.c:1796:12: warning: use of uninitialized value
'err' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]"
::::::
BCC: lkp(a)intel.com
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Colin Foster <colin.foster(a)in-advantage.com>
CC: Vladimir Oltean <vladimir.oltean(a)nxp.com>
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a335366bad1364a07f49df9da1fdfa6d411a5f39
commit: d87b1c08f38a2ce40cf559df36c107a2e6c16a8f net: mscc: ocelot: use bulk reads for
stats
date: 7 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 7 months ago
config: arm-randconfig-c002-20220915
(
https://download.01.org/0day-ci/archive/20220918/202209180242.FoPt7qcN-lk...)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
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/torvalds/linux.git/commit...
git remote add linus
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d87b1c08f38a2ce40cf559df36c107a2e6c16a8f
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross ARCH=arm
KBUILD_USERCFLAGS='-fanalyzer -Wno-error'
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp(a)intel.com>
gcc_analyzer warnings: (new ones prefixed by >>)
607 | unsigned int pause_ena;
| ^~~~~~~~~
'ocelot_port_flush': event 1
|
| 607 | unsigned int pause_ena;
| | ^~~~~~~~~
| | |
| | (1) use of uninitialized value
'<unknown>' here
|
drivers/net/ethernet/mscc/ocelot.c: In function 'ocelot_xtr_poll_frame':
drivers/net/ethernet/mscc/ocelot.c:1085:13: warning: use of uninitialized value
'<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1085 | u64 timestamp, src_port, len;
| ^~~~~~~~~
'ocelot_xtr_poll_frame': event 1
|
| 1085 | u64 timestamp, src_port, len;
| | ^~~~~~~~~
| | |
| | (1) use of uninitialized value '<unknown>' here
|
drivers/net/ethernet/mscc/ocelot.c:1085:24: warning: use of uninitialized value
'<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1085 | u64 timestamp, src_port, len;
| ^~~~~~~~
'ocelot_xtr_poll_frame': event 1
|
| 1085 | u64 timestamp, src_port, len;
| | ^~~~~~~~
| | |
| | (1) use of uninitialized value
'<unknown>' here
|
drivers/net/ethernet/mscc/ocelot.c:1085:34: warning: use of uninitialized value
'<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1085 | u64 timestamp, src_port, len;
| ^~~
'ocelot_xtr_poll_frame': event 1
|
| 1085 | u64 timestamp, src_port, len;
| | ^~~
| | |
| | (1) use of uninitialized value
'<unknown>' here
|
drivers/net/ethernet/mscc/ocelot.c:1090:13: warning: use of uninitialized value
'<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1090 | u32 val, *buf;
| ^~~
'ocelot_xtr_poll_frame': event 1
|
| 1090 | u32 val, *buf;
| | ^~~
| | |
| | (1) use of uninitialized value '<unknown>' here
|
drivers/net/ethernet/mscc/ocelot.c: In function 'ocelot_fdb_dump':
drivers/net/ethernet/mscc/ocelot.c:1410:43: warning: use of uninitialized value
'entry.type' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1410 | is_static = (entry.type == ENTRYTYPE_LOCKED);
| ~~~~~^~~~~
'ocelot_fdb_dump': events 1-2
|
| 1396 | for (i = 0; i < ocelot->num_mact_rows; i++) {
| | ~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (2) following 'true' branch...
| 1397 | for (j = 0; j < 4; j++) {
| 1398 | struct ocelot_mact_entry entry;
| | ^~~~~
| | |
| | (1) region created on
stack here
|
'ocelot_fdb_dump': event 3
|
|cc1:
| (3): ...to here
|
'ocelot_fdb_dump': events 4-10
|
| 1397 | for (j = 0; j < 4; j++) {
| | ~~^~~
| | |
| | (4) following 'true' branch (when
'j != 4')...
| 1398 | struct ocelot_mact_entry entry;
| | ~~~~~
| | |
| | (5) ...to here
|......
| 1405 | if (err == -EINVAL)
| | ~
| | |
| | (6) following 'false' branch (when
'err != -22')...
| 1406 | continue;
| 1407 | else if (err)
| | ~
| | |
| | (7) ...to here
| | (8) following 'false' branch (when
'err == 0')...
|......
| 1410 | is_static = (entry.type == ENTRYTYPE_LOCKED);
| | ~~~~~~~~~~
| | |
| | (9) ...to here
| | (10) use of uninitialized value
'entry.type' here
|
drivers/net/ethernet/mscc/ocelot.c: In function 'ocelot_check_stats_work':
> drivers/net/ethernet/mscc/ocelot.c:1796:12: warning: use of
uninitialized value 'err' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1796 | if (err)
| ^
'ocelot_check_stats_work': events 1-4
|
| 1786 | int i, err;
| | ^~~
| | |
| | (1) region created on stack here
|......
| 1789 | for (i = 0; i < ocelot->num_phys_ports; i++) {
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (2) following 'false' branch...
|......
| 1794 | mutex_unlock(&ocelot->stats_lock);
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (3) ...to here
| 1795 |
| 1796 | if (err)
| | ~
| | |
| | (4) use of uninitialized value 'err' here
|
In file included from include/linux/device.h:15,
from include/linux/dma-mapping.h:7,
from include/linux/skbuff.h:31,
from include/linux/dsa/ocelot.h:10:
> include/linux/dev_printk.h:144:31: warning: use of uninitialized
value 'err' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
144 |
dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^
include/linux/dev_printk.h:110:17: note: in definition of macro
'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~
drivers/net/ethernet/mscc/ocelot.c:1797:17: note: in expansion of macro
'dev_err'
1797 | dev_err(ocelot->dev, "Error %d updating ethtool
stats\n", err);
| ^~~~~~~
'ocelot_check_stats_work': events 1-4
|
| 1786 | int i, err;
| | ^~~
| | |
| | (1) region created on stack here
|......
| 1789 | for (i = 0; i < ocelot->num_phys_ports; i++) {
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (2) following 'false' branch...
|......
| 1794 | mutex_unlock(&ocelot->stats_lock);
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (3) ...to here
| 1795 |
| 1796 | if (err)
| | ~
| | |
| | (4) following 'true' branch (when 'err !=
0')...
|
'ocelot_check_stats_work': event 5
|
| 1797 | dev_err(ocelot->dev, "Error %d updating ethtool
stats\n", err);
| | ~~~~~~^~~~~
| | |
| | (5) ...to here
include/linux/dev_printk.h:110:25: note: in definition of macro
'dev_printk_index_wrap'
| 110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| | ^~~
drivers/net/ethernet/mscc/ocelot.c:1797:17: note: in expansion of macro
'dev_err'
| 1797 | dev_err(ocelot->dev, "Error %d updating ethtool
stats\n", err);
| | ^~~~~~~
|
'ocelot_check_stats_work': event 6
|
|include/linux/dev_printk.h:144:31:
| 144 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt),
##__VA_ARGS__)
| | ^
| | |
| | (6) use of uninitialized value 'err'
here
include/linux/dev_printk.h:110:17: note: in definition of macro
'dev_printk_index_wrap'
| 110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| | ^~~~~~~
drivers/net/ethernet/mscc/ocelot.c:1797:17: note: in expansion of macro
'dev_err'
| 1797 | dev_err(ocelot->dev, "Error %d updating ethtool
stats\n", err);
| | ^~~~~~~
|
drivers/net/ethernet/mscc/ocelot.c: In function 'ocelot_set_aggr_pgids':
drivers/net/ethernet/mscc/ocelot.c:2341:31: warning: use of uninitialized value
'<unknown>' [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
2341 | unsigned long bond_mask;
| ^~~~~~~~~
'ocelot_set_aggr_pgids': event 1
|
|include/soc/mscc/ocelot.h:83:21:
| 83 | (pgid) < PGID_SRC; \
| | ^
| | |
| | (1) following 'true' branch (when 'i !=
80')...
drivers/net/ethernet/mscc/ocelot.c:2316:9: note: in expansion of macro
'for_each_aggr_pgid'
| 2316 | for_each_aggr_pgid(ocelot, i)
| | ^~~~~~~~~~~~~~~~~~
|
'ocelot_set_aggr_pgids': event 2
|
| 2317 | ocelot_write_rix(ocelot, GENMASK(ocelot->num_phys_ports
- 1, 0),
| | ~~~~~~^~~~~~~~~~~~~~~~
| | |
| | (2) ...to here
include/soc/mscc/ocelot.h:770:35: note: in definition of macro
'ocelot_write_rix'
| 770 | __ocelot_write_ix(ocelot, val, reg, reg##_RSZ * (ri))
| | ^~~
include/linux/bits.h:38:38: note: in expansion of macro '__GENMASK'
| 38 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| | ^~~~~~~~~
drivers/net/ethernet/mscc/ocelot.c:2317:42: note: in expansion of macro
'GENMASK'
| 2317 | ocelot_write_rix(ocelot, GENMASK(ocelot->num_phys_ports
- 1, 0),
| | ^~~~~~~
|
'ocelot_set_aggr_pgids': events 3-5
|
| 2338 | for (lag = 0; lag < ocelot->num_phys_ports; lag++) {
| | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | (3) following 'true' branch...
| 2339 | struct net_device *bond = ocelot->ports[lag]->bond;
| | ~~~~~~~~~~~~~
| | |
| | (4) ...to here
| 2340 | int num_active_ports = 0;
| 2341 | unsigned long bond_mask;
vim +/err +1796 drivers/net/ethernet/mscc/ocelot.c
1e1caa9735f90b Claudiu Manoil 2019-04-16 1780
1e1caa9735f90b Claudiu Manoil 2019-04-16 1781 static void
ocelot_check_stats_work(struct work_struct *work)
1e1caa9735f90b Claudiu Manoil 2019-04-16 1782 {
1e1caa9735f90b Claudiu Manoil 2019-04-16 1783 struct delayed_work *del_work =
to_delayed_work(work);
1e1caa9735f90b Claudiu Manoil 2019-04-16 1784 struct ocelot *ocelot =
container_of(del_work, struct ocelot,
1e1caa9735f90b Claudiu Manoil 2019-04-16 1785 stats_work);
d87b1c08f38a2c Colin Foster 2022-02-13 1786 int i, err;
1e1caa9735f90b Claudiu Manoil 2019-04-16 1787
7fbf6795d127a3 Colin Foster 2022-02-10 1788
mutex_lock(&ocelot->stats_lock);
d87b1c08f38a2c Colin Foster 2022-02-13 1789 for (i = 0; i <
ocelot->num_phys_ports; i++) {
d87b1c08f38a2c Colin Foster 2022-02-13 1790 err =
ocelot_port_update_stats(ocelot, i);
d87b1c08f38a2c Colin Foster 2022-02-13 1791 if (err)
d87b1c08f38a2c Colin Foster 2022-02-13 1792 break;
d87b1c08f38a2c Colin Foster 2022-02-13 1793 }
7fbf6795d127a3 Colin Foster 2022-02-10 1794
mutex_unlock(&ocelot->stats_lock);
1e1caa9735f90b Claudiu Manoil 2019-04-16 1795
d87b1c08f38a2c Colin Foster 2022-02-13 @1796 if (err)
d87b1c08f38a2c Colin Foster 2022-02-13 1797 dev_err(ocelot->dev, "Error
%d updating ethtool stats\n", err);
d87b1c08f38a2c Colin Foster 2022-02-13 1798
a556c76adc052c Alexandre Belloni 2018-05-14 1799
queue_delayed_work(ocelot->stats_queue, &ocelot->stats_work,
a556c76adc052c Alexandre Belloni 2018-05-14 1800 OCELOT_STATS_CHECK_DELAY);
a556c76adc052c Alexandre Belloni 2018-05-14 1801 }
a556c76adc052c Alexandre Belloni 2018-05-14 1802
--
0-DAY CI Kernel Test Service
https://01.org/lkp