From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from charlotte.tuxdriver.com ([70.61.120.58]:57802 "EHLO smtp.tuxdriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1033798AbeCASKD (ORCPT ); Thu, 1 Mar 2018 13:10:03 -0500 Date: Thu, 1 Mar 2018 13:09:19 -0500 From: Neil Horman To: Xin Long Cc: network dev , linux-sctp@vger.kernel.org, Marcelo Ricardo Leitner , davem@davemloft.net Subject: Re: [PATCH net-next 0/9] sctp: clean up sctp_sendmsg Message-ID: <20180301180919.GA11450@hmswarspite.think-freely.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: On Thu, Mar 01, 2018 at 11:05:09PM +0800, Xin Long wrote: > This cleanup mostly does three things: > > - extract some codes into functions to make sendmsg more readable. > > - tidy up some codes to avoid the unnecessary checks. > > - adjust some logic so that it will be easier to add the send flags > and cmsgs features that I will post after this. > > To make it easy to review and to check if the code is compatible with > before, this patchset is to do it step by step in 9 patches. > > NOTE: > There will be a conflict when merging > Commit 2277c7cd75e3 ("sctp: Add LSM hooks") from selinux tree, > the solution is to: > > 1. remove all the lines in [B]: > > <<<<<<< HEAD > [A] > ======= > [B] > >>>>>>> 2277c7c... sctp: Add LSM hooks > > 2. and apply the following diff-output: > > diff --git a/net/sctp/socket.c b/net/sctp/socket.c > index 980621e..d6803c8 100644 > --- a/net/sctp/socket.c > +++ b/net/sctp/socket.c > @@ -1686,6 +1686,7 @@ static int sctp_sendmsg_new_asoc(struct sock *sk, __u16 sflags, > struct net *net = sock_net(sk); > struct sctp_association *asoc; > enum sctp_scope scope; > + struct sctp_af *af; > int err = -EINVAL; > > *tp = NULL; > @@ -1711,6 +1712,22 @@ static int sctp_sendmsg_new_asoc(struct sock *sk, __u16 sflags, > > scope = sctp_scope(daddr); > > + /* Label connection socket for first association 1-to-many > + * style for client sequence socket()->sendmsg(). This > + * needs to be done before sctp_assoc_add_peer() as that will > + * set up the initial packet that needs to account for any > + * security ip options (CIPSO/CALIPSO) added to the packet. > + */ > + af = sctp_get_af_specific(daddr->sa.sa_family); > + if (!af) > + return -EINVAL; > + > + err = security_sctp_bind_connect(sk, SCTP_SENDMSG_CONNECT, > + (struct sockaddr *)daddr, > + af->sockaddr_len); > + if (err < 0) > + return err; > + > asoc = sctp_association_new(ep, sk, scope, GFP_KERNEL); > if (!asoc) > return -ENOMEM; > > Xin Long (9): > sctp: factor out sctp_sendmsg_to_asoc from sctp_sendmsg > sctp: factor out sctp_sendmsg_new_asoc from sctp_sendmsg > sctp: factor out sctp_sendmsg_check_sflags from sctp_sendmsg > sctp: factor out sctp_sendmsg_get_daddr from sctp_sendmsg > sctp: factor out sctp_sendmsg_parse from sctp_sendmsg > sctp: factor out sctp_sendmsg_update_sinfo from sctp_sendmsg > sctp: remove the unnecessary transport looking up from sctp_sendmsg > sctp: improve some variables in sctp_sendmsg > sctp: adjust some codes in a better order in sctp_sendmsg > > net/sctp/socket.c | 638 +++++++++++++++++++++++------------------------------- > 1 file changed, 274 insertions(+), 364 deletions(-) > > -- > 2.1.0 > > Series Acked-by: Neil Horman