Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3713851ybv; Mon, 10 Feb 2020 05:10:58 -0800 (PST) X-Google-Smtp-Source: APXvYqwRwqg7+p8L4tpw4qDkWeaog7l6jP7bNtqZLy/LMaK5U7m30TEeId8H5RKyr7WDzY9sHK5q X-Received: by 2002:a05:6830:606:: with SMTP id w6mr1001233oti.323.1581340257922; Mon, 10 Feb 2020 05:10:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581340257; cv=none; d=google.com; s=arc-20160816; b=YJVT+XkKRC2dAr4012OswpAoHJAiiVlJkTpMwL0gJ2fm83GNr1yUiwYWdQ4GSPo7k4 uy4L+3VveGQZbFe5dKwZ6aZcbigX0WgT2e7EcqMY0hCnXVv2ZI8HdvYbH9OLoUaC8iEA jwjTo+e2VoWSiM+y2gJT04ZsDil6lAK1A7lwADZuvN2ttilO1DaGAPqwZsjJycuSS/7k gK8HzBFJXZMdg6zLo6QSmaZmgHxzBke/Ok0bSQ/oZPhazJ9oL3GBiQjK6feNIX911P1U kcN9xNgnftVVB7XH8kt5+9ceSKhRvSS1sW9fZXbtZ9N+c7CIq+l4j6Gv3ntMR4WrNWI4 VUcw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Utu+MuXvyWazO+cljo687ZGvWCNct8ygY8Cu7ajjEcE=; b=D+TBV1IYuiE0CuRL2OlrvG4djFMFwMmrAExa4xZymlWEL4CZlvx1jdU3E56ui/sl11 Ows2viUNEb1/oIbH4zOt+Fzv76SqxmkUUQHPJUtI9LVkDePuJ+reLxAQoElIMeYnGJEg ZGzZEJT1J1k1zqzr477+e/vWxMBh9mVwWY+qsSoEbQ+ER0Gk0Al5X6AA1tmR9BKyZI8Y TtMUzt5X/33VvHYATPYf1W8/D4M+NnEQJwRXXaiVvMesPdwhpK+9YWVFnvXSarLoIFTD F/T1wA4e+UqZvjlSDgf5TIx4NdXwDnXu3URgbTuGZN7UHlEProk+q7ise/lE/mRG8OMi IMfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=greybt3Y; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u12si166088otq.51.2020.02.10.05.10.45; Mon, 10 Feb 2020 05:10:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=greybt3Y; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729507AbgBJNJe (ORCPT + 99 others); Mon, 10 Feb 2020 08:09:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:36808 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729393AbgBJMjS (ORCPT ); Mon, 10 Feb 2020 07:39:18 -0500 Received: from localhost (unknown [209.37.97.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4BBC52465D; Mon, 10 Feb 2020 12:39:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581338358; bh=RFgo86AgtcQiK8ya9+btawEpmHzxa7nsZHx6nqzGrKM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=greybt3YYMszq1/8iS0mjYnhr+kZigRgIrtdvAtoA9KJGNwhmzpg8hPcaPDVBOFHC Qhm+vge6QiIfzkU2t+7CyxmRtmFStbCHiitPpGOnX7Q2MbN4JvhfH7jwl08kNyime3 f5LXlUJs/eU9NL6pw4aU0qE/ZIQGFAoa/rbHdnj4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Howells Subject: [PATCH 5.5 017/367] rxrpc: Fix insufficient receive notification generation Date: Mon, 10 Feb 2020 04:28:50 -0800 Message-Id: <20200210122425.460330074@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210122423.695146547@linuxfoundation.org> References: <20200210122423.695146547@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 f71dbf2fb28489a79bde0dca1c8adfb9cdb20a6b ] In rxrpc_input_data(), rxrpc_notify_socket() is called if the base sequence number of the packet is immediately following the hard-ack point at the end of the function. However, this isn't sufficient, since the recvmsg side may have been advancing the window and then overrun the position in which we're adding - at which point rx_hard_ack >= seq0 and no notification is generated. Fix this by always generating a notification at the end of the input function. Without this, a long call may stall, possibly indefinitely. Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code") Signed-off-by: David Howells Signed-off-by: Greg Kroah-Hartman --- net/rxrpc/input.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/net/rxrpc/input.c +++ b/net/rxrpc/input.c @@ -599,10 +599,8 @@ ack: false, true, rxrpc_propose_ack_input_data); - if (seq0 == READ_ONCE(call->rx_hard_ack) + 1) { - trace_rxrpc_notify_socket(call->debug_id, serial); - rxrpc_notify_socket(call); - } + trace_rxrpc_notify_socket(call->debug_id, serial); + rxrpc_notify_socket(call); unlock: spin_unlock(&call->input_lock);