* drivers/net/ethernet/sfc/ef10.c:2224 efx_ef10_tx_tso_desc() warn: assigning (-208) to unsigned variable 'ip_tot_len'
@ 2021-06-25 19:15 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-06-25 19:15 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 8245 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Edward Cree <ecree@solarflare.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 44db63d1ad8d71c6932cbe007eb41f31c434d140
commit: 0ce8df6614568cfb390756cac35ac690105181f5 sfc: implement encapsulated TSO on EF10
date: 10 months ago
:::::: branch date: 23 hours ago
:::::: commit date: 10 months ago
config: i386-randconfig-m031-20210625 (attached as .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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/net/ethernet/sfc/ef10.c:2224 efx_ef10_tx_tso_desc() warn: assigning (-208) to unsigned variable 'ip_tot_len'
vim +/ip_tot_len +2224 drivers/net/ethernet/sfc/ef10.c
8127d661e77f5e Ben Hutchings 2013-08-29 2175
e9117e5099ea29 Bert Kenward 2016-11-17 2176 /* Add Firmware-Assisted TSO v2 option descriptors to a queue.
e9117e5099ea29 Bert Kenward 2016-11-17 2177 */
1679c72cf48552 Edward Cree 2020-09-11 2178 int efx_ef10_tx_tso_desc(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
e9117e5099ea29 Bert Kenward 2016-11-17 2179 bool *data_mapped)
e9117e5099ea29 Bert Kenward 2016-11-17 2180 {
e9117e5099ea29 Bert Kenward 2016-11-17 2181 struct efx_tx_buffer *buffer;
0ce8df6614568c Edward Cree 2020-09-11 2182 u16 inner_ipv4_id = 0;
0ce8df6614568c Edward Cree 2020-09-11 2183 u16 outer_ipv4_id = 0;
e9117e5099ea29 Bert Kenward 2016-11-17 2184 struct tcphdr *tcp;
e9117e5099ea29 Bert Kenward 2016-11-17 2185 struct iphdr *ip;
0ce8df6614568c Edward Cree 2020-09-11 2186 u16 ip_tot_len;
e9117e5099ea29 Bert Kenward 2016-11-17 2187 u32 seqnum;
e9117e5099ea29 Bert Kenward 2016-11-17 2188 u32 mss;
e9117e5099ea29 Bert Kenward 2016-11-17 2189
e01b16a7e217a2 Edward Cree 2016-12-02 2190 EFX_WARN_ON_ONCE_PARANOID(tx_queue->tso_version != 2);
e9117e5099ea29 Bert Kenward 2016-11-17 2191
e9117e5099ea29 Bert Kenward 2016-11-17 2192 mss = skb_shinfo(skb)->gso_size;
e9117e5099ea29 Bert Kenward 2016-11-17 2193
e9117e5099ea29 Bert Kenward 2016-11-17 2194 if (unlikely(mss < 4)) {
e9117e5099ea29 Bert Kenward 2016-11-17 2195 WARN_ONCE(1, "MSS of %u is too small for TSO v2\n", mss);
e9117e5099ea29 Bert Kenward 2016-11-17 2196 return -EINVAL;
e9117e5099ea29 Bert Kenward 2016-11-17 2197 }
e9117e5099ea29 Bert Kenward 2016-11-17 2198
0ce8df6614568c Edward Cree 2020-09-11 2199 if (skb->encapsulation) {
0ce8df6614568c Edward Cree 2020-09-11 2200 if (!tx_queue->tso_encap)
0ce8df6614568c Edward Cree 2020-09-11 2201 return -EINVAL;
e9117e5099ea29 Bert Kenward 2016-11-17 2202 ip = ip_hdr(skb);
0ce8df6614568c Edward Cree 2020-09-11 2203 if (ip->version == 4)
0ce8df6614568c Edward Cree 2020-09-11 2204 outer_ipv4_id = ntohs(ip->id);
0ce8df6614568c Edward Cree 2020-09-11 2205
0ce8df6614568c Edward Cree 2020-09-11 2206 ip = inner_ip_hdr(skb);
0ce8df6614568c Edward Cree 2020-09-11 2207 tcp = inner_tcp_hdr(skb);
0ce8df6614568c Edward Cree 2020-09-11 2208 } else {
0ce8df6614568c Edward Cree 2020-09-11 2209 ip = ip_hdr(skb);
0ce8df6614568c Edward Cree 2020-09-11 2210 tcp = tcp_hdr(skb);
0ce8df6614568c Edward Cree 2020-09-11 2211 }
0ce8df6614568c Edward Cree 2020-09-11 2212
0ce8df6614568c Edward Cree 2020-09-11 2213 /* 8000-series EF10 hardware requires that IP Total Length be
0ce8df6614568c Edward Cree 2020-09-11 2214 * greater than or equal to the value it will have in each segment
0ce8df6614568c Edward Cree 2020-09-11 2215 * (which is at most mss + 208 + TCP header length), but also less
0ce8df6614568c Edward Cree 2020-09-11 2216 * than (0x10000 - inner_network_header). Otherwise the TCP
0ce8df6614568c Edward Cree 2020-09-11 2217 * checksum calculation will be broken for encapsulated packets.
0ce8df6614568c Edward Cree 2020-09-11 2218 * We fill in ip->tot_len with 0xff30, which should satisfy the
0ce8df6614568c Edward Cree 2020-09-11 2219 * first requirement unless the MSS is ridiculously large (which
0ce8df6614568c Edward Cree 2020-09-11 2220 * should be impossible as the driver max MTU is 9216); it is
0ce8df6614568c Edward Cree 2020-09-11 2221 * guaranteed to satisfy the second as we only attempt TSO if
0ce8df6614568c Edward Cree 2020-09-11 2222 * inner_network_header <= 208.
0ce8df6614568c Edward Cree 2020-09-11 2223 */
0ce8df6614568c Edward Cree 2020-09-11 @2224 ip_tot_len = -EFX_TSO2_MAX_HDRLEN;
0ce8df6614568c Edward Cree 2020-09-11 2225 EFX_WARN_ON_ONCE_PARANOID(mss + EFX_TSO2_MAX_HDRLEN +
0ce8df6614568c Edward Cree 2020-09-11 2226 (tcp->doff << 2u) > ip_tot_len);
0ce8df6614568c Edward Cree 2020-09-11 2227
e9117e5099ea29 Bert Kenward 2016-11-17 2228 if (ip->version == 4) {
0ce8df6614568c Edward Cree 2020-09-11 2229 ip->tot_len = htons(ip_tot_len);
e9117e5099ea29 Bert Kenward 2016-11-17 2230 ip->check = 0;
0ce8df6614568c Edward Cree 2020-09-11 2231 inner_ipv4_id = ntohs(ip->id);
e9117e5099ea29 Bert Kenward 2016-11-17 2232 } else {
0ce8df6614568c Edward Cree 2020-09-11 2233 ((struct ipv6hdr *)ip)->payload_len = htons(ip_tot_len);
e9117e5099ea29 Bert Kenward 2016-11-17 2234 }
e9117e5099ea29 Bert Kenward 2016-11-17 2235
e9117e5099ea29 Bert Kenward 2016-11-17 2236 seqnum = ntohl(tcp->seq);
e9117e5099ea29 Bert Kenward 2016-11-17 2237
e9117e5099ea29 Bert Kenward 2016-11-17 2238 buffer = efx_tx_queue_get_insert_buffer(tx_queue);
e9117e5099ea29 Bert Kenward 2016-11-17 2239
e9117e5099ea29 Bert Kenward 2016-11-17 2240 buffer->flags = EFX_TX_BUF_OPTION;
e9117e5099ea29 Bert Kenward 2016-11-17 2241 buffer->len = 0;
e9117e5099ea29 Bert Kenward 2016-11-17 2242 buffer->unmap_len = 0;
e9117e5099ea29 Bert Kenward 2016-11-17 2243 EFX_POPULATE_QWORD_5(buffer->option,
e9117e5099ea29 Bert Kenward 2016-11-17 2244 ESF_DZ_TX_DESC_IS_OPT, 1,
e9117e5099ea29 Bert Kenward 2016-11-17 2245 ESF_DZ_TX_OPTION_TYPE, ESE_DZ_TX_OPTION_DESC_TSO,
e9117e5099ea29 Bert Kenward 2016-11-17 2246 ESF_DZ_TX_TSO_OPTION_TYPE,
e9117e5099ea29 Bert Kenward 2016-11-17 2247 ESE_DZ_TX_TSO_OPTION_DESC_FATSO2A,
0ce8df6614568c Edward Cree 2020-09-11 2248 ESF_DZ_TX_TSO_IP_ID, inner_ipv4_id,
e9117e5099ea29 Bert Kenward 2016-11-17 2249 ESF_DZ_TX_TSO_TCP_SEQNO, seqnum
e9117e5099ea29 Bert Kenward 2016-11-17 2250 );
e9117e5099ea29 Bert Kenward 2016-11-17 2251 ++tx_queue->insert_count;
e9117e5099ea29 Bert Kenward 2016-11-17 2252
e9117e5099ea29 Bert Kenward 2016-11-17 2253 buffer = efx_tx_queue_get_insert_buffer(tx_queue);
e9117e5099ea29 Bert Kenward 2016-11-17 2254
e9117e5099ea29 Bert Kenward 2016-11-17 2255 buffer->flags = EFX_TX_BUF_OPTION;
e9117e5099ea29 Bert Kenward 2016-11-17 2256 buffer->len = 0;
e9117e5099ea29 Bert Kenward 2016-11-17 2257 buffer->unmap_len = 0;
0ce8df6614568c Edward Cree 2020-09-11 2258 EFX_POPULATE_QWORD_5(buffer->option,
e9117e5099ea29 Bert Kenward 2016-11-17 2259 ESF_DZ_TX_DESC_IS_OPT, 1,
e9117e5099ea29 Bert Kenward 2016-11-17 2260 ESF_DZ_TX_OPTION_TYPE, ESE_DZ_TX_OPTION_DESC_TSO,
e9117e5099ea29 Bert Kenward 2016-11-17 2261 ESF_DZ_TX_TSO_OPTION_TYPE,
e9117e5099ea29 Bert Kenward 2016-11-17 2262 ESE_DZ_TX_TSO_OPTION_DESC_FATSO2B,
0ce8df6614568c Edward Cree 2020-09-11 2263 ESF_DZ_TX_TSO_OUTER_IPID, outer_ipv4_id,
e9117e5099ea29 Bert Kenward 2016-11-17 2264 ESF_DZ_TX_TSO_TCP_MSS, mss
e9117e5099ea29 Bert Kenward 2016-11-17 2265 );
e9117e5099ea29 Bert Kenward 2016-11-17 2266 ++tx_queue->insert_count;
e9117e5099ea29 Bert Kenward 2016-11-17 2267
e9117e5099ea29 Bert Kenward 2016-11-17 2268 return 0;
e9117e5099ea29 Bert Kenward 2016-11-17 2269 }
e9117e5099ea29 Bert Kenward 2016-11-17 2270
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36098 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-06-25 19:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-25 19:15 drivers/net/ethernet/sfc/ef10.c:2224 efx_ef10_tx_tso_desc() warn: assigning (-208) to unsigned variable 'ip_tot_len' kernel test robot
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.