tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: d97c3e7785e0bbc76a30f4d8953cf278a7b25886
commit: 7bc0ce12818fb941334ac54afe37de4e6787a57e [36/38] net_sched: fix RTNL deadlock
again caused by request_module()
config: s390-randconfig-r022-20210411 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.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/sashal/linux-stable.git/c...
git remote add sashal-linux-stable
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout 7bc0ce12818fb941334ac54afe37de4e6787a57e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
net/sched/act_api.c: In function 'tcf_action_init_1':
> net/sched/act_api.c:914:16: error: 'TCA_ACT_HW_STATS_ANY'
undeclared (first use in this function); did you mean 'TCA_ACT_STATS'?
914 | u8 hw_stats = TCA_ACT_HW_STATS_ANY;
| ^~~~~~~~~~~~~~~~~~~~
| TCA_ACT_STATS
net/sched/act_api.c:914:16: note: each undeclared identifier is reported only once for
each function it appears in
> net/sched/act_api.c:934:14: error: implicit declaration of
function 'tcf_action_hw_stats_get' [-Werror=implicit-function-declaration]
934 | hw_stats = tcf_action_hw_stats_get(tb[TCA_ACT_HW_STATS]);
| ^~~~~~~~~~~~~~~~~~~~~~~
> net/sched/act_api.c:934:41: error: 'TCA_ACT_HW_STATS'
undeclared (first use in this function); did you mean 'TCA_ACT_STATS'?
934 | hw_stats = tcf_action_hw_stats_get(tb[TCA_ACT_HW_STATS]);
| ^~~~~~~~~~~~~~~~
| TCA_ACT_STATS
> net/sched/act_api.c:935:10: error: 'TCA_ACT_FLAGS'
undeclared (first use in this function); did you mean 'TCA_ROOT_FLAGS'?
935 | if (tb[TCA_ACT_FLAGS])
| ^~~~~~~~~~~~~
| TCA_ROOT_FLAGS
> net/sched/act_api.c:914:5: warning: variable 'hw_stats'
set but not used [-Wunused-but-set-variable]
914 | u8 hw_stats =
TCA_ACT_HW_STATS_ANY;
| ^~~~~~~~
> net/sched/act_api.c:913:24: warning: variable 'flags' set
but not used [-Wunused-but-set-variable]
913 | struct nla_bitfield32 flags = {
0, 0 };
| ^~~~~
cc1: some warnings being treated as errors
vim +914 net/sched/act_api.c
906
907 struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp,
908 struct nlattr *nla, struct nlattr *est,
909 char *name, int ovr, int bind,
910 struct tc_action_ops *a_o, bool rtnl_held,
911 struct netlink_ext_ack *extack)
912 {
913 struct nla_bitfield32 flags = { 0, 0 };
914 u8 hw_stats = TCA_ACT_HW_STATS_ANY;
915 struct nlattr *tb[TCA_ACT_MAX +
1];
916 struct tc_cookie *cookie = NULL;
917 struct tc_action *a;
918 int err;
919
920 /* backward compatibility for policer */
921 if (name == NULL) {
922 err = nla_parse_nested_deprecated(tb, TCA_ACT_MAX, nla,
923 tcf_action_policy, extack);
924 if (err < 0)
925 return ERR_PTR(err);
926 if (tb[TCA_ACT_COOKIE]) {
927 cookie = nla_memdup_cookie(tb);
928 if (!cookie) {
929 NL_SET_ERR_MSG(extack, "No memory to generate TC cookie");
930 err = -ENOMEM;
931 goto err_out;
932 }
933 }
934 hw_stats = tcf_action_hw_stats_get(tb[TCA_ACT_HW_STATS]);
935 if (tb[TCA_ACT_FLAGS])
936 flags =
nla_get_bitfield32(tb[TCA_ACT_FLAGS]);
937
938 err = a_o->init(net, tb[TCA_ACT_OPTIONS], est, &a, ovr, bind,
939 rtnl_held, tp, extack);
940 } else {
941 err = a_o->init(net, nla, est, &a, ovr, bind, rtnl_held,
942 tp, extack);
943 }
944 if (err < 0)
945 goto err_out;
946
947 if (!name && tb[TCA_ACT_COOKIE])
948 tcf_set_action_cookie(&a->act_cookie, cookie);
949
950 /* module count goes up only when brand new policy is created
951 * if it exists and is only bound to in a_o->init() then
952 * ACT_P_CREATED is not returned (a zero is).
953 */
954 if (err != ACT_P_CREATED)
955 module_put(a_o->owner);
956
957 return a;
958
959 err_out:
960 if (cookie) {
961 kfree(cookie->data);
962 kfree(cookie);
963 }
964 return ERR_PTR(err);
965 }
966
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org