CC: [email protected]
CC: [email protected]
TO: Zhu Yanjun <[email protected]>
CC: Daniel Borkmann <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   5d6ab0bb408ffdaac585982faa9ec8c7d5cc349f
commit: bb1b25cab04324d0749f7ae22653aff58157bf83 xdp: Remove the functions 
xsk_map_inc and xsk_map_put
date:   11 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 11 months ago
config: nios2-randconfig-m031-20211009 (attached as .config)
compiler: nios2-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
net/xdp/xskmap.c:176 xsk_map_update_elem() warn: passing a valid pointer to 
'PTR_ERR'

vim +/PTR_ERR +176 net/xdp/xskmap.c

fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  145  
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  146  static int 
xsk_map_update_elem(struct bpf_map *map, void *key, void *value,
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  147                  
               u64 map_flags)
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  148  {
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  149          struct 
xsk_map *m = container_of(map, struct xsk_map, map);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  150          struct 
xdp_sock *xs, *old_xs, **map_entry;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  151          u32 i = 
*(u32 *)key, fd = *(u32 *)value;
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  152          struct 
xsk_map_node *node;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  153          struct 
socket *sock;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  154          int err;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  155  
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  156          if 
(unlikely(map_flags > BPF_EXIST))
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  157                  
return -EINVAL;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  158          if 
(unlikely(i >= m->map.max_entries))
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  159                  
return -E2BIG;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  160  
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  161          sock = 
sockfd_lookup(fd, &err);
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  162          if 
(!sock)
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  163                  
return err;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  164  
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  165          if 
(sock->sk->sk_family != PF_XDP) {
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  166                  
sockfd_put(sock);
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  167                  
return -EOPNOTSUPP;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  168          }
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  169  
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  170          xs = 
(struct xdp_sock *)sock->sk;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  171  
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  172          
map_entry = &m->xsk_map[i];
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  173          node = 
xsk_map_node_alloc(m, map_entry);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  174          if 
(IS_ERR(node)) {
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  175                  
sockfd_put(sock);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15 @176                  
return PTR_ERR(node);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  177          }
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  178  
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  179          
spin_lock_bh(&m->lock);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  180          old_xs 
= READ_ONCE(*map_entry);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  181          if 
(old_xs == xs) {
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  182                  
err = 0;
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  183                  
goto out;
36cc34358caf63 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  184          } else 
if (old_xs && map_flags == BPF_NOEXIST) {
36cc34358caf63 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  185                  
err = -EEXIST;
36cc34358caf63 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  186                  
goto out;
36cc34358caf63 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  187          } else 
if (!old_xs && map_flags == BPF_EXIST) {
36cc34358caf63 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  188                  
err = -ENOENT;
36cc34358caf63 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  189                  
goto out;
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  190          }
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  191          
xsk_map_sock_add(xs, node);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  192          
WRITE_ONCE(*map_entry, xs);
cee271678d0e31 kernel/bpf/xskmap.c Björn Töpel 2018-10-08  193          if 
(old_xs)
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  194                  
xsk_map_sock_delete(old_xs, map_entry);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  195          
spin_unlock_bh(&m->lock);
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  196          
sockfd_put(sock);
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  197          return 
0;
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  198  
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  199  out:
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  200          
spin_unlock_bh(&m->lock);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  201          
sockfd_put(sock);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  202          
xsk_map_node_free(node);
0402acd683c678 kernel/bpf/xskmap.c Björn Töpel 2019-08-15  203          return 
err;
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  204  }
fbfc504a24f53f kernel/bpf/xskmap.c Björn Töpel 2018-05-02  205  

:::::: The code at line 176 was first introduced by commit
:::::: 0402acd683c678874df6bdbc23530ca07ea19353 xsk: remove AF_XDP socket from 
map when the socket is released

:::::: TO: Björn Töpel <[email protected]>
:::::: CC: Daniel Borkmann <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to