From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3934C3F2D1 for ; Thu, 5 Mar 2020 05:16:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id ACF04208CD for ; Thu, 5 Mar 2020 05:16:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583385405; bh=Pa/VYkwjYDnjD2Oq0ZIuiNy5ba+xHbTXO1VqDHP+bug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ZQdiIIkZN3164EfI0ELYFX7abBLzB3Jw9kFc2M6YeJnoUKj3j0ZyMfLztGB0tzCk9 sDBbLlPJYnpWjVmksFzRR0iZTIy5lFzck9X7nU3rjgULvvSSgMHky2hRMHoq+956FK Eunnisdz8e0tto+PB9IhbFKdvF3gj9AcGke6cJ9M= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726211AbgCEFQo (ORCPT ); Thu, 5 Mar 2020 00:16:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:56946 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726178AbgCEFQm (ORCPT ); Thu, 5 Mar 2020 00:16:42 -0500 Received: from kicinski-fedora-PC1C0HJN.thefacebook.com (unknown [163.114.132.128]) (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 ED55E22522; Thu, 5 Mar 2020 05:16:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583385401; bh=Pa/VYkwjYDnjD2Oq0ZIuiNy5ba+xHbTXO1VqDHP+bug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HIjx0Hh0j/d0caoza2ZSK0r5XW1oQSm+sQRmSK7/l2xbAMaPNJrDQbK8rcizKI9Mr 8+xAUhX0oTnHDkA7Oo8U9Z516Sp5BQsaPbVQ695nUFQFnghqqeEz270hKLG9O17nLw tZWDtO6tbKB5Wx08KNGooB/qDzEI+sOdOoxKy+gY= From: Jakub Kicinski To: davem@davemloft.net Cc: andrew@lunn.ch, ecree@solarflare.com, mkubecek@suse.cz, thomas.lendacky@amd.com, benve@cisco.com, _govind@gmx.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, joabreu@synopsys.com, snelson@pensando.io, yisen.zhuang@huawei.com, salil.mehta@huawei.com, jeffrey.t.kirsher@intel.com, jacob.e.keller@intel.com, alexander.h.duyck@linux.intel.com, michael.chan@broadcom.com, saeedm@mellanox.com, leon@kernel.org, netdev@vger.kernel.org, Jakub Kicinski Subject: [PATCH net-next v3 12/12] virtio_net: reject unsupported coalescing params Date: Wed, 4 Mar 2020 21:15:42 -0800 Message-Id: <20200305051542.991898-13-kuba@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200305051542.991898-1-kuba@kernel.org> References: <20200305051542.991898-1-kuba@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Set ethtool_ops->supported_coalesce_params to let the core reject unsupported coalescing parameters. This driver correctly rejects all unsupported parameters. As a side effect of these changes the error code for unsupported params changes from EINVAL to EOPNOTSUPP. v2: correctly handle rx-frames (and adjust the commit msg) v3: adjust commit message for new error code and member name Signed-off-by: Jakub Kicinski --- drivers/net/virtio_net.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 84c0d9581f93..11f722460513 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2202,23 +2202,14 @@ static int virtnet_get_link_ksettings(struct net_device *dev, static int virtnet_set_coalesce(struct net_device *dev, struct ethtool_coalesce *ec) { - struct ethtool_coalesce ec_default = { - .cmd = ETHTOOL_SCOALESCE, - .rx_max_coalesced_frames = 1, - }; struct virtnet_info *vi = netdev_priv(dev); int i, napi_weight; - if (ec->tx_max_coalesced_frames > 1) + if (ec->tx_max_coalesced_frames > 1 || + ec->rx_max_coalesced_frames != 1) return -EINVAL; - ec_default.tx_max_coalesced_frames = ec->tx_max_coalesced_frames; napi_weight = ec->tx_max_coalesced_frames ? NAPI_POLL_WEIGHT : 0; - - /* disallow changes to fields not explicitly tested above */ - if (memcmp(ec, &ec_default, sizeof(ec_default))) - return -EINVAL; - if (napi_weight ^ vi->sq[0].napi.weight) { if (dev->flags & IFF_UP) return -EBUSY; @@ -2273,6 +2264,7 @@ static void virtnet_update_settings(struct virtnet_info *vi) } static const struct ethtool_ops virtnet_ethtool_ops = { + .supported_coalesce_params = ETHTOOL_COALESCE_MAX_FRAMES, .get_drvinfo = virtnet_get_drvinfo, .get_link = ethtool_op_get_link, .get_ringparam = virtnet_get_ringparam, -- 2.24.1