From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesus Sanchez-Palencia Subject: Re: [PATCH net-next 0/6] sock cookie initializers Date: Fri, 6 Jul 2018 10:19:12 -0700 Message-ID: <99f67dc2-0cbf-210a-e5ab-7574a4879d98@intel.com> References: <20180706141259.29295-1-willemdebruijn.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: davem@davemloft.net, Willem de Bruijn To: Willem de Bruijn , netdev@vger.kernel.org Return-path: Received: from mga02.intel.com ([134.134.136.20]:15529 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932834AbeGFRYO (ORCPT ); Fri, 6 Jul 2018 13:24:14 -0400 In-Reply-To: <20180706141259.29295-1-willemdebruijn.kernel@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 07/06/2018 07:12 AM, Willem de Bruijn wrote: > From: Willem de Bruijn > > Recent UDP GSO and SO_TXTIME features added new fields to cookie > structs. > > When adding a field, all sites where a struct is initialized have to > be updated, which is a lot of boilerplate. Alternatively, a field can > be initialized selectively, but this is fragile. I introduced a bug > in udp gso where an uninitialized field was read. See also fix commit > ("9887cba19978 ip: limit use of gso_size to udp"). > > Introduce initializers for structs ipcm(6)_cookie and sockc_cookie. > > patch 1..3 do exactly this. > patch 4..5 make ipv4 and ipv6 handle cookies the same way and > remove some boilerplate in doing so. > patch 6 removes the udp gso branch that needed the above fix Acked-by: Jesus Sanchez-Palencia I've applied this series and tested SO_TXTIME + the etf qdisc and everything is working just fine. Thanks, Jesus > > Willem de Bruijn (6): > ipv4: ipcm_cookie initializers > ipv6: ipcm6_cookie initializer > sock: sockc cookie initializer > ipv6: fold sockcm_cookie into ipcm6_cookie > ip: remove tx_flags from ipcm_cookie and use same logic for v4 and v6 > ip: unconditionally set cork gso_size > > include/net/ip.h | 16 ++++++++++++++- > include/net/ipv6.h | 26 ++++++++++++++++++++---- > include/net/sock.h | 6 ++++++ > include/net/transp_v6.h | 3 +-- > net/ipv4/icmp.c | 11 ++-------- > net/ipv4/ip_output.c | 12 ++++------- > net/ipv4/ping.c | 11 +--------- > net/ipv4/raw.c | 11 +--------- > net/ipv4/tcp.c | 2 +- > net/ipv4/udp.c | 12 +---------- > net/ipv6/datagram.c | 4 ++-- > net/ipv6/icmp.c | 14 ++++--------- > net/ipv6/ip6_flowlabel.c | 3 +-- > net/ipv6/ip6_output.c | 43 +++++++++++++++++----------------------- > net/ipv6/ipv6_sockglue.c | 3 +-- > net/ipv6/ping.c | 7 ++----- > net/ipv6/raw.c | 15 +++++--------- > net/ipv6/udp.c | 14 +++++-------- > net/l2tp/l2tp_ip6.c | 10 +++------- > net/packet/af_packet.c | 9 +++------ > 20 files changed, 98 insertions(+), 134 deletions(-) >