Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4799965yba; Tue, 30 Apr 2019 04:42:27 -0700 (PDT) X-Google-Smtp-Source: APXvYqxWP54fE5KHF7S7Cw1GnaCofnbmcVriuw83dXHS2PZ4qQ3MiqyRk2VCwDis9jovZ/xk/EMF X-Received: by 2002:aa7:80c6:: with SMTP id a6mr5761637pfn.114.1556624547789; Tue, 30 Apr 2019 04:42:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556624547; cv=none; d=google.com; s=arc-20160816; b=eoEji+aL8GtYnFDIvNTdv0N+T5E8atN1r25WJJEYsZhpHteW3ew2m9yAfNxxRzU9tv kV8ZOCvwaRJVjgKULrOODc594sxkAHPVm35B4IAGt0tlwZvbf1CoZoD/j2LxZeIKiYie 21vnlEWghDkDmWnYmIHH8FnupxCeLjzIbqA97TwMILgTZRVXMDCMqGz67/InfI0ejQ85 7CxR7ehSwmxsdPp344g/taxtLWP1JbjbEQ1+r0In8Pi4Jk2WNVaGvHs2PX8TUytuQbSM JQIX3tu6P2LQhYPfb5IQ2PMLjZnKf9gQg5Qoy/+GHgbB2fmojE+su5sWwTAfBkKIsu+c 8MJA== 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=MeQHbeHxyQRoucialfJw1EqLdEZOIJyiTaMfQhArQ+U=; b=Ql7PJgKyt2RPU4a//Mw4pO/N3GZDsI4247/HOHILkO10oxtkassBQOGdIHiQZf86bu zdkNONhQCkUU+R63FWwu6yF+V+72WpbcpjqTKLoNjH9MjXfX5Fipc+hNI2spD5zTTM7V fUKfiPxpDsOLX2sFB4F5zgTgEqVkMLfLlarUd5tG0fqo9WM6ufjT8g6Y8DHXO8tECmOO ILPoZOmKPdGSKdu6Zc+RgKvPSNcz45iDo5yTjnBej0uAEsTDQSQBE5RxwfC68ZUWAm9u eEvxEqwWJAuLvaCQzmhiHdh97YxpARx2YMBGXrxIdp4PugcyNr20XUzNrwtG+FDFQLx1 LSQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=yoT7bVQB; 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 w34si31524693pla.250.2019.04.30.04.42.12; Tue, 30 Apr 2019 04:42:27 -0700 (PDT) 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=yoT7bVQB; 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 S1728560AbfD3Lkm (ORCPT + 99 others); Tue, 30 Apr 2019 07:40:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:47276 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728546AbfD3Lkk (ORCPT ); Tue, 30 Apr 2019 07:40:40 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 D549121670; Tue, 30 Apr 2019 11:40:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556624439; bh=lFqXr5CILN0lHp0B8rVX7BGpKvw+oXbCxR3gM7v0pj4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yoT7bVQBcZRz0ZeF5jlx2D+IO5DdzhcDizCOwajg56qPru45fOYdugzkyYycEyNMy iY9wsnsaxYoAPa8lkLeX+BQaaTKrbqQFZvcSjFRQfxW3h8dmAoC40PJqQ7ob88kwGp p7I/akjpJPOoj9+n8c8h4167IBj9F8aQUst0jpd4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, ZhangXiaoxu , "David S. Miller" Subject: [PATCH 4.9 36/41] ipv4: set the tcp_min_rtt_wlen range from 0 to one day Date: Tue, 30 Apr 2019 13:38:47 +0200 Message-Id: <20190430113533.312468319@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190430113524.451237916@linuxfoundation.org> References: <20190430113524.451237916@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: ZhangXiaoxu [ Upstream commit 19fad20d15a6494f47f85d869f00b11343ee5c78 ] There is a UBSAN report as below: UBSAN: Undefined behaviour in net/ipv4/tcp_input.c:2877:56 signed integer overflow: 2147483647 * 1000 cannot be represented in type 'int' CPU: 3 PID: 0 Comm: swapper/3 Not tainted 5.1.0-rc4-00058-g582549e #1 Call Trace: dump_stack+0x8c/0xba ubsan_epilogue+0x11/0x60 handle_overflow+0x12d/0x170 ? ttwu_do_wakeup+0x21/0x320 __ubsan_handle_mul_overflow+0x12/0x20 tcp_ack_update_rtt+0x76c/0x780 tcp_clean_rtx_queue+0x499/0x14d0 tcp_ack+0x69e/0x1240 ? __wake_up_sync_key+0x2c/0x50 ? update_group_capacity+0x50/0x680 tcp_rcv_established+0x4e2/0xe10 tcp_v4_do_rcv+0x22b/0x420 tcp_v4_rcv+0xfe8/0x1190 ip_protocol_deliver_rcu+0x36/0x180 ip_local_deliver+0x15b/0x1a0 ip_rcv+0xac/0xd0 __netif_receive_skb_one_core+0x7f/0xb0 __netif_receive_skb+0x33/0xc0 netif_receive_skb_internal+0x84/0x1c0 napi_gro_receive+0x2a0/0x300 receive_buf+0x3d4/0x2350 ? detach_buf_split+0x159/0x390 virtnet_poll+0x198/0x840 ? reweight_entity+0x243/0x4b0 net_rx_action+0x25c/0x770 __do_softirq+0x19b/0x66d irq_exit+0x1eb/0x230 do_IRQ+0x7a/0x150 common_interrupt+0xf/0xf It can be reproduced by: echo 2147483647 > /proc/sys/net/ipv4/tcp_min_rtt_wlen Fixes: f672258391b42 ("tcp: track min RTT using windowed min-filter") Signed-off-by: ZhangXiaoxu Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- Documentation/networking/ip-sysctl.txt | 1 + net/ipv4/sysctl_net_ipv4.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt @@ -405,6 +405,7 @@ tcp_min_rtt_wlen - INTEGER minimum RTT when it is moved to a longer path (e.g., due to traffic engineering). A longer window makes the filter more resistant to RTT inflations such as transient congestion. The unit is seconds. + Possible values: 0 - 86400 (1 day) Default: 300 tcp_moderate_rcvbuf - BOOLEAN --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@ -41,6 +41,7 @@ static int tcp_syn_retries_min = 1; static int tcp_syn_retries_max = MAX_TCP_SYNCNT; static int ip_ping_group_range_min[] = { 0, 0 }; static int ip_ping_group_range_max[] = { GID_T_MAX, GID_T_MAX }; +static int one_day_secs = 24 * 3600; /* Update system visible IP port range */ static void set_local_port_range(struct net *net, int range[2]) @@ -460,7 +461,9 @@ static struct ctl_table ipv4_table[] = { .data = &sysctl_tcp_min_rtt_wlen, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &one_day_secs }, { .procname = "tcp_low_latency",