tree: https://github.com/cilium/linux.git pr/bpf-tc-links5 head: 7c3ffc4a0548d3177f68bc87af7c9775e5bcdb86 commit: d23123fce93d005f0c30e114da971359b0883cee [1/10] bpf: Add initial fd-based API to attach tc BPF programs config: x86_64-randconfig-s021 compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/cilium/linux/commit/d23123fce93d005f0c30e114da971359b0883cee git remote add cilium https://github.com/cilium/linux.git git fetch --no-tags cilium pr/bpf-tc-links5 git checkout d23123fce93d005f0c30e114da971359b0883cee # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash net/core/ net/sched/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) net/core/dev.c:3325:23: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted __wsum [usertype] csum @@ got unsigned int @@ net/core/dev.c:3325:23: sparse: expected restricted __wsum [usertype] csum net/core/dev.c:3325:23: sparse: got unsigned int net/core/dev.c:3325:23: sparse: sparse: cast from restricted __wsum >> net/core/dev.c:3963:36: sparse: sparse: incompatible types in comparison expression (different address spaces): >> net/core/dev.c:3963:36: sparse: struct mini_Qdisc [noderef] __rcu * >> net/core/dev.c:3963:36: sparse: struct mini_Qdisc * net/core/dev.c:204:9: sparse: sparse: context imbalance in 'unlist_netdevice' - different lock contexts for basic block net/core/dev.c:3829:17: sparse: sparse: context imbalance in '__dev_queue_xmit' - different lock contexts for basic block net/core/dev.c:5185:17: sparse: sparse: context imbalance in 'net_tx_action' - different lock contexts for basic block -- >> net/sched/sch_ingress.c:92:53: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected struct mini_Qdisc [noderef] __rcu **p_miniq @@ got struct mini_Qdisc ** @@ net/sched/sch_ingress.c:92:53: sparse: expected struct mini_Qdisc [noderef] __rcu **p_miniq net/sched/sch_ingress.c:92:53: sparse: got struct mini_Qdisc ** net/sched/sch_ingress.c:245:61: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected struct mini_Qdisc [noderef] __rcu **p_miniq @@ got struct mini_Qdisc ** @@ net/sched/sch_ingress.c:245:61: sparse: expected struct mini_Qdisc [noderef] __rcu **p_miniq net/sched/sch_ingress.c:245:61: sparse: got struct mini_Qdisc ** net/sched/sch_ingress.c:264:60: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected struct mini_Qdisc [noderef] __rcu **p_miniq @@ got struct mini_Qdisc ** @@ net/sched/sch_ingress.c:264:60: sparse: expected struct mini_Qdisc [noderef] __rcu **p_miniq net/sched/sch_ingress.c:264:60: sparse: got struct mini_Qdisc ** vim +3963 net/core/dev.c 3957 3958 #ifdef CONFIG_NET_XGRESS 3959 static int tc_run(struct xtc_entry *entry, struct sk_buff *skb) 3960 { 3961 int ret = TC_ACT_UNSPEC; 3962 #ifdef CONFIG_NET_CLS_ACT > 3963 struct mini_Qdisc *miniq = rcu_dereference_bh(entry->parent->miniq); 3964 struct tcf_result res; 3965 3966 if (!miniq) 3967 return ret; 3968 3969 tc_skb_cb(skb)->mru = 0; 3970 tc_skb_cb(skb)->post_ct = false; 3971 3972 mini_qdisc_bstats_cpu_update(miniq, skb); 3973 ret = tcf_classify(skb, miniq->block, miniq->filter_list, &res, false); 3974 /* Only tcf related quirks below. */ 3975 switch (ret) { 3976 case TC_ACT_SHOT: 3977 mini_qdisc_qstats_cpu_drop(miniq); 3978 break; 3979 case TC_ACT_OK: 3980 case TC_ACT_RECLASSIFY: 3981 skb->tc_index = TC_H_MIN(res.classid); 3982 break; 3983 } 3984 #endif /* CONFIG_NET_CLS_ACT */ 3985 return ret; 3986 } 3987 -- 0-DAY CI Kernel Test Service https://01.org/lkp