Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3021792ybt; Mon, 29 Jun 2020 13:08:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxzuxJeMoAH5iN0SXldB25Xj5y541cCmbSGsgF4eIRtpDgCCdtG5KUZjYObqQijbLPVxk53 X-Received: by 2002:aa7:c31a:: with SMTP id l26mr18756951edq.61.1593461298394; Mon, 29 Jun 2020 13:08:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593461298; cv=none; d=google.com; s=arc-20160816; b=tUjWf6My7T9Cw/0h09QoA8OeAdEE/XVog/OYFQhz30KNaEyI62eTt3AdAPsvYMEi8Q VhCcJMWpgN9rv1VQsnwfV0t051AHSuxQv+fVlrCRKTPGH7GAJvehFy0coJnFckyeMBh5 mc95dhCIc0Tb7/VRkd/cSatlnNHqgumBADv69mmDUBPc5L2seunFeArqFwOhwguSierl anppO74coePFosmJEHQY68BNCoC1EQpVP9nLc1p8FOfGT5pD82zIuzKuS+3ep5saETP8 0EAYqGuB+qdxbPNCzeQXUiGD3S6x13hPmlIYVMQBKKBLZfiQZ5LlaYL4QnxecSRlJUOB jcIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fTw+uLrhmo3NANElMlj/Og+g3PpHjCJ0Zkg9b7O8/gw=; b=K1kjNM+oibT/1KSqzYHmlRkZjtlwV8LtnITOa730MrHStBQncFGgEe0quHSmIM4fgK hDBqUq0zRGAhCuxStG/hVx0RJL8JkXxKUhk2OpOwFVkKQ+9uI5oPGWxiNQShryvXFI+a o1jUWEvYrduhH4qevclgLqwnq14CDtC+r1OCBb8lR/AZ93sVr+O5pQTdBmA8svsCBP5T jfCZM5XATqSrjHmnKhIFGHv0kdtvwRKcU1abZCWMD7qfIP20/v+fRhlkskc6mB7SKeuZ 1oQySAHFBwi5XYA/vP+FOeWNP9MKTzgBAIfvEmQgm2bb9Lu1tTcHVaBGrg+WCagxOgtA WX0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Px2Vnc3f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f5si327903edt.71.2020.06.29.13.07.55; Mon, 29 Jun 2020 13:08:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Px2Vnc3f; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388340AbgF2UF3 (ORCPT + 99 others); Mon, 29 Jun 2020 16:05:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:40596 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732973AbgF2Ta2 (ORCPT ); Mon, 29 Jun 2020 15:30:28 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BE9332525A; Mon, 29 Jun 2020 15:36:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593444971; bh=j1YDaC6IH6gS+KiXpMItb5OhVrH4IUnNqrmPXW67plI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Px2Vnc3foAs8hBxTcuh8MIcESWZxFzzbddRxyRC4ALjEmwWuaIYNsOWOFy79zmdLS gP0dbe4pXLLQGD3lb3bLHFQ0ZC+425HKHwJLGwl3xeFFrin7ivCEpA412NvGgRSNT4 koWnHil+A7FN89ei7M15TjWu1xPCmCroKnUXS48o= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: David Howells , Sasha Levin Subject: [PATCH 4.19 070/131] rxrpc: Fix handling of rwind from an ACK packet Date: Mon, 29 Jun 2020 11:34:01 -0400 Message-Id: <20200629153502.2494656-71-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629153502.2494656-1-sashal@kernel.org> References: <20200629153502.2494656-1-sashal@kernel.org> MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.19.131-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-4.19.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 4.19.131-rc1 X-KernelTest-Deadline: 2020-07-01T15:34+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Howells [ Upstream commit a2ad7c21ad8cf1ce4ad65e13df1c2a1c29b38ac5 ] The handling of the receive window size (rwind) from a received ACK packet is not correct. The rxrpc_input_ackinfo() function currently checks the current Tx window size against the rwind from the ACK to see if it has changed, but then limits the rwind size before storing it in the tx_winsize member and, if it increased, wake up the transmitting process. This means that if rwind > RXRPC_RXTX_BUFF_SIZE - 1, this path will always be followed. Fix this by limiting rwind before we compare it to tx_winsize. The effect of this can be seen by enabling the rxrpc_rx_rwind_change tracepoint. Fixes: 702f2ac87a9a ("rxrpc: Wake up the transmitter if Rx window size increases on the peer") Signed-off-by: David Howells Signed-off-by: Sasha Levin --- net/rxrpc/input.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c index e65b230fce4c4..58bd558a277a4 100644 --- a/net/rxrpc/input.c +++ b/net/rxrpc/input.c @@ -735,13 +735,12 @@ static void rxrpc_input_ackinfo(struct rxrpc_call *call, struct sk_buff *skb, ntohl(ackinfo->rxMTU), ntohl(ackinfo->maxMTU), rwind, ntohl(ackinfo->jumbo_max)); + if (rwind > RXRPC_RXTX_BUFF_SIZE - 1) + rwind = RXRPC_RXTX_BUFF_SIZE - 1; if (call->tx_winsize != rwind) { - if (rwind > RXRPC_RXTX_BUFF_SIZE - 1) - rwind = RXRPC_RXTX_BUFF_SIZE - 1; if (rwind > call->tx_winsize) wake = true; - trace_rxrpc_rx_rwind_change(call, sp->hdr.serial, - ntohl(ackinfo->rwind), wake); + trace_rxrpc_rx_rwind_change(call, sp->hdr.serial, rwind, wake); call->tx_winsize = rwind; } -- 2.25.1