CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: [email protected]

Hi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on next-20220214]
[cannot apply to net-next/master rostedt-trace/for-next net/master linus/master 
v5.17-rc4 v5.17-rc3 v5.17-rc2 v5.17-rc4]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/menglong8-dong-gmail-com/net-add-skb-drop-reasons-for-TCP-IP-dev-and-neigh/20220215-193437
base:    259cbfc98c55ba3b6ef6e61fb7cfc3751dfded1e
:::::: branch date: 8 hours ago
:::::: commit date: 8 hours ago
config: x86_64-randconfig-m001-20220214 
(https://download.01.org/0day-ci/archive/20220216/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.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/ipv6/tcp_ipv6.c:1567 tcp_v6_do_rcv() error: uninitialized symbol 'reason'.

vim +/reason +1567 net/ipv6/tcp_ipv6.c

^1da177e4c3f415 Linus Torvalds           2005-04-16  1463  
bbd807dfbf20506 Brian Vazquez            2021-02-01  1464  
INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *,
bbd807dfbf20506 Brian Vazquez            2021-02-01  1465                       
                                   u32));
^1da177e4c3f415 Linus Torvalds           2005-04-16  1466  /* The socket must 
have it's spinlock held when we get
e994b2f0fb9229a Eric Dumazet             2015-10-02  1467   * here, unless it 
is a TCP_LISTEN socket.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1468   *
^1da177e4c3f415 Linus Torvalds           2005-04-16  1469   * We have a 
potential double-lock case here, so even when
^1da177e4c3f415 Linus Torvalds           2005-04-16  1470   * doing backlog 
processing we use the BH locking scheme.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1471   * This is because 
we cannot sleep with the original spinlock
^1da177e4c3f415 Linus Torvalds           2005-04-16  1472   * held.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1473   */
d2489c7b6d7d5ed Eric Dumazet             2021-11-15  1474  
INDIRECT_CALLABLE_SCOPE
d2489c7b6d7d5ed Eric Dumazet             2021-11-15  1475  int 
tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1476  {
93a77c11ae79e83 Eric Dumazet             2019-03-19  1477       struct 
ipv6_pinfo *np = tcp_inet6_sk(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1478       struct sk_buff 
*opt_skb = NULL;
8619663f7f150a5 Menglong Dong            2022-02-15  1479       enum 
skb_drop_reason reason;
93a77c11ae79e83 Eric Dumazet             2019-03-19  1480       struct tcp_sock 
*tp;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1481  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1482       /* Imagine: 
socket is IPv6. IPv4 packet arrives,
^1da177e4c3f415 Linus Torvalds           2005-04-16  1483          goes to IPv4 
receive handler and backlogged.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1484          From backlog 
it always goes here. Kerboom...
^1da177e4c3f415 Linus Torvalds           2005-04-16  1485          Fortunately, 
tcp_rcv_established and rcv_established
^1da177e4c3f415 Linus Torvalds           2005-04-16  1486          handle them 
correctly, but it is not case with
^1da177e4c3f415 Linus Torvalds           2005-04-16  1487          
tcp_v6_hnd_req and tcp_v6_send_reset().   --ANK
^1da177e4c3f415 Linus Torvalds           2005-04-16  1488        */
^1da177e4c3f415 Linus Torvalds           2005-04-16  1489  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1490       if 
(skb->protocol == htons(ETH_P_IP))
^1da177e4c3f415 Linus Torvalds           2005-04-16  1491               return 
tcp_v4_do_rcv(sk, skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1492  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1493       /*
^1da177e4c3f415 Linus Torvalds           2005-04-16  1494        *      socket 
locking is here for SMP purposes as backlog rcv
^1da177e4c3f415 Linus Torvalds           2005-04-16  1495        *      is 
currently called with bh processing disabled.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1496        */
^1da177e4c3f415 Linus Torvalds           2005-04-16  1497  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1498       /* Do Stevens' 
IPV6_PKTOPTIONS.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1499  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1500          Yes, guys, 
it is the only place in our code, where we
^1da177e4c3f415 Linus Torvalds           2005-04-16  1501          may make it 
not affecting IPv4.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1502          The rest of 
code is protocol independent,
^1da177e4c3f415 Linus Torvalds           2005-04-16  1503          and I do not 
like idea to uglify IPv4.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1504  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1505          Actually, 
all the idea behind IPV6_PKTOPTIONS
^1da177e4c3f415 Linus Torvalds           2005-04-16  1506          looks not 
very well thought. For now we latch
^1da177e4c3f415 Linus Torvalds           2005-04-16  1507          options, 
received in the last packet, enqueued
^1da177e4c3f415 Linus Torvalds           2005-04-16  1508          by tcp. Feel 
free to propose better solution.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1509                       
                       --ANK (980728)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1510        */
^1da177e4c3f415 Linus Torvalds           2005-04-16  1511       if 
(np->rxopt.all)
7450aaf61f0ae2e Eric Dumazet             2015-11-30  1512               opt_skb 
= skb_clone(skb, sk_gfp_mask(sk, GFP_ATOMIC));
^1da177e4c3f415 Linus Torvalds           2005-04-16  1513  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1514       if 
(sk->sk_state == TCP_ESTABLISHED) { /* Fast path */
8f905c0e7354ef2 Eric Dumazet             2021-12-20  1515               struct 
dst_entry *dst;
8f905c0e7354ef2 Eric Dumazet             2021-12-20  1516  
8f905c0e7354ef2 Eric Dumazet             2021-12-20  1517               dst = 
rcu_dereference_protected(sk->sk_rx_dst,
8f905c0e7354ef2 Eric Dumazet             2021-12-20  1518                       
                        lockdep_sock_is_held(sk));
5d299f3d3c8a2fb Eric Dumazet             2012-08-06  1519  
bdeab991918663a Tom Herbert              2011-08-14  1520               
sock_rps_save_rxhash(sk, skb);
3d97379a67486bc Eric Dumazet             2014-11-11  1521               
sk_mark_napi_id(sk, skb);
5d299f3d3c8a2fb Eric Dumazet             2012-08-06  1522               if 
(dst) {
0c0a5ef809f9150 Eric Dumazet             2021-10-25  1523                       
if (sk->sk_rx_dst_ifindex != skb->skb_iif ||
bbd807dfbf20506 Brian Vazquez            2021-02-01  1524                       
    INDIRECT_CALL_1(dst->ops->check, ip6_dst_check,
ef57c1610dd8fba Eric Dumazet             2021-10-25  1525                       
                    dst, sk->sk_rx_dst_cookie) == NULL) {
8f905c0e7354ef2 Eric Dumazet             2021-12-20  1526                       
        RCU_INIT_POINTER(sk->sk_rx_dst, NULL);
5d299f3d3c8a2fb Eric Dumazet             2012-08-06  1527                       
        dst_release(dst);
5d299f3d3c8a2fb Eric Dumazet             2012-08-06  1528                       
}
5d299f3d3c8a2fb Eric Dumazet             2012-08-06  1529               }
5d299f3d3c8a2fb Eric Dumazet             2012-08-06  1530  
3d97d88e8091f35 Yafang Shao              2018-05-29  1531               
tcp_rcv_established(sk, skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1532               if 
(opt_skb)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1533                       
goto ipv6_pktoptions;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1534               return 
0;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1535       }
^1da177e4c3f415 Linus Torvalds           2005-04-16  1536  
12e25e1041d044d Eric Dumazet             2015-06-03  1537       if 
(tcp_checksum_complete(skb))
^1da177e4c3f415 Linus Torvalds           2005-04-16  1538               goto 
csum_err;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1539  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1540       if 
(sk->sk_state == TCP_LISTEN) {
079096f103faca2 Eric Dumazet             2015-10-02  1541               struct 
sock *nsk = tcp_v6_cookie_check(sk, skb);
079096f103faca2 Eric Dumazet             2015-10-02  1542  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1543               if 
(!nsk)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1544                       
goto discard;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1545  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1546               if (nsk 
!= sk) {
^1da177e4c3f415 Linus Torvalds           2005-04-16  1547                       
if (tcp_child_process(sk, nsk, skb))
^1da177e4c3f415 Linus Torvalds           2005-04-16  1548                       
        goto reset;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1549                       
if (opt_skb)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1550                       
        __kfree_skb(opt_skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1551                       
return 0;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1552               }
47482f132a689af Neil Horman              2011-04-06  1553       } else
bdeab991918663a Tom Herbert              2011-08-14  1554               
sock_rps_save_rxhash(sk, skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1555  
72ab4a86f7a260d Eric Dumazet             2015-09-29  1556       if 
(tcp_rcv_state_process(sk, skb))
^1da177e4c3f415 Linus Torvalds           2005-04-16  1557               goto 
reset;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1558       if (opt_skb)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1559               goto 
ipv6_pktoptions;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1560       return 0;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1561  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1562  reset:
cfb6eeb4c860592 YOSHIFUJI Hideaki        2006-11-14  1563       
tcp_v6_send_reset(sk, skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1564  discard:
^1da177e4c3f415 Linus Torvalds           2005-04-16  1565       if (opt_skb)
^1da177e4c3f415 Linus Torvalds           2005-04-16  1566               
__kfree_skb(opt_skb);
8619663f7f150a5 Menglong Dong            2022-02-15 @1567       
kfree_skb_reason(skb, reason);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1568       return 0;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1569  csum_err:
8619663f7f150a5 Menglong Dong            2022-02-15  1570       reason = 
SKB_DROP_REASON_TCP_CSUM;
709c03142399921 Jakub Kicinski           2021-05-14  1571       
trace_tcp_bad_csum(skb);
c10d9310edf5aa4 Eric Dumazet             2016-04-29  1572       
TCP_INC_STATS(sock_net(sk), TCP_MIB_CSUMERRORS);
c10d9310edf5aa4 Eric Dumazet             2016-04-29  1573       
TCP_INC_STATS(sock_net(sk), TCP_MIB_INERRS);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1574       goto discard;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1575  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1576  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1577  ipv6_pktoptions:
^1da177e4c3f415 Linus Torvalds           2005-04-16  1578       /* Do you ask, 
what is it?
^1da177e4c3f415 Linus Torvalds           2005-04-16  1579  
^1da177e4c3f415 Linus Torvalds           2005-04-16  1580          1. skb was 
enqueued by tcp.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1581          2. skb is 
added to tail of read queue, rather than out of order.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1582          3. socket is 
not in passive state.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1583          4. Finally, 
it really contains options, which user wants to receive.
^1da177e4c3f415 Linus Torvalds           2005-04-16  1584        */
^1da177e4c3f415 Linus Torvalds           2005-04-16  1585       tp = tcp_sk(sk);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1586       if 
(TCP_SKB_CB(opt_skb)->end_seq == tp->rcv_nxt &&
^1da177e4c3f415 Linus Torvalds           2005-04-16  1587           !((1 << 
sk->sk_state) & (TCPF_CLOSE | TCPF_LISTEN))) {
333fad5364d6b45 YOSHIFUJI Hideaki        2005-09-08  1588               if 
(np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo)
870c3151382c980 Eric Dumazet             2014-10-17  1589                       
np->mcast_oif = tcp_v6_iif(opt_skb);
333fad5364d6b45 YOSHIFUJI Hideaki        2005-09-08  1590               if 
(np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim)
0660e03f6b18f19 Arnaldo Carvalho de Melo 2007-04-25  1591                       
np->mcast_hops = ipv6_hdr(opt_skb)->hop_limit;
82e9f105a28006e Florent Fourcot          2013-12-08  1592               if 
(np->rxopt.bits.rxflow || np->rxopt.bits.rxtclass)
1397ed35f22d7c3 Florent Fourcot          2013-12-08  1593                       
np->rcv_flowinfo = ip6_flowinfo(ipv6_hdr(opt_skb));
df3687ffc6653e4 Florent Fourcot          2014-01-17  1594               if 
(np->repflow)
df3687ffc6653e4 Florent Fourcot          2014-01-17  1595                       
np->flow_label = ip6_flowlabel(ipv6_hdr(opt_skb));
a224772db8420ec Eric Dumazet             2014-09-27  1596               if 
(ipv6_opt_accepted(sk, opt_skb, &TCP_SKB_CB(opt_skb)->header.h6)) {
^1da177e4c3f415 Linus Torvalds           2005-04-16  1597                       
skb_set_owner_r(opt_skb, sk);
8ce48623f0cf3d6 Eric Dumazet             2016-10-12  1598                       
tcp_v6_restore_cb(opt_skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1599                       
opt_skb = xchg(&np->pktoptions, opt_skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1600               } else {
^1da177e4c3f415 Linus Torvalds           2005-04-16  1601                       
__kfree_skb(opt_skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1602                       
opt_skb = xchg(&np->pktoptions, NULL);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1603               }
^1da177e4c3f415 Linus Torvalds           2005-04-16  1604       }
^1da177e4c3f415 Linus Torvalds           2005-04-16  1605  
12c8691de30734a Eric Dumazet             2021-10-25  1606       
consume_skb(opt_skb);
^1da177e4c3f415 Linus Torvalds           2005-04-16  1607       return 0;
^1da177e4c3f415 Linus Torvalds           2005-04-16  1608  }
^1da177e4c3f415 Linus Torvalds           2005-04-16  1609  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to