lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Wed, 16 Aug 2023 20:03:11 +0800
From:   kernel test robot <lkp@...el.com>
To:     Christian Ehrig <cehrig@...udflare.com>
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        Alexei Starovoitov <ast@...nel.org>
Subject: net/ipv4/fou_bpf.c:46:17: warning: no previous declaration for
 'bpf_skb_set_fou_encap'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4853c74bd7ab7fdb83f319bd9ace8a08c031e9b6
commit: c50e96099edb134bf107fafc02715fbc4aa2277f bpf,fou: Add bpf_skb_{set,get}_fou_encap kfuncs
date:   4 months ago
config: x86_64-buildonly-randconfig-r001-20230816 (https://download.01.org/0day-ci/archive/20230816/202308161949.ynVqsx87-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce: (https://download.01.org/0day-ci/archive/20230816/202308161949.ynVqsx87-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308161949.ynVqsx87-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/ipv4/fou_bpf.c:46:17: warning: no previous declaration for 'bpf_skb_set_fou_encap' [-Wmissing-declarations]
    __bpf_kfunc int bpf_skb_set_fou_encap(struct __sk_buff *skb_ctx,
                    ^~~~~~~~~~~~~~~~~~~~~
>> net/ipv4/fou_bpf.c:88:17: warning: no previous declaration for 'bpf_skb_get_fou_encap' [-Wmissing-declarations]
    __bpf_kfunc int bpf_skb_get_fou_encap(struct __sk_buff *skb_ctx,
                    ^~~~~~~~~~~~~~~~~~~~~


vim +/bpf_skb_set_fou_encap +46 net/ipv4/fou_bpf.c

    24	
    25	__diag_push();
    26	__diag_ignore_all("-Wmissing-prototypes",
    27			  "Global functions as their definitions will be in BTF");
    28	
    29	/* bpf_skb_set_fou_encap - Set FOU encap parameters
    30	 *
    31	 * This function allows for using GUE or FOU encapsulation together with an
    32	 * ipip device in collect-metadata mode.
    33	 *
    34	 * It is meant to be used in BPF tc-hooks and after a call to the
    35	 * bpf_skb_set_tunnel_key helper, responsible for setting IP addresses.
    36	 *
    37	 * Parameters:
    38	 * @skb_ctx	Pointer to ctx (__sk_buff) in TC program. Cannot be NULL
    39	 * @encap	Pointer to a `struct bpf_fou_encap` storing UDP src and
    40	 * 		dst ports. If sport is set to 0 the kernel will auto-assign a
    41	 * 		port. This is similar to using `encap-sport auto`.
    42	 * 		Cannot be NULL
    43	 * @type	Encapsulation type for the packet. Their definitions are
    44	 * 		specified in `enum bpf_fou_encap_type`
    45	 */
  > 46	__bpf_kfunc int bpf_skb_set_fou_encap(struct __sk_buff *skb_ctx,
    47					      struct bpf_fou_encap *encap, int type)
    48	{
    49		struct sk_buff *skb = (struct sk_buff *)skb_ctx;
    50		struct ip_tunnel_info *info = skb_tunnel_info(skb);
    51	
    52		if (unlikely(!encap))
    53			return -EINVAL;
    54	
    55		if (unlikely(!info || !(info->mode & IP_TUNNEL_INFO_TX)))
    56			return -EINVAL;
    57	
    58		switch (type) {
    59		case FOU_BPF_ENCAP_FOU:
    60			info->encap.type = TUNNEL_ENCAP_FOU;
    61			break;
    62		case FOU_BPF_ENCAP_GUE:
    63			info->encap.type = TUNNEL_ENCAP_GUE;
    64			break;
    65		default:
    66			info->encap.type = TUNNEL_ENCAP_NONE;
    67		}
    68	
    69		if (info->key.tun_flags & TUNNEL_CSUM)
    70			info->encap.flags |= TUNNEL_ENCAP_FLAG_CSUM;
    71	
    72		info->encap.sport = encap->sport;
    73		info->encap.dport = encap->dport;
    74	
    75		return 0;
    76	}
    77	
    78	/* bpf_skb_get_fou_encap - Get FOU encap parameters
    79	 *
    80	 * This function allows for reading encap metadata from a packet received
    81	 * on an ipip device in collect-metadata mode.
    82	 *
    83	 * Parameters:
    84	 * @skb_ctx	Pointer to ctx (__sk_buff) in TC program. Cannot be NULL
    85	 * @encap	Pointer to a struct bpf_fou_encap storing UDP source and
    86	 * 		destination port. Cannot be NULL
    87	 */
  > 88	__bpf_kfunc int bpf_skb_get_fou_encap(struct __sk_buff *skb_ctx,
    89					      struct bpf_fou_encap *encap)
    90	{
    91		struct sk_buff *skb = (struct sk_buff *)skb_ctx;
    92		struct ip_tunnel_info *info = skb_tunnel_info(skb);
    93	
    94		if (unlikely(!info))
    95			return -EINVAL;
    96	
    97		encap->sport = info->encap.sport;
    98		encap->dport = info->encap.dport;
    99	
   100		return 0;
   101	}
   102	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ