Hi Mathieu, Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on bpf-next/master] url: https://github.com/0day-ci/linux/commits/Mathieu-Xhonneux/ipv6-sr-introduce-seg6local-End-BPF-action/20180511-032546 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) net/core/filter.c:112:48: sparse: expression using sizeof(void) net/core/filter.c:112:48: sparse: expression using sizeof(void) net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:206:32: sparse: cast to restricted __be16 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:233:32: sparse: cast to restricted __be32 net/core/filter.c:406:33: sparse: subtraction of functions? Share your drugs net/core/filter.c:409:33: sparse: subtraction of functions? Share your drugs net/core/filter.c:412:33: sparse: subtraction of functions? Share your drugs net/core/filter.c:415:33: sparse: subtraction of functions? Share your drugs net/core/filter.c:418:33: sparse: subtraction of functions? Share your drugs net/core/filter.c:481:27: sparse: subtraction of functions? Share your drugs net/core/filter.c:484:27: sparse: subtraction of functions? Share your drugs net/core/filter.c:487:27: sparse: subtraction of functions? Share your drugs include/linux/filter.h:615:16: sparse: expression using sizeof(void) include/linux/filter.h:615:16: sparse: expression using sizeof(void) include/linux/filter.h:615:16: sparse: expression using sizeof(void) include/linux/filter.h:615:16: sparse: expression using sizeof(void) net/core/filter.c:1368:39: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sock_filter const *filter @@ got struct sockstruct sock_filter const *filter @@ net/core/filter.c:1368:39: expected struct sock_filter const *filter net/core/filter.c:1368:39: got struct sock_filter [noderef] <asn:1>*filter include/linux/filter.h:615:16: sparse: expression using sizeof(void) include/linux/filter.h:615:16: sparse: expression using sizeof(void) net/core/filter.c:1470:39: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sock_filter const *filter @@ got struct sockstruct sock_filter const *filter @@ net/core/filter.c:1470:39: expected struct sock_filter const *filter net/core/filter.c:1470:39: got struct sock_filter [noderef] <asn:1>*filter include/linux/filter.h:615:16: sparse: expression using sizeof(void) net/core/filter.c:1772:43: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __wsum [usertype] diff @@ got unsigned lonrestricted __wsum [usertype] diff @@ net/core/filter.c:1772:43: expected restricted __wsum [usertype] diff net/core/filter.c:1772:43: got unsigned long long [unsigned] [usertype] to net/core/filter.c:1775:36: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __be16 [usertype] old @@ got unsigned lonrestricted __be16 [usertype] old @@ net/core/filter.c:1775:36: expected restricted __be16 [usertype] old net/core/filter.c:1775:36: got unsigned long long [unsigned] [usertype] from net/core/filter.c:1775:42: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __be16 [usertype] new @@ got unsigned lonrestricted __be16 [usertype] new @@ net/core/filter.c:1775:42: expected restricted __be16 [usertype] new net/core/filter.c:1775:42: got unsigned long long [unsigned] [usertype] to net/core/filter.c:1778:36: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __be32 [usertype] from @@ got unsigned lonrestricted __be32 [usertype] from @@ net/core/filter.c:1778:36: expected restricted __be32 [usertype] from net/core/filter.c:1778:36: got unsigned long long [unsigned] [usertype] from net/core/filter.c:1778:42: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __be32 [usertype] to @@ got unsigned lonrestricted __be32 [usertype] to @@ net/core/filter.c:1778:42: expected restricted __be32 [usertype] to net/core/filter.c:1778:42: got unsigned long long [unsigned] [usertype] to net/core/filter.c:1823:59: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] diff @@ got unsigned lonrestricted __wsum [usertype] diff @@ net/core/filter.c:1823:59: expected restricted __wsum [usertype] diff net/core/filter.c:1823:59: got unsigned long long [unsigned] [usertype] to net/core/filter.c:1826:52: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __be16 [usertype] from @@ got unsigned lonrestricted __be16 [usertype] from @@ net/core/filter.c:1826:52: expected restricted __be16 [usertype] from net/core/filter.c:1826:52: got unsigned long long [unsigned] [usertype] from net/core/filter.c:1826:58: sparse: incorrect type in argument 4 (different base types) @@ expected restricted __be16 [usertype] to @@ got unsigned lonrestricted __be16 [usertype] to @@ net/core/filter.c:1826:58: expected restricted __be16 [usertype] to net/core/filter.c:1826:58: got unsigned long long [unsigned] [usertype] to net/core/filter.c:1829:52: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __be32 [usertype] from @@ got unsigned lonrestricted __be32 [usertype] from @@ net/core/filter.c:1829:52: expected restricted __be32 [usertype] from net/core/filter.c:1829:52: got unsigned long long [unsigned] [usertype] from net/core/filter.c:1829:58: sparse: incorrect type in argument 4 (different base types) @@ expected restricted __be32 [usertype] to @@ got unsigned lonrestricted __be32 [usertype] to @@ net/core/filter.c:1829:58: expected restricted __be32 [usertype] to net/core/filter.c:1829:58: got unsigned long long [unsigned] [usertype] to net/core/filter.c:1875:28: sparse: incorrect type in return expression (different base types) @@ expected unsigned long long @@ got nsigned long long @@ net/core/filter.c:1875:28: expected unsigned long long net/core/filter.c:1875:28: got restricted __wsum net/core/filter.c:1897:35: sparse: incorrect type in return expression (different base types) @@ expected unsigned long long @@ got restricted unsigned long long @@ net/core/filter.c:1897:35: expected unsigned long long net/core/filter.c:1897:35: got restricted __wsum [usertype] csum net/core/filter.c:3708:41: sparse: expression using sizeof(void) net/core/filter.c:3712:41: sparse: expression using sizeof(void) net/core/filter.c:3716:46: sparse: expression using sizeof(void) net/core/filter.c:3716:46: sparse: expression using sizeof(void) net/core/filter.c:3784:47: sparse: expression using sizeof(void) net/core/filter.c:3990:17: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [unsigned] [usertype] spi @@ got unsigned int [unsigned] [usertype] spi @@ net/core/filter.c:3990:17: expected unsigned int [unsigned] [usertype] spi net/core/filter.c:3990:17: got restricted __be32 const [usertype] spi net/core/filter.c:3996:33: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [unsigned] [usertype] remote_ipv4 @@ got unsigned int [unsigned] [usertype] remote_ipv4 @@ net/core/filter.c:3996:33: expected unsigned int [unsigned] [usertype] remote_ipv4 net/core/filter.c:3996:33: got restricted __be32 const [usertype] a4 net/core/filter.c:4835:27: sparse: subtraction of functions? Share your drugs net/core/filter.c:4838:27: sparse: subtraction of functions? Share your drugs net/core/filter.c:4841:27: sparse: subtraction of functions? Share your drugs >> net/core/filter.c:6198:31: sparse: symbol 'lwt_seg6local_verifier_ops' was >> not declared. Should it be static? >> net/core/filter.c:6204:27: sparse: symbol 'lwt_seg6local_prog_ops' was not >> declared. Should it be static? Please review and possibly fold the followup patch. --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation