mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: David Howells <dhowells@redhat.com>, netdev@vger.kernel.org
Cc: linux-afs@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next 07/15] rxrpc: Fix accidental cancellation of scheduled resend by ACK parser
Date: Fri, 23 Sep 2016 21:02:36 +0300	[thread overview]
Message-ID: <c868ca22-fed0-67f7-7471-165b3e5a9edd@cogentembedded.com> (raw)
In-Reply-To: <147464376586.5090.14901936645927156006.stgit@warthog.procyon.org.uk>

Hello.

On 09/23/2016 06:16 PM, David Howells wrote:

> When rxrpc_input_soft_acks() is parsing the soft-ACKs from an ACK packet,
> it updates the Tx packet annotations in the annotation buffer.  If a
> soft-ACK is an ACK, then we overwrite unack'd, nak'd or to-be-retransmitted
> states and that is fine; but if the soft-ACK is an NACK, we overwrite the
> to-be-retransmitted with a nak - which isn't.
>
> Instead, we need to let any scheduled retransmission stand if the packet
> was NAK'd.
>
> Note that we don't reissue a resend if the annotation is in the
> to-be-retransmitted state because someone else must've scheduled the
> resend already.
>
> Signed-off-by: David Howells <dhowells@redhat.com>
> ---
>
>  net/rxrpc/input.c |    2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c
> index 06027b6d9c19..d3d69ab1f0a1 100644
> --- a/net/rxrpc/input.c
> +++ b/net/rxrpc/input.c
> @@ -479,6 +479,8 @@ static void rxrpc_input_soft_acks(struct rxrpc_call *call, u8 *acks,
>  		case RXRPC_ACK_TYPE_NACK:
>  			if (anno_type == RXRPC_TX_ANNO_NAK)
>  				continue;
> +			if (anno_type == RXRPC_TX_ANNO_RETRANS)
> +				continue;

    Why not fold the above 2 *if*s together? Or use *else if* at least?

MBR, Sergei

  reply	other threads:[~2016-09-23 18:02 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-23 15:15 [PATCH net-next 00/15] rxrpc: Bug fixes and tracepoints David Howells
2016-09-23 15:15 ` [PATCH net-next 01/15] rxrpc: Preset timestamp on Tx sk_buffs David Howells
2016-09-23 15:15 ` [PATCH net-next 02/15] rxrpc: Don't send an ACK at the end of service call response transmission David Howells
2016-09-23 15:15 ` [PATCH net-next 03/15] rxrpc: Make sure sendmsg() is woken on call completion David Howells
2016-09-23 15:15 ` [PATCH net-next 04/15] rxrpc: Should be using ktime_add_ms() not ktime_add_ns() David Howells
2016-09-23 15:15 ` [PATCH net-next 05/15] rxrpc: Use before_eq() and friends to compare serial numbers David Howells
2016-09-23 15:15 ` [PATCH net-next 06/15] rxrpc: Need to start the resend timer on initial transmission David Howells
2016-09-23 15:16 ` [PATCH net-next 07/15] rxrpc: Fix accidental cancellation of scheduled resend by ACK parser David Howells
2016-09-23 18:02   ` Sergei Shtylyov [this message]
2016-09-23 18:20   ` David Howells
2016-09-23 15:16 ` [PATCH net-next 08/15] rxrpc: Fix call timer David Howells
2016-09-23 18:04   ` Sergei Shtylyov
2016-09-23 18:21   ` David Howells
2016-09-23 15:16 ` [PATCH net-next 09/15] rxrpc: Pass the last Tx packet marker in the annotation buffer David Howells
2016-09-23 15:16 ` [PATCH net-next 10/15] rxrpc: Don't call the tx_ack tracepoint if don't generate an ACK David Howells
2016-09-23 15:16 ` [PATCH net-next 11/15] rxrpc: Add a tracepoint for the call timer David Howells
2016-09-23 15:16 ` [PATCH net-next 12/15] rxrpc: Add data Tx tracepoint and adjust Tx ACK tracepoint David Howells
2016-09-23 15:16 ` [PATCH net-next 13/15] rxrpc: Add a tracepoint to log injected Rx packet loss David Howells
2016-09-23 15:16 ` [PATCH net-next 14/15] rxrpc: Add tracepoint for ACK proposal David Howells
2016-09-23 15:17 ` [PATCH net-next 15/15] rxrpc: Add a tracepoint to log which packets will be retransmitted David Howells
2016-09-24 12:24 ` [PATCH net-next 00/15] rxrpc: Bug fixes and tracepoints 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=c868ca22-fed0-67f7-7471-165b3e5a9edd@cogentembedded.com \
    --to=sergei.shtylyov@cogentembedded.com \
    --cc=dhowells@redhat.com \
    --cc=linux-afs@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /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

all inboxes | Powered by JetHome®