CC: kbuild-all(a)lists.01.org In-Reply-To: <1605076100-21782-4-git-send-email-wenxu@ucloud.cn> References: <1605076100-21782-4-git-send-email-wenxu@ucloud.cn> TO: wenxu(a)ucloud.cn TO: kuba(a)kernel.org TO: marcelo.leitner(a)gmail.com TO: vladbu(a)nvidia.com CC: netdev(a)vger.kernel.org Hi, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/0day-ci/linux/commits/wenxu-ucloud-cn/net-sched-fix-over-mtu-packet-of-defrag-in/20201111-143001 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 70408949a35f1a31c327c69b6a187635cb0305fa :::::: branch date: 3 hours ago :::::: commit date: 3 hours ago config: x86_64-randconfig-s021-20201111 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-106-gd020cf33-dirty # https://github.com/0day-ci/linux/commit/a551316818f8b3f9164d7a734538decca3762fda git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review wenxu-ucloud-cn/net-sched-fix-over-mtu-packet-of-defrag-in/20201111-143001 git checkout a551316818f8b3f9164d7a734538decca3762fda # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot "sparse warnings: (new ones prefixed by >>)" net/sched/act_api.c:30:5: sparse: sparse: symbol 'tcf_set_xmit_hook' redeclared with different type (incompatible argument 1 (different address spaces)): >> net/sched/act_api.c:30:5: sparse: int extern [addressable] [signed] [toplevel] tcf_set_xmit_hook( ... ) net/sched/act_api.c: note: in included file (through include/net/pkt_cls.h): include/net/act_api.h:244:5: sparse: note: previously declared as: >> include/net/act_api.h:244:5: sparse: int extern [addressable] [signed] [toplevel] tcf_set_xmit_hook( ... ) >> net/sched/act_api.c:64:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int ( [noderef] __rcu *xmit_hook )( ... ) @@ got int ( [noderef] * )( ... ) @@ >> net/sched/act_api.c:64:19: sparse: expected int ( [noderef] __rcu *xmit_hook )( ... ) net/sched/act_api.c:64:19: sparse: got int ( [noderef] * )( ... ) vim +30 net/sched/act_api.c a551316818f8b3f wenxu 2020-11-11 29 a551316818f8b3f wenxu 2020-11-11 @30 int tcf_set_xmit_hook(int (__rcu *xmit_hook)(struct sk_buff *skb, a551316818f8b3f wenxu 2020-11-11 31 int (*xmit)(struct sk_buff *skb))) a551316818f8b3f wenxu 2020-11-11 32 { a551316818f8b3f wenxu 2020-11-11 33 spin_lock(&tcf_xmit_hook_lock); a551316818f8b3f wenxu 2020-11-11 34 if (!tcf_xmit_hook_count) { a551316818f8b3f wenxu 2020-11-11 35 rcu_assign_pointer(tcf_xmit_hook, xmit_hook); a551316818f8b3f wenxu 2020-11-11 36 } else if (xmit_hook != tcf_xmit_hook) { a551316818f8b3f wenxu 2020-11-11 37 spin_unlock(&tcf_xmit_hook_lock); a551316818f8b3f wenxu 2020-11-11 38 return -EBUSY; a551316818f8b3f wenxu 2020-11-11 39 } a551316818f8b3f wenxu 2020-11-11 40 a551316818f8b3f wenxu 2020-11-11 41 tcf_xmit_hook_count++; a551316818f8b3f wenxu 2020-11-11 42 spin_unlock(&tcf_xmit_hook_lock); a551316818f8b3f wenxu 2020-11-11 43 a551316818f8b3f wenxu 2020-11-11 44 return 0; a551316818f8b3f wenxu 2020-11-11 45 } a551316818f8b3f wenxu 2020-11-11 46 EXPORT_SYMBOL_GPL(tcf_set_xmit_hook); a551316818f8b3f wenxu 2020-11-11 47 a551316818f8b3f wenxu 2020-11-11 48 void tcf_clear_xmit_hook(void) a551316818f8b3f wenxu 2020-11-11 49 { a551316818f8b3f wenxu 2020-11-11 50 spin_lock(&tcf_xmit_hook_lock); a551316818f8b3f wenxu 2020-11-11 51 if (--tcf_xmit_hook_count == 0) a551316818f8b3f wenxu 2020-11-11 52 rcu_assign_pointer(tcf_xmit_hook, NULL); a551316818f8b3f wenxu 2020-11-11 53 spin_unlock(&tcf_xmit_hook_lock); a551316818f8b3f wenxu 2020-11-11 54 a551316818f8b3f wenxu 2020-11-11 55 synchronize_rcu(); a551316818f8b3f wenxu 2020-11-11 56 } a551316818f8b3f wenxu 2020-11-11 57 EXPORT_SYMBOL_GPL(tcf_clear_xmit_hook); a551316818f8b3f wenxu 2020-11-11 58 a551316818f8b3f wenxu 2020-11-11 59 int tcf_dev_queue_xmit(struct sk_buff *skb, int (*xmit)(struct sk_buff *skb)) a551316818f8b3f wenxu 2020-11-11 60 { a551316818f8b3f wenxu 2020-11-11 61 int (__rcu *xmit_hook)(struct sk_buff *skb, a551316818f8b3f wenxu 2020-11-11 62 int (*xmit)(struct sk_buff *skb)); a551316818f8b3f wenxu 2020-11-11 63 a551316818f8b3f wenxu 2020-11-11 @64 xmit_hook = rcu_dereference(tcf_xmit_hook); a551316818f8b3f wenxu 2020-11-11 65 if (xmit_hook) a551316818f8b3f wenxu 2020-11-11 66 return xmit_hook(skb, xmit); a551316818f8b3f wenxu 2020-11-11 67 else a551316818f8b3f wenxu 2020-11-11 68 return xmit(skb); a551316818f8b3f wenxu 2020-11-11 69 } a551316818f8b3f wenxu 2020-11-11 70 EXPORT_SYMBOL_GPL(tcf_dev_queue_xmit); a551316818f8b3f wenxu 2020-11-11 71 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org