From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: Dan Carpenter <error27@gmail.com>
Cc: Sridhar Samudrala <sri@us.ibm.com>,
"David S. Miller" <davem@davemloft.net>,
Wei Yongjun <yjwei@cn.fujitsu.com>,
Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>,
linux-sctp@vger.kernel.org, netdev@vger.kernel.org,
kernel-janitors@vger.kernel.org
Subject: Re: [patch] sctp: fix test for end of loop
Date: Wed, 08 Sep 2010 20:26:45 +0000 [thread overview]
Message-ID: <4C87F185.3070402@hp.com> (raw)
In-Reply-To: <20100906122344.GA2764@bicker>
On 09/06/2010 08:26 AM, Dan Carpenter wrote:
> "new_addr" is the list cursor here and it's always non-NULL.
>
> We're trying to test if we exited because the loop ended or we hit the
> break statement. Really testing !found is enough so long as
> "new_asoc->peer.transport_addr_list" is not empty and I believe it never
> is empty at this point. So this is never really a bug with the current
> code.
>
> Signed-off-by: Dan Carpenter <error27@gmail.com>
> ---
> Compile tested only.
>
> diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
> index 24b2cd5..cb76d2e 100644
> --- a/net/sctp/sm_statefuns.c
> +++ b/net/sctp/sm_statefuns.c
> @@ -1254,7 +1254,6 @@ static int sctp_sf_check_restart_addrs(const struct sctp_association *new_asoc,
> /* Search through all current addresses and make sure
> * we aren't adding any new ones.
> */
> - new_addr = NULL;
> found = 0;
>
> list_for_each_entry(new_addr, &new_asoc->peer.transport_addr_list,
> @@ -1273,7 +1272,8 @@ static int sctp_sf_check_restart_addrs(const struct sctp_association *new_asoc,
> }
>
> /* If a new address was added, ABORT the sender. */
> - if (!found && new_addr) {
> + if (!found &&
> + &new_addr->transports != &new_asoc->peer.transport_addr_list) {
I am really not fond of this code. I think it would be better to move
this abort code into the loop and break out once things are aborted.
This way we can get rid of the whole found check after the outer loop happens
and it cleans things up nicely.
-vlad
> sctp_sf_send_restart_abort(&new_addr->ipaddr, init, commands);
> }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2010-09-08 20:26 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-06 12:26 [patch] sctp: fix test for end of loop Dan Carpenter
2010-09-07 8:46 ` Shan Wei
2010-09-07 11:31 ` Dan Carpenter
2010-09-08 20:24 ` David Miller
2010-09-08 20:34 ` Vlad Yasevich
2010-09-08 20:37 ` David Miller
2010-09-08 21:04 ` [Alternative PATCH net-next] " Joe Perches
2010-09-09 13:57 ` Vlad Yasevich
2010-09-09 22:00 ` David Miller
2010-09-08 20:26 ` Vlad Yasevich [this message]
2010-09-08 20:30 ` [patch] " David Miller
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=4C87F185.3070402@hp.com \
--to=vladislav.yasevich@hp.com \
--cc=cascardo@holoscopio.com \
--cc=davem@davemloft.net \
--cc=error27@gmail.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-sctp@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sri@us.ibm.com \
--cc=yjwei@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox