From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============7648610840819573978==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH net 1/2] ipv4: tcp: send zero IPID in SYNACK messages Date: Thu, 27 Jan 2022 09:00:49 +0800 Message-ID: <202201270807.HsUjGLC8-lkp@intel.com> In-Reply-To: <20220126200518.990670-2-eric.dumazet@gmail.com> List-Id: --===============7648610840819573978== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Eric, I love your patch! Perhaps something to improve: [auto build test WARNING on net/master] url: https://github.com/0day-ci/linux/commits/Eric-Dumazet/ipv4-less-use= s-of-shared-IP-generator/20220127-040810 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 429c3= be8a5e2695b5b92a6a12361eb89eb185495 config: i386-randconfig-s002 (https://download.01.org/0day-ci/archive/20220= 127/202201270807.HsUjGLC8-lkp(a)intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/0day-ci/linux/commit/37d3b618591c7c736c2ad3b3f= ebe12779e01369c git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Eric-Dumazet/ipv4-less-uses-of-sha= red-IP-generator/20220127-040810 git checkout 37d3b618591c7c736c2ad3b3febe12779e01369c # save the config file to linux build tree mkdir build_dir make W=3D1 C=3D1 CF=3D'-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=3D= build_dir ARCH=3Di386 SHELL=3D/bin/bash net/ipv4/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> net/ipv4/ip_output.c:175:33: sparse: sparse: incorrect type in assignmen= t (different base types) @@ expected restricted __be16 [usertype] id @@= got unsigned int @@ net/ipv4/ip_output.c:175:33: sparse: expected restricted __be16 [use= rtype] id net/ipv4/ip_output.c:175:33: sparse: got unsigned int net/ipv4/ip_output.c: note: in included file (through include/net/ip.h): include/net/route.h:373:48: sparse: sparse: incorrect type in argument 2= (different base types) @@ expected unsigned int [usertype] key @@ = got restricted __be32 [usertype] daddr @@ include/net/route.h:373:48: sparse: expected unsigned int [usertype]= key include/net/route.h:373:48: sparse: got restricted __be32 [usertype]= daddr include/net/route.h:373:48: sparse: sparse: incorrect type in argument 2= (different base types) @@ expected unsigned int [usertype] key @@ = got restricted __be32 [usertype] daddr @@ include/net/route.h:373:48: sparse: expected unsigned int [usertype]= key include/net/route.h:373:48: sparse: got restricted __be32 [usertype]= daddr vim +175 net/ipv4/ip_output.c 140 = 141 /* 142 * Add an ip header to a skbuff and send it out. 143 * 144 */ 145 int ip_build_and_send_pkt(struct sk_buff *skb, const struct sock *sk, 146 __be32 saddr, __be32 daddr, struct ip_options_rcu *opt, 147 u8 tos) 148 { 149 struct inet_sock *inet =3D inet_sk(sk); 150 struct rtable *rt =3D skb_rtable(skb); 151 struct net *net =3D sock_net(sk); 152 struct iphdr *iph; 153 = 154 /* Build the IP header. */ 155 skb_push(skb, sizeof(struct iphdr) + (opt ? opt->opt.optlen : 0)); 156 skb_reset_network_header(skb); 157 iph =3D ip_hdr(skb); 158 iph->version =3D 4; 159 iph->ihl =3D 5; 160 iph->tos =3D tos; 161 iph->ttl =3D ip_select_ttl(inet, &rt->dst); 162 iph->daddr =3D (opt && opt->opt.srr ? opt->opt.faddr : daddr); 163 iph->saddr =3D saddr; 164 iph->protocol =3D sk->sk_protocol; 165 /* Do not bother generating IPID for small packets (eg SYNACK) */ 166 if (skb->len <=3D IPV4_MIN_MTU || ip_dont_fragment(sk, &rt->dst)) { 167 iph->frag_off =3D htons(IP_DF); 168 iph->id =3D 0; 169 } else { 170 iph->frag_off =3D 0; 171 /* TCP packets here are SYNACK with fat IPv4/TCP options. 172 * Avoid using the hashed IP ident generator. 173 */ 174 if (sk->sk_protocol =3D=3D IPPROTO_TCP) > 175 iph->id =3D prandom_u32(); 176 else 177 __ip_select_ident(net, iph, 1); 178 } 179 = 180 if (opt && opt->opt.optlen) { 181 iph->ihl +=3D opt->opt.optlen>>2; 182 ip_options_build(skb, &opt->opt, daddr, rt, 0); 183 } 184 = 185 skb->priority =3D sk->sk_priority; 186 if (!skb->mark) 187 skb->mark =3D sk->sk_mark; 188 = 189 /* Send it out. */ 190 return ip_local_out(net, skb->sk, skb); 191 } 192 EXPORT_SYMBOL_GPL(ip_build_and_send_pkt); 193 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============7648610840819573978==--