Hi Michal,
url:
https://github.com/intel-lab-lkp/linux/commits/Michal-Wilczynski/Implemen...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
8a26a9dee5e3679637edc6f8caf4beb5f3100dde
config: mips-randconfig-m031-20220918
(
https://download.01.org/0day-ci/archive/20220919/202209191557.PkFshuDN-lk...)
compiler: mips64el-linux-gcc (GCC) 12.1.0
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
net/core/devlink.c:2039 devlink_nl_rate_set() error: uninitialized symbol 'rate'.
net/core/devlink.c:10399 devl_rate_node_create() warn: possible memory leak of
'rate_node'
net/core/devlink.c:10446 devl_rate_vport_create() warn: possible memory leak of
'devlink_rate'
vim +/rate +2039 net/core/devlink.c
1897db2ec3109e Dmytro Linkin 2021-06-02 1984 static int devlink_nl_rate_set(struct
devlink_rate *devlink_rate,
1897db2ec3109e Dmytro Linkin 2021-06-02 1985 const struct devlink_ops
*ops,
1897db2ec3109e Dmytro Linkin 2021-06-02 1986 struct genl_info *info)
1897db2ec3109e Dmytro Linkin 2021-06-02 1987 {
d7555984507822 Dmytro Linkin 2021-06-02 1988 struct nlattr *nla_parent, **attrs =
info->attrs;
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 1989 int err = -EOPNOTSUPP;
3400deb7c35335 Michal Wilczynski 2022-09-15 1990 u16 priority;
3400deb7c35335 Michal Wilczynski 2022-09-15 1991 u16 weight;
1897db2ec3109e Dmytro Linkin 2021-06-02 1992 u64 rate;
1897db2ec3109e Dmytro Linkin 2021-06-02 1993
1897db2ec3109e Dmytro Linkin 2021-06-02 1994 if (attrs[DEVLINK_ATTR_RATE_TX_SHARE])
{
1897db2ec3109e Dmytro Linkin 2021-06-02 1995 rate =
nla_get_u64(attrs[DEVLINK_ATTR_RATE_TX_SHARE]);
3400deb7c35335 Michal Wilczynski 2022-09-15 1996 if
(devlink_rate_is_vport(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 1997 err =
ops->rate_vport_tx_share_set(devlink_rate, devlink_rate->priv,
1897db2ec3109e Dmytro Linkin 2021-06-02 1998 rate, info->extack);
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 1999 else if
(devlink_rate_is_node(devlink_rate))
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 2000 err =
ops->rate_node_tx_share_set(devlink_rate, devlink_rate->priv,
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 2001 rate, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2002 else if
(devlink_rate_is_queue(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2003 err =
ops->rate_queue_tx_share_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2004 rate, info->extack);
1897db2ec3109e Dmytro Linkin 2021-06-02 2005 if (err)
1897db2ec3109e Dmytro Linkin 2021-06-02 2006 return err;
1897db2ec3109e Dmytro Linkin 2021-06-02 2007 devlink_rate->tx_share = rate;
1897db2ec3109e Dmytro Linkin 2021-06-02 2008 }
1897db2ec3109e Dmytro Linkin 2021-06-02 2009
1897db2ec3109e Dmytro Linkin 2021-06-02 2010 if (attrs[DEVLINK_ATTR_RATE_TX_MAX])
{
1897db2ec3109e Dmytro Linkin 2021-06-02 2011 rate =
nla_get_u64(attrs[DEVLINK_ATTR_RATE_TX_MAX]);
3400deb7c35335 Michal Wilczynski 2022-09-15 2012 if
(devlink_rate_is_vport(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2013 err =
ops->rate_vport_tx_max_set(devlink_rate, devlink_rate->priv,
1897db2ec3109e Dmytro Linkin 2021-06-02 2014 rate, info->extack);
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 2015 else if
(devlink_rate_is_node(devlink_rate))
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 2016 err =
ops->rate_node_tx_max_set(devlink_rate, devlink_rate->priv,
a8ecb93ef03de4 Dmytro Linkin 2021-06-02 2017 rate, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2018 else if
(devlink_rate_is_queue(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2019 err =
ops->rate_queue_tx_max_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2020 rate, info->extack);
1897db2ec3109e Dmytro Linkin 2021-06-02 2021 if (err)
1897db2ec3109e Dmytro Linkin 2021-06-02 2022 return err;
1897db2ec3109e Dmytro Linkin 2021-06-02 2023 devlink_rate->tx_max = rate;
1897db2ec3109e Dmytro Linkin 2021-06-02 2024 }
1897db2ec3109e Dmytro Linkin 2021-06-02 2025
3400deb7c35335 Michal Wilczynski 2022-09-15 2026 if
(attrs[DEVLINK_ATTR_RATE_TX_PRIORITY]) {
3400deb7c35335 Michal Wilczynski 2022-09-15 2027 priority =
nla_get_u16(attrs[DEVLINK_ATTR_RATE_TX_PRIORITY]);
3400deb7c35335 Michal Wilczynski 2022-09-15 2028 if
(devlink_rate_is_vport(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2029 err =
ops->rate_vport_tx_priority_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2030 priority, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2031 else if
(devlink_rate_is_node(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2032 err =
ops->rate_node_tx_priority_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2033 priority, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2034 else if
(devlink_rate_is_queue(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2035 err =
ops->rate_queue_tx_priority_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2036 priority, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2037 if (err)
3400deb7c35335 Michal Wilczynski 2022-09-15 2038 return err;
3400deb7c35335 Michal Wilczynski 2022-09-15 @2039 devlink_rate->tx_priority = rate;
Copy and paste bug. s/rate/priority/
3400deb7c35335 Michal Wilczynski 2022-09-15 2040 }
3400deb7c35335 Michal Wilczynski 2022-09-15 2041
3400deb7c35335 Michal Wilczynski 2022-09-15 2042 if
(attrs[DEVLINK_ATTR_RATE_TX_WEIGHT]) {
3400deb7c35335 Michal Wilczynski 2022-09-15 2043 weight =
nla_get_u16(attrs[DEVLINK_ATTR_RATE_TX_WEIGHT]);
3400deb7c35335 Michal Wilczynski 2022-09-15 2044 if
(devlink_rate_is_vport(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2045 err =
ops->rate_vport_tx_weight_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2046 weight, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2047 else if
(devlink_rate_is_node(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2048 err =
ops->rate_node_tx_weight_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2049 weight, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2050 else if
(devlink_rate_is_queue(devlink_rate))
3400deb7c35335 Michal Wilczynski 2022-09-15 2051 err =
ops->rate_queue_tx_weight_set(devlink_rate, devlink_rate->priv,
3400deb7c35335 Michal Wilczynski 2022-09-15 2052 weight, info->extack);
3400deb7c35335 Michal Wilczynski 2022-09-15 2053 if (err)
3400deb7c35335 Michal Wilczynski 2022-09-15 2054 return err;
3400deb7c35335 Michal Wilczynski 2022-09-15 2055 devlink_rate->tx_weight = weight;
3400deb7c35335 Michal Wilczynski 2022-09-15 2056 }
3400deb7c35335 Michal Wilczynski 2022-09-15 2057
d7555984507822 Dmytro Linkin 2021-06-02 2058 nla_parent =
attrs[DEVLINK_ATTR_RATE_PARENT_NODE_NAME];
d7555984507822 Dmytro Linkin 2021-06-02 2059 if (nla_parent) {
d7555984507822 Dmytro Linkin 2021-06-02 2060 err =
devlink_nl_rate_parent_node_set(devlink_rate, info,
d7555984507822 Dmytro Linkin 2021-06-02 2061 nla_parent);
d7555984507822 Dmytro Linkin 2021-06-02 2062 if (err)
d7555984507822 Dmytro Linkin 2021-06-02 2063 return err;
d7555984507822 Dmytro Linkin 2021-06-02 2064 }
d7555984507822 Dmytro Linkin 2021-06-02 2065
1897db2ec3109e Dmytro Linkin 2021-06-02 2066 return 0;
1897db2ec3109e Dmytro Linkin 2021-06-02 2067 }
--
0-DAY CI Kernel Test Service
https://01.org/lkp