Received: by 10.213.65.68 with SMTP id h4csp296327imn; Fri, 23 Mar 2018 05:00:43 -0700 (PDT) X-Google-Smtp-Source: AG47ELs95u5Wx4lGI4km76Vc/UB1iVzH+vnYkF/f4orv/n6uM7YwlZVG1g74CIv1NrApeTiKtO3f X-Received: by 10.98.133.139 with SMTP id m11mr8088724pfk.49.1521806443393; Fri, 23 Mar 2018 05:00:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521806443; cv=none; d=google.com; s=arc-20160816; b=V5+B6PWxXoRBn0tMHX8DR8Qla8O/Z8NMQU+XjCnbenteuoyoNGap2SzrAcM2XbuFdI N9gUccmDFUipgD3ZRefxaWp0gpD6rAo+BLypTwOluxelyvUYpsMsRmEFYCOjmnuph8B4 NciaJjUcpHowU1YSlhMdnAJ8DmO8s7wXqzrUi/BaJy1yiew7HYX7XyhbiLmBh2D5NEnG lZvdM4Ve9thTO7xNaij6lcqIaw0hAqU3Z9rj00/1BJJS6RZi0hwC5PYr6f+65tCwceKy F2J3ZJpn8/cWqjmEd7i5t6MAxn/+JkRKAex+9aNJbDj7LeVM8gw/FFX46oOULc5LElfU Mzag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=UW58tl9Qe3TA6euiXoSKIyr02FeDjvhjUQb1aYDjjnM=; b=BznV3oJXkBpDDdINhJ6BzgoxNpOCi3nqR2/G31suttRPURIt8Fi7UjHHkS98SQlpnS XO4sF9xOnSm4we9WYYcmPOfAe4oXjn4rEmK1/XlKURo5ywmjbBkLKCUCq3ENuQilUWKJ mz2jMB0+H6Zid7W6iGrWYSq2cgo9QNdmkNhQ2lG+nignRRiDzjQLN1FyNEvPoHXqZYKJ KxShEQYLCgCp3N7ymlcnehdu3lPwKcD0aqxSUFFQT9Yb581N9o9FXDqtlSeMDmmHPi0P yojjFOlpPRsiW7zkbkq92t+lgHMCFG7pnqwsjbrTDHB7phpZMgM6KJJ9aFVm83j13YJz 3LNw== ARC-Authentication-Results: i=1; mx.google.com; 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 d12si5625568pgq.491.2018.03.23.05.00.28; Fri, 23 Mar 2018 05:00:43 -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; 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 S1753600AbeCWKAX (ORCPT + 99 others); Fri, 23 Mar 2018 06:00:23 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:36480 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753573AbeCWKAT (ORCPT ); Fri, 23 Mar 2018 06:00:19 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 3AA7F13A5; Fri, 23 Mar 2018 10:00:19 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Haiyang Zhang , Stephen Hemminger , "David S. Miller" , Sasha Levin Subject: [PATCH 4.14 10/77] hv_netvsc: Fix the receive buffer size limit Date: Fri, 23 Mar 2018 10:53:44 +0100 Message-Id: <20180323094142.900265737@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180323094142.260022880@linuxfoundation.org> References: <20180323094142.260022880@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Haiyang Zhang [ Upstream commit 11b2b653102571ac791885324371d9a1a17b900e ] The max should be 31 MB on host with NVSP version > 2. On legacy hosts (NVSP version <=2) only 15 MB receive buffer is allowed, otherwise the buffer request will be rejected by the host, resulting vNIC not coming up. The NVSP version is only available after negotiation. So, we add the limit checking for legacy hosts in netvsc_init_buf(). Fixes: 5023a6db73196 ("netvsc: increase default receive buffer size") Signed-off-by: Haiyang Zhang Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/hyperv/hyperv_net.h | 6 ++++-- drivers/net/hyperv/netvsc.c | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) --- a/drivers/net/hyperv/hyperv_net.h +++ b/drivers/net/hyperv/hyperv_net.h @@ -635,9 +635,11 @@ struct nvsp_message { #define NETVSC_MTU 65535 #define NETVSC_MTU_MIN ETH_MIN_MTU -#define NETVSC_RECEIVE_BUFFER_SIZE (1024*1024*16) /* 16MB */ -#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY (1024*1024*15) /* 15MB */ +/* Max buffer sizes allowed by a host */ +#define NETVSC_RECEIVE_BUFFER_SIZE (1024 * 1024 * 31) /* 31MB */ +#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY (1024 * 1024 * 15) /* 15MB */ #define NETVSC_SEND_BUFFER_SIZE (1024 * 1024 * 15) /* 15MB */ + #define NETVSC_INVALID_INDEX -1 #define NETVSC_SEND_SECTION_SIZE 6144 --- a/drivers/net/hyperv/netvsc.c +++ b/drivers/net/hyperv/netvsc.c @@ -262,6 +262,11 @@ static int netvsc_init_buf(struct hv_dev buf_size = device_info->recv_sections * device_info->recv_section_size; buf_size = roundup(buf_size, PAGE_SIZE); + /* Legacy hosts only allow smaller receive buffer */ + if (net_device->nvsp_version <= NVSP_PROTOCOL_VERSION_2) + buf_size = min_t(unsigned int, buf_size, + NETVSC_RECEIVE_BUFFER_SIZE_LEGACY); + net_device->recv_buf = vzalloc(buf_size); if (!net_device->recv_buf) { netdev_err(ndev,