From: kernel test robot <lkp@intel.com>
To: Yan Zhai <yan@cloudflare.com>, netdev@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
Weongyo Jeong <weongyo.linux@gmail.com>,
linux-kernel@vger.kernel.org, kernel-team@cloudflare.com,
Jesper Brouer <jesper@cloudflare.com>
Subject: Re: [PATCH v2 net-next] packet: add a generic drop reason for receive
Date: Wed, 6 Dec 2023 10:25:35 +0800 [thread overview]
Message-ID: <202312061012.2LbT2aSi-lkp@intel.com> (raw)
In-Reply-To: <ZWobMUp22oTpP3FW@debian.debian>
Hi Yan,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Yan-Zhai/packet-add-a-generic-drop-reason-for-receive/20231202-014515
base: net-next/main
patch link: https://lore.kernel.org/r/ZWobMUp22oTpP3FW%40debian.debian
patch subject: [PATCH v2 net-next] packet: add a generic drop reason for receive
config: x86_64-randconfig-121-20231202 (https://download.01.org/0day-ci/archive/20231206/202312061012.2LbT2aSi-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231206/202312061012.2LbT2aSi-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312061012.2LbT2aSi-lkp@intel.com/
All warnings (new ones prefixed by >>):
net/packet/af_packet.c: In function 'packet_rcv':
>> net/packet/af_packet.c:2130:7: warning: variable 'is_drop_n_account' set but not used [-Wunused-but-set-variable]
2130 | bool is_drop_n_account = false;
| ^~~~~~~~~~~~~~~~~
net/packet/af_packet.c: In function 'tpacket_rcv':
net/packet/af_packet.c:2255:7: warning: variable 'is_drop_n_account' set but not used [-Wunused-but-set-variable]
2255 | bool is_drop_n_account = false;
| ^~~~~~~~~~~~~~~~~
vim +/is_drop_n_account +2130 net/packet/af_packet.c
16cc1400456a4d Willem de Bruijn 2016-02-03 2108
^1da177e4c3f41 Linus Torvalds 2005-04-16 2109 /*
62ab0812137ec4 Eric Dumazet 2010-12-06 2110 * This function makes lazy skb cloning in hope that most of packets
62ab0812137ec4 Eric Dumazet 2010-12-06 2111 * are discarded by BPF.
62ab0812137ec4 Eric Dumazet 2010-12-06 2112 *
62ab0812137ec4 Eric Dumazet 2010-12-06 2113 * Note tricky part: we DO mangle shared skb! skb->data, skb->len
62ab0812137ec4 Eric Dumazet 2010-12-06 2114 * and skb->cb are mangled. It works because (and until) packets
62ab0812137ec4 Eric Dumazet 2010-12-06 2115 * falling here are owned by current CPU. Output packets are cloned
62ab0812137ec4 Eric Dumazet 2010-12-06 2116 * by dev_queue_xmit_nit(), input packets are processed by net_bh
0e4161d0eda56e Wang Hai 2021-03-24 2117 * sequentially, so that if we return skb to original state on exit,
62ab0812137ec4 Eric Dumazet 2010-12-06 2118 * we will not harm anyone.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2119 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2120
40d4e3dfc2f56a Eric Dumazet 2009-07-21 2121 static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
40d4e3dfc2f56a Eric Dumazet 2009-07-21 2122 struct packet_type *pt, struct net_device *orig_dev)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2123 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2124 struct sock *sk;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2125 struct sockaddr_ll *sll;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2126 struct packet_sock *po;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2127 u8 *skb_head = skb->data;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2128 int skb_len = skb->len;
dbcb5855d108b7 David S. Miller 2007-01-24 2129 unsigned int snaplen, res;
da37845fdce24e Weongyo Jeong 2016-04-14 @2130 bool is_drop_n_account = false;
e31e10cea16faa Yan Zhai 2023-12-01 2131 enum skb_drop_reason drop_reason = SKB_CONSUMED;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2132
^1da177e4c3f41 Linus Torvalds 2005-04-16 2133 if (skb->pkt_type == PACKET_LOOPBACK)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2134 goto drop;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2135
^1da177e4c3f41 Linus Torvalds 2005-04-16 2136 sk = pt->af_packet_priv;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2137 po = pkt_sk(sk);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2138
09ad9bc752519c Octavian Purdila 2009-11-25 2139 if (!net_eq(dev_net(dev), sock_net(sk)))
d12d01d6b4d197 Denis V. Lunev 2007-11-19 2140 goto drop;
d12d01d6b4d197 Denis V. Lunev 2007-11-19 2141
^1da177e4c3f41 Linus Torvalds 2005-04-16 2142 skb->dev = dev;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2143
d549699048b4b5 Eyal Birger 2020-11-21 2144 if (dev_has_header(dev)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2145 /* The device has an explicit notion of ll header,
62ab0812137ec4 Eric Dumazet 2010-12-06 2146 * exported to higher levels.
62ab0812137ec4 Eric Dumazet 2010-12-06 2147 *
62ab0812137ec4 Eric Dumazet 2010-12-06 2148 * Otherwise, the device hides details of its frame
62ab0812137ec4 Eric Dumazet 2010-12-06 2149 * structure, so that corresponding packet head is
62ab0812137ec4 Eric Dumazet 2010-12-06 2150 * never delivered to user.
^1da177e4c3f41 Linus Torvalds 2005-04-16 2151 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 2152 if (sk->sk_type != SOCK_DGRAM)
98e399f82ab3a6 Arnaldo Carvalho de Melo 2007-03-19 2153 skb_push(skb, skb->data - skb_mac_header(skb));
^1da177e4c3f41 Linus Torvalds 2005-04-16 2154 else if (skb->pkt_type == PACKET_OUTGOING) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2155 /* Special case: outgoing packets have ll header at head */
bbe735e4247dba Arnaldo Carvalho de Melo 2007-03-10 2156 skb_pull(skb, skb_network_offset(skb));
^1da177e4c3f41 Linus Torvalds 2005-04-16 2157 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2158 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2159
^1da177e4c3f41 Linus Torvalds 2005-04-16 2160 snaplen = skb->len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2161
dbcb5855d108b7 David S. Miller 2007-01-24 2162 res = run_filter(skb, sk, snaplen);
dbcb5855d108b7 David S. Miller 2007-01-24 2163 if (!res)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2164 goto drop_n_restore;
e31e10cea16faa Yan Zhai 2023-12-01 2165
e31e10cea16faa Yan Zhai 2023-12-01 2166 /* skb will only be "consumed" not "dropped" before this */
e31e10cea16faa Yan Zhai 2023-12-01 2167 drop_reason = SKB_DROP_REASON_PACKET_SOCK_ERROR;
e31e10cea16faa Yan Zhai 2023-12-01 2168
dbcb5855d108b7 David S. Miller 2007-01-24 2169 if (snaplen > res)
dbcb5855d108b7 David S. Miller 2007-01-24 2170 snaplen = res;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2171
0fd7bac6b6157e Eric Dumazet 2011-12-21 2172 if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2173 goto drop_n_acct;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2174
^1da177e4c3f41 Linus Torvalds 2005-04-16 2175 if (skb_shared(skb)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2176 struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2177 if (nskb == NULL)
^1da177e4c3f41 Linus Torvalds 2005-04-16 2178 goto drop_n_acct;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2179
^1da177e4c3f41 Linus Torvalds 2005-04-16 2180 if (skb_head != skb->data) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2181 skb->data = skb_head;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2182 skb->len = skb_len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2183 }
abc4e4fa29eb81 Eric Dumazet 2012-04-19 2184 consume_skb(skb);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2185 skb = nskb;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2186 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2187
b4772ef879a8f7 Eyal Birger 2015-03-01 2188 sock_skb_cb_check_size(sizeof(*PACKET_SKB_CB(skb)) + MAX_ADDR_LEN - 8);
ffbc61117d32dc Herbert Xu 2007-02-04 2189
ffbc61117d32dc Herbert Xu 2007-02-04 2190 sll = &PACKET_SKB_CB(skb)->sa.ll;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2191 sll->sll_hatype = dev->type;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2192 sll->sll_pkttype = skb->pkt_type;
ee5675ecdf7a4e Eric Dumazet 2023-03-16 2193 if (unlikely(packet_sock_flag(po, PACKET_SOCK_ORIGDEV)))
80feaacb8a6400 Peter P. Waskiewicz Jr 2007-04-20 2194 sll->sll_ifindex = orig_dev->ifindex;
80feaacb8a6400 Peter P. Waskiewicz Jr 2007-04-20 2195 else
^1da177e4c3f41 Linus Torvalds 2005-04-16 2196 sll->sll_ifindex = dev->ifindex;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2197
b95cce3576813a Stephen Hemminger 2007-09-26 2198 sll->sll_halen = dev_parse_header(skb, sll->sll_addr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2199
2472d7613bd3ba Eyal Birger 2015-03-01 2200 /* sll->sll_family and sll->sll_protocol are set in packet_recvmsg().
2472d7613bd3ba Eyal Birger 2015-03-01 2201 * Use their space for storing the original skb length.
2472d7613bd3ba Eyal Birger 2015-03-01 2202 */
2472d7613bd3ba Eyal Birger 2015-03-01 2203 PACKET_SKB_CB(skb)->sa.origlen = skb->len;
8dc41944741596 Herbert Xu 2007-02-04 2204
^1da177e4c3f41 Linus Torvalds 2005-04-16 2205 if (pskb_trim(skb, snaplen))
^1da177e4c3f41 Linus Torvalds 2005-04-16 2206 goto drop_n_acct;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2207
^1da177e4c3f41 Linus Torvalds 2005-04-16 2208 skb_set_owner_r(skb, sk);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2209 skb->dev = NULL;
adf30907d63893 Eric Dumazet 2009-06-02 2210 skb_dst_drop(skb);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2211
84531c24f27b02 Phil Oester 2005-07-12 2212 /* drop conntrack reference */
895b5c9f206eb7 Florian Westphal 2019-09-29 2213 nf_reset_ct(skb);
84531c24f27b02 Phil Oester 2005-07-12 2214
^1da177e4c3f41 Linus Torvalds 2005-04-16 2215 spin_lock(&sk->sk_receive_queue.lock);
ee80fbf301adac Daniel Borkmann 2013-04-19 2216 po->stats.stats1.tp_packets++;
3bc3b96f3b455b Eyal Birger 2015-03-01 2217 sock_skb_set_dropcount(sk, skb);
27942a15209f56 Martin KaFai Lau 2022-03-02 2218 skb_clear_delivery_time(skb);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2219 __skb_queue_tail(&sk->sk_receive_queue, skb);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2220 spin_unlock(&sk->sk_receive_queue.lock);
676d23690fb62b David S. Miller 2014-04-11 2221 sk->sk_data_ready(sk);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2222 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2223
^1da177e4c3f41 Linus Torvalds 2005-04-16 2224 drop_n_acct:
da37845fdce24e Weongyo Jeong 2016-04-14 2225 is_drop_n_account = true;
8e8e2951e30957 Eric Dumazet 2019-06-12 2226 atomic_inc(&po->tp_drops);
7091fbd82cd568 Willem de Bruijn 2011-09-30 2227 atomic_inc(&sk->sk_drops);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2228
^1da177e4c3f41 Linus Torvalds 2005-04-16 2229 drop_n_restore:
^1da177e4c3f41 Linus Torvalds 2005-04-16 2230 if (skb_head != skb->data && skb_shared(skb)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 2231 skb->data = skb_head;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2232 skb->len = skb_len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2233 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2234 drop:
e31e10cea16faa Yan Zhai 2023-12-01 2235 kfree_skb_reason(skb, drop_reason);
^1da177e4c3f41 Linus Torvalds 2005-04-16 2236 return 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 2237 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 2238
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2023-12-06 2:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-01 17:43 [PATCH v2 net-next] packet: add a generic drop reason for receive Yan Zhai
2023-12-01 17:51 ` Eric Dumazet
2023-12-01 18:19 ` Yan Zhai
2023-12-01 18:30 ` Yan Zhai
2023-12-06 2:25 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202312061012.2LbT2aSi-lkp@intel.com \
--to=lkp@intel.com \
--cc=edumazet@google.com \
--cc=jesper@cloudflare.com \
--cc=kernel-team@cloudflare.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=weongyo.linux@gmail.com \
--cc=willemdebruijn.kernel@gmail.com \
--cc=yan@cloudflare.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.