From patchwork Thu Feb 28 21:54:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049791 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="twGE1dIs"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449RDB517cz9s21 for ; Fri, 1 Mar 2019 08:54:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732592AbfB1Vys (ORCPT ); Thu, 28 Feb 2019 16:54:48 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:37220 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726087AbfB1Vyr (ORCPT ); Thu, 28 Feb 2019 16:54:47 -0500 Received: by mail-pl1-f196.google.com with SMTP id q3so10390664pll.4 for ; Thu, 28 Feb 2019 13:54:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wSnifz6wY42izTva3h55UdTQzyizkDrbVS8zPJ8WaH4=; b=twGE1dIs5sS9vOFy6eqAKsHUg1Z7oDggmQWJvaizZXUNKDVqVuvojuquNIJ/yj/soq QtToGu8OHpwuG6avD5dKupqi8MPtVrwxnMP2HPxtkEGvzZDQnb2M3Za7BoaySv4Qv4nc 4IlqoZ7T7P28GTCpLSk8SwzPl9JrUECxk1RR/Xuv1rgpS0xnDlLJHBgk0RICRK9mKETg 3wTa1398ArashkoX2/EMJWiHag+l0FnfoziaoEEjy+jcMcBbSMK4aU2CAfJftdpjZZTP w4l408f26dhuqzz0eYiBMYt/uG6hK9ERAuS9DJ2fH4I/FpmM4gmhoIRqmha5G2c2Ghky MS0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wSnifz6wY42izTva3h55UdTQzyizkDrbVS8zPJ8WaH4=; b=pY5YlMgNrZvm9dsvVXK8sL3WfParNJzkPG/yLip2BcNAAWBH/xWEQBlXpYyLLv20ko AOI9u87vr30KSZJjNUfN6apwM5Ds0cRL4jXHIrIwlFRrYOa2OVrnVmp5vRiwJn3LaGQE pRjhYaaZlUfQHmBadJTU1ppe7kqgRnLjle8qRRGRnE78IXmHUF4eEvUq9yDGOWCKSIjX 68DERj+VSegyVMDGRomk+UqgK3s9QbLIO4wxumbpXjL8DSGIFJz1JjVqWSMTyZJMkgWT at4jNFb8EZXAFyxo9a125au0qXAg9T1FfG9KwQYPLf4AVzZe8KCY0szGd4R5uQjhrj+e /8kQ== X-Gm-Message-State: APjAAAXOMe+r/ImXu/v83R5QaupH7LiO/BxFEMkWlIJGaNQ7ipt3QMIW Els0bOgcgrDHNEMqwqZqn3DpepS4KLc= X-Google-Smtp-Source: APXvYqy1pcdZRrScf3/lUiR4ppHiFt6J8jia2eeWWoRcXKV906zHl6XNE75V0bynWiLE/KpnxDvoog== X-Received: by 2002:a17:902:4225:: with SMTP id g34mr1722634pld.152.1551390886444; Thu, 28 Feb 2019 13:54:46 -0800 (PST) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id b138sm40078643pfb.48.2019.02.28.13.54.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:54:44 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC v2 1/6] bnxt: use extack for xdp error messages Date: Thu, 28 Feb 2019 13:54:36 -0800 Message-Id: <20190228215441.28275-2-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228215441.28275-1-stephen@networkplumber.org> References: <20190228215441.28275-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org XDP has a netlink error message buffer available that should be used for errors instead of console logging. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c index 0184ef6f05a7..a9f6a3a66b4c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c @@ -150,19 +150,21 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons, } /* Under rtnl_lock */ -static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog) +static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { struct net_device *dev = bp->dev; int tx_xdp = 0, rc, tc; struct bpf_prog *old; if (prog && bp->dev->mtu > BNXT_MAX_PAGE_MODE_MTU) { - netdev_warn(dev, "MTU %d larger than largest XDP supported MTU %d.\n", - bp->dev->mtu, BNXT_MAX_PAGE_MODE_MTU); + NL_SET_ERR_MSG_MOD(extack, + "MTU larger than largest XDP supported MTU"); return -EOPNOTSUPP; } if (!(bp->flags & BNXT_FLAG_SHARED_RINGS)) { - netdev_warn(dev, "ethtool rx/tx channels must be combined to support XDP.\n"); + NL_SET_ERR_MSG_MOD(extack, + "ethtool rx/tx channels must be combined to support XDP"); return -EOPNOTSUPP; } if (prog) @@ -174,7 +176,8 @@ static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog) rc = bnxt_check_rings(bp, bp->tx_nr_rings_per_tc, bp->rx_nr_rings, true, tc, tx_xdp); if (rc) { - netdev_warn(dev, "Unable to reserve enough TX rings to support XDP.\n"); + NL_SET_ERR_MSG_MOD(extack, + "Unable to reserve enough TX rings to support XDP.\n"); return rc; } if (netif_running(dev)) @@ -211,19 +214,16 @@ static int bnxt_xdp_set(struct bnxt *bp, struct bpf_prog *prog) int bnxt_xdp(struct net_device *dev, struct netdev_bpf *xdp) { struct bnxt *bp = netdev_priv(dev); - int rc; switch (xdp->command) { case XDP_SETUP_PROG: - rc = bnxt_xdp_set(bp, xdp->prog); - break; + return bnxt_xdp_set(bp, xdp->prog, xdp->extack); + case XDP_QUERY_PROG: xdp->prog_id = bp->xdp_prog ? bp->xdp_prog->aux->id : 0; - rc = 0; - break; + return 0; default: - rc = -EINVAL; - break; + NL_SET_ERR_MSG_MOD(xdp->extack, "Unsupported XDP command"); + return -EINVAL; } - return rc; } From patchwork Thu Feb 28 21:54:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049792 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="G7z8kpSB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449RDC3dPxz9s2R for ; Fri, 1 Mar 2019 08:54:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732714AbfB1Vyt (ORCPT ); Thu, 28 Feb 2019 16:54:49 -0500 Received: from mail-pg1-f179.google.com ([209.85.215.179]:34895 "EHLO mail-pg1-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732403AbfB1Vyt (ORCPT ); Thu, 28 Feb 2019 16:54:49 -0500 Received: by mail-pg1-f179.google.com with SMTP id e17so8309119pgd.2 for ; Thu, 28 Feb 2019 13:54:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zwhuwXBQZj4vS3zjw/e2KmWq4QZnVxTegjO6K44TkAY=; b=G7z8kpSBJCmeOG+bURPurPtz1rmgjE9IRwzIGDDnxzyB1CCM8CX6ezPA1qyOBYrxnI H8PJqF1Vkum4iYr4eupT3YfD+MzLiDPTdxMj0QO/9PIW4drN4g4whapkBqenHcfN8KwO EblqRiJ6dV6xnl2KWYnbr52jy56jBlSegG9zmc3U6UU35ud5ck0IZ5dD80p/PRRZHXPX ndDEWNw8PtLBgb3bn1NQMBvBtt5hykeDumd4nd6AIv2tQMIiV3TMZNy6qMqTQP0PpV+Y IKu9rDFGC/BFkBM4PYcaQ2DG+sd7CVeTqTAWQV9AMuZuj6NuwixHs0Zlaz3DdapOp/Uw yDLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zwhuwXBQZj4vS3zjw/e2KmWq4QZnVxTegjO6K44TkAY=; b=phX6TqhtVrk+RTqqR0gVnnrT/gtzSjtxkGDZUAKH1/iHYnvP1t3OHOIX6A/jqJFv3F zHSIXVwpu4fct1gxxcnzWoeRnDdJmiRa6wrBFk3c1r0kayD+k6c2akJ3ozWIfbJh9ayo QzIW1Hyn4/OYpGxUov63ETQ3q49wJd3y08oGee/CTdRlhbjTsQU8/p8g+VfVeiLFuTuR bVBOIR8eoLMqDMt2x1c82v+XnCitGFuMgtsAu+tfOZ7Ivv6W2iAfR+mxAyF1tS3PZDMh W6sdR6GJYpNljRYt/Hc3oLhPXA4efIWCuNgeA1IVD463Z7SAau5WhlPcJcK4kQ4Jp4Sc ZzBw== X-Gm-Message-State: APjAAAUt4PhL2Va+807oBFEmrIfpnFH5T7mEZMKMToO7oHdppyjPZKYB WJWM8p/DR2hxxVingd8D9Gb1/1GBCu4= X-Google-Smtp-Source: APXvYqzNNpck+lhp6vBjuBxCFTjJwBW58vnTU6f+eGWCVfQCLLpKjXoXHwlZDzYJ8XuDxxVZQwEySw== X-Received: by 2002:a63:cc05:: with SMTP id x5mr1329442pgf.31.1551390887918; Thu, 28 Feb 2019 13:54:47 -0800 (PST) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id b138sm40078643pfb.48.2019.02.28.13.54.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:54:46 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC v2 2/6] ixgbe: use extack for xdp errors Date: Thu, 28 Feb 2019 13:54:37 -0800 Message-Id: <20190228215441.28275-3-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228215441.28275-1-stephen@networkplumber.org> References: <20190228215441.28275-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Give a reason for returning error for bpf setup. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index a4e7584a50cb..d5bac44df793 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -10224,18 +10224,25 @@ ixgbe_features_check(struct sk_buff *skb, struct net_device *dev, return features; } -static int ixgbe_xdp_setup(struct net_device *dev, struct bpf_prog *prog) +static int ixgbe_xdp_setup(struct net_device *dev, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { int i, frame_size = dev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN; struct ixgbe_adapter *adapter = netdev_priv(dev); struct bpf_prog *old_prog; bool need_reset; - if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) + if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) { + NL_SET_ERR_MSG_MOD(extack, + "XDP not supported with SRIOV enabled"); return -EINVAL; + } - if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) + if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { + NL_SET_ERR_MSG_MOD(extack, + "XDP not supported with DCB enabled"); return -EINVAL; + } /* verify ixgbe ring attributes are sufficient for XDP */ for (i = 0; i < adapter->num_rx_queues; i++) { @@ -10244,12 +10251,17 @@ static int ixgbe_xdp_setup(struct net_device *dev, struct bpf_prog *prog) if (ring_is_rsc_enabled(ring)) return -EINVAL; - if (frame_size > ixgbe_rx_bufsz(ring)) + if (frame_size > ixgbe_rx_bufsz(ring)) { + NL_SET_ERR_MSG_MOD(extack, + "XDP does not support multiple buffers"); return -EINVAL; + } } - if (nr_cpu_ids > MAX_XDP_QUEUES) + if (nr_cpu_ids > MAX_XDP_QUEUES) { + NL_SET_ERR_MSG_MOD(extack, "number of cpus > MAX_XDP_QUEUES"); return -ENOMEM; + } old_prog = xchg(&adapter->xdp_prog, prog); need_reset = (!!prog != !!old_prog); @@ -10260,7 +10272,7 @@ static int ixgbe_xdp_setup(struct net_device *dev, struct bpf_prog *prog) if (err) { rcu_assign_pointer(adapter->xdp_prog, old_prog); - return -EINVAL; + return err; } } else { for (i = 0; i < adapter->num_rx_queues; i++) @@ -10288,7 +10300,7 @@ static int ixgbe_xdp(struct net_device *dev, struct netdev_bpf *xdp) switch (xdp->command) { case XDP_SETUP_PROG: - return ixgbe_xdp_setup(dev, xdp->prog); + return ixgbe_xdp_setup(dev, xdp->prog, xdp->extack); case XDP_QUERY_PROG: xdp->prog_id = adapter->xdp_prog ? adapter->xdp_prog->aux->id : 0; @@ -10298,6 +10310,7 @@ static int ixgbe_xdp(struct net_device *dev, struct netdev_bpf *xdp) xdp->xsk.queue_id); default: + NL_SET_ERR_MSG_MOD(xdp->extack, "Unknown XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 21:54:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049793 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="DxWCBkln"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449RDF5wqZz9s21 for ; Fri, 1 Mar 2019 08:54:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732899AbfB1Vyw (ORCPT ); Thu, 28 Feb 2019 16:54:52 -0500 Received: from mail-pg1-f178.google.com ([209.85.215.178]:40605 "EHLO mail-pg1-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732812AbfB1Vyu (ORCPT ); Thu, 28 Feb 2019 16:54:50 -0500 Received: by mail-pg1-f178.google.com with SMTP id u9so10355913pgo.7 for ; Thu, 28 Feb 2019 13:54:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GQuGmV/bAF6Cq2Umbhl3JObjXKQnisZrA0HFC0y3B44=; b=DxWCBklnMa43Bh+g1U+yWFP+Dut79CdKgnUy3Z7gXLpZ+7tFma0XxMKSIPrqf277mM paV8PHrYVpVC0AHg8q6GHllOJ/cPuxh2DIsDGziB7CtK4DMRzo5W2LcH7Fa9wTi0i17N q6udYhMd7IyY03AGlfC/vmt2vgh0D1VZwGjOmQ5Ghoi9Z2bkF7HPrMXeD1IIp9r3TIo6 NHorPczVOonzrU9ILKold8OF2Bkj9hXkeC/c6g8MFd+hdnweu5NYfJBs6Z7+oJ6RLf8q FdjFWs0wTGBM49YeiEhfebH/ysJbY2E8qRtaLvWHTTHOdOIYLRBQqi5Zzo7Byh40hiCa xbYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GQuGmV/bAF6Cq2Umbhl3JObjXKQnisZrA0HFC0y3B44=; b=PgKIhkr6eK1V1fZtG4l2vWVyn4jcmr79c7urrgS/6XMugKDgzZkdpsOjEUBL8HBP6e 8ILXsn62s6QeFKybe/jiGSuaX4RiQPWYnlNOO4agwB7wqd585v3bx311V+RBZXptoXcz +E+R1ydT54iY4d4Dx4MncnjxbhnLnvpkWDhjR0SnwuNnOOl3o2gBsSs22KIzeRWwrpjC apOkvdBcaVRmjeRKBBkJkjflf/HwxfjTMIrgcTUg8jdGRUjtLCP0nMZeeD/NiV5NJGvl XnaVp66cIIIQ6eCpo8g9Cbzadead38PMFCue+zkX4OFUOhwCs0iaBIRVQIMSfMTZo/1c rcQA== X-Gm-Message-State: APjAAAW+8d1J3aAmMuspYrRM5FZ15pUsYYx6p10B1pIxAabPgQWT9uJ5 lk7OR1qXICitTZSA2yIDAL6OTHON/Xc= X-Google-Smtp-Source: APXvYqy+bpca7RxCaydtAlseW58TKSEKtPRrNV/WqDxa4bq0Hxl1j+L4mJz073dlHBgWSbf1VMgkpg== X-Received: by 2002:a65:60d8:: with SMTP id r24mr1383502pgv.6.1551390889418; Thu, 28 Feb 2019 13:54:49 -0800 (PST) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id b138sm40078643pfb.48.2019.02.28.13.54.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:54:48 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC v2 3/6] i40e: use extack for bpf errors Date: Thu, 28 Feb 2019 13:54:38 -0800 Message-Id: <20190228215441.28275-4-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228215441.28275-1-stephen@networkplumber.org> References: <20190228215441.28275-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If ndo_bpf fails fill in error string with reason. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/intel/i40e/i40e_main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index da62218eb70a..a6a5866d79a8 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -11831,7 +11831,8 @@ static netdev_features_t i40e_features_check(struct sk_buff *skb, * @prog: XDP program **/ static int i40e_xdp_setup(struct i40e_vsi *vsi, - struct bpf_prog *prog) + struct bpf_prog *prog, + struct netlink_ext_ack *extack) { int frame_size = vsi->netdev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN; struct i40e_pf *pf = vsi->back; @@ -11840,8 +11841,11 @@ static int i40e_xdp_setup(struct i40e_vsi *vsi, int i; /* Don't allow frames that span over multiple buffers */ - if (frame_size > vsi->rx_buf_len) + if (frame_size > vsi->rx_buf_len) { + NL_SET_ERR_MSG_MOD(extack, + "XDP does not support multiple buffers"); return -EINVAL; + } if (!i40e_enabled_xdp_vsi(vsi) && !prog) return 0; @@ -12140,12 +12144,14 @@ static int i40e_xdp(struct net_device *dev, struct i40e_netdev_priv *np = netdev_priv(dev); struct i40e_vsi *vsi = np->vsi; - if (vsi->type != I40E_VSI_MAIN) + if (vsi->type != I40E_VSI_MAIN) { + NL_SET_ERR_MSG_MOD(xdp->extack, "XDP not allowed on VF"); return -EINVAL; + } switch (xdp->command) { case XDP_SETUP_PROG: - return i40e_xdp_setup(vsi, xdp->prog); + return i40e_xdp_setup(vsi, xdp->prog, xdp->extack); case XDP_QUERY_PROG: xdp->prog_id = vsi->xdp_prog ? vsi->xdp_prog->aux->id : 0; return 0; @@ -12153,6 +12159,7 @@ static int i40e_xdp(struct net_device *dev, return i40e_xsk_umem_setup(vsi, xdp->xsk.umem, xdp->xsk.queue_id); default: + NL_SET_ERR_MSG_MOD(xdp->extack, "Unknown XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 21:54:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049794 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="k3iirHEx"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449RDJ52MTz9s2R for ; Fri, 1 Mar 2019 08:54:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733042AbfB1Vyz (ORCPT ); Thu, 28 Feb 2019 16:54:55 -0500 Received: from mail-pf1-f174.google.com ([209.85.210.174]:39068 "EHLO mail-pf1-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732403AbfB1Vyw (ORCPT ); Thu, 28 Feb 2019 16:54:52 -0500 Received: by mail-pf1-f174.google.com with SMTP id i20so10354405pfo.6 for ; Thu, 28 Feb 2019 13:54:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kWLaXnp5zzgGOn86+/sli4ErpeNtxdY1w0PTKsT8v90=; b=k3iirHExANs/OgAc6ey9uvwSB9kDaKv2t8tJZ9vjyZ83g7MSwzeL6AhbIhQomr+Utm F/xwrzBX6sgaA80nDYn9CUXAQ7MJ0hCUhWRUFred3XF8aXB7RnahGVMzNr7P67iZWNyC L9X7sY9bDgbPiU9NaaSkqYiKuMjTb7TfncaKN4T+FosVZsHCjByf2A5WmRTSnQswDUvW NX7hMD1qDRehLm+zGPNuCNOiPFZChDPf23HkwrsJ+ngQCSpKI8ayMvXFq4QWW+2veLDx 1s+rusp+H06m2MzO6kwXqSVGJ+CdoN773KxxfOt8MQFYQf+ZuwSFcYTC179vrNXk8Ae8 5Vrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=kWLaXnp5zzgGOn86+/sli4ErpeNtxdY1w0PTKsT8v90=; b=uCQU0wUgLxlGSN4g2QRKwCVLBpUftFQBa1OljA8ys4sEGwvpgKbzUiWZ60tu1T+dps gpJlADlHVTv+LPjuBAN0+pDfpi4XA9X0Vwo9fELcxmK5neur8Lk1r5Y7R2UUXONEiHup PcmxSCc07fK1jI5XwPzdfD0OO1G8zk9caVY/1phuM7L3U3GRZdITWXqrnjzbsnrx7wCg 0XyqHneuixldlgwU8s98neYp615QZ6Gz0Mvc1mRxaemg1HYQ9qRn6FJeSQhdhjjp/qqb c++ye9I5/G9Q2NoF0oCC42U07Op+mfebIeTitORKJG0JZblJdRwkEzGBPWxmols8M/n3 yOSw== X-Gm-Message-State: APjAAAVde0V6CQk3wTb8GD/3GcRCeSaEpIH1/a1yglq5RR+nZd0i58bb 56b6FdGJ3piM57+DnnmXKXIUURA8Na0= X-Google-Smtp-Source: APXvYqzQ9yHq0qe1MUoapnNbjgyzHhwBuFFw03DvMq2ruJzH3NiN7/kogjLwFJ5T41Kw/nqA8V9slQ== X-Received: by 2002:a63:516:: with SMTP id 22mr1273971pgf.353.1551390890908; Thu, 28 Feb 2019 13:54:50 -0800 (PST) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id b138sm40078643pfb.48.2019.02.28.13.54.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:54:49 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC v2 4/6] ixgebvf: report xdp errors through extack Date: Thu, 28 Feb 2019 13:54:39 -0800 Message-Id: <20190228215441.28275-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228215441.28275-1-stephen@networkplumber.org> References: <20190228215441.28275-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In case of XDP errors report error string through extack. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index 49e23afa05a2..c8c96adc032d 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -4436,7 +4436,8 @@ ixgbevf_features_check(struct sk_buff *skb, struct net_device *dev, return features; } -static int ixgbevf_xdp_setup(struct net_device *dev, struct bpf_prog *prog) +static int ixgbevf_xdp_setup(struct net_device *dev, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { int i, frame_size = dev->mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN; struct ixgbevf_adapter *adapter = netdev_priv(dev); @@ -4446,8 +4447,11 @@ static int ixgbevf_xdp_setup(struct net_device *dev, struct bpf_prog *prog) for (i = 0; i < adapter->num_rx_queues; i++) { struct ixgbevf_ring *ring = adapter->rx_ring[i]; - if (frame_size > ixgbevf_rx_bufsz(ring)) + if (frame_size > ixgbevf_rx_bufsz(ring)) { + NL_SET_ERR_MSG_MOD(extack, + "XDP does not support multiple buffers"); return -EINVAL; + } } old_prog = xchg(&adapter->xdp_prog, prog); @@ -4483,12 +4487,13 @@ static int ixgbevf_xdp(struct net_device *dev, struct netdev_bpf *xdp) switch (xdp->command) { case XDP_SETUP_PROG: - return ixgbevf_xdp_setup(dev, xdp->prog); + return ixgbevf_xdp_setup(dev, xdp->prog, xdp->extack); case XDP_QUERY_PROG: xdp->prog_id = adapter->xdp_prog ? adapter->xdp_prog->aux->id : 0; return 0; default: + NL_SET_ERR_MSG_MOD(xdp->extack, "Unsupported XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 21:54:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049796 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="xfQjBZwL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449RDW6273z9sCJ for ; Fri, 1 Mar 2019 08:55:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733154AbfB1VzA (ORCPT ); Thu, 28 Feb 2019 16:55:00 -0500 Received: from mail-pg1-f181.google.com ([209.85.215.181]:33104 "EHLO mail-pg1-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732812AbfB1Vyy (ORCPT ); Thu, 28 Feb 2019 16:54:54 -0500 Received: by mail-pg1-f181.google.com with SMTP id h11so10374846pgl.0 for ; Thu, 28 Feb 2019 13:54:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=sLNwO6JW79FnQHH99Q2nrWLy/qLEaBWAO+cOjJ4X7os=; b=xfQjBZwLZKS1b/c4J2zK2LbeZN6LHXP2aEQT7dpgwbD/pnKbmJNQL4Nl2W2d3325CP P1fhbqqSvV4+H0QV0OaFP8hqjuzyYGq3HGqpQ368bW9Z7ON1OkxjlP4dM+x0y82pxoZZ nQY1aYIZeMWAwqtmbSJZeERkqS1NwA2rz8+T+5uzgCRxKOODt+Zgd5Kgs/Mo/zOJvWoB ElC3H3sSPbgg0K7Wd2SPV+P7FPROHOtJD5sxU0l99GDFmuL6zWAIay0Yl34sIGWOxLgt koYCPdGRHhbzQq9wAIqjg5fh5vwnOFosHRqW8m0n4JIl+26RPkaF0uI5bNWK4IKpanh9 uc2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=sLNwO6JW79FnQHH99Q2nrWLy/qLEaBWAO+cOjJ4X7os=; b=NMwedFcsrQXyS5nHHPmrUVJiam4MQRapLk2tbrkzeOMihUEng1f9hdMVrRpnxxXl8x mdS6V0b6b7Sw0Iha4i88ZTzX3yTz4calbvlA5SRsb5GAvcKTRDR7fW1svsxVIMn2lCyX 6/zKuhQZZ7rnrHQ73DYi64QHNAKx72ZqfYm9mJ40x44ss5PeD+j2Zcr3IuJ3EeQgW5Ia FljKLbAwXsT5azujy/P3Kx8ZHr/bJZipTqMIQIsyBwDxSBneIyYBCfopGBZwH/6cCIh+ Nah0Avzv2tMYMo8g295A3xTbQq6s/rB6zjXVu7CNB6vtQCOYCGdLqpr+dwOal4FdSUWm CLDg== X-Gm-Message-State: APjAAAX6BK+vhZ2LnmXkexv5O0fbSYN2Y8Svh4UgezuWoPbgrq02F7SG Y/t8zjvlj6cjIl432q3H4a1Wvx3AHR4= X-Google-Smtp-Source: AHgI3IaOHr37svnSUNrvgjdB93LyYBZjjZZMUIWWn0KaUs3csMBsIlFCw+Sx1140pb8iRgbAbF36Ew== X-Received: by 2002:a62:1981:: with SMTP id 123mr1841310pfz.69.1551390893405; Thu, 28 Feb 2019 13:54:53 -0800 (PST) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id b138sm40078643pfb.48.2019.02.28.13.54.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:54:52 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC v2 5/6] mlx4: report errors through extack Date: Thu, 28 Feb 2019 13:54:40 -0800 Message-Id: <20190228215441.28275-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228215441.28275-1-stephen@networkplumber.org> References: <20190228215441.28275-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org XDP errors should be reported via extack (back to command) rather than on console. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index c1438ae52a11..75ae06c82294 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -2779,7 +2779,8 @@ static int mlx4_en_set_tx_maxrate(struct net_device *dev, int queue_index, u32 m return err; } -static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) +static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { struct mlx4_en_priv *priv = netdev_priv(dev); struct mlx4_en_dev *mdev = priv->mdev; @@ -2816,8 +2817,10 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) return 0; } - if (!mlx4_en_check_xdp_mtu(dev, dev->mtu)) + if (!mlx4_en_check_xdp_mtu(dev, dev->mtu)) { + NL_SET_ERR_MSG_MOD(extack, "MTU exceeds support XDP maximum"); return -EOPNOTSUPP; + } tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); if (!tmp) @@ -2870,8 +2873,8 @@ static int mlx4_xdp_set(struct net_device *dev, struct bpf_prog *prog) if (port_up) { err = mlx4_en_start_port(dev); if (err) { - en_err(priv, "Failed starting port %d for XDP change\n", - priv->port); + NL_SET_ERR_MSG_MOD(extack, + "Failed starting port for XDP change"); queue_work(mdev->workqueue, &priv->watchdog_task); } } @@ -2908,11 +2911,12 @@ static int mlx4_xdp(struct net_device *dev, struct netdev_bpf *xdp) { switch (xdp->command) { case XDP_SETUP_PROG: - return mlx4_xdp_set(dev, xdp->prog); + return mlx4_xdp_set(dev, xdp->prog, xdp->extack); case XDP_QUERY_PROG: xdp->prog_id = mlx4_xdp_query(dev); return 0; default: + NL_SET_ERR_MSG_MOD(xdp->extack, "Unsupported XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 21:54:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049795 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=networkplumber.org Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="UHS6pBkL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449RDM022Zz9s21 for ; Fri, 1 Mar 2019 08:54:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733103AbfB1Vy6 (ORCPT ); Thu, 28 Feb 2019 16:54:58 -0500 Received: from mail-pl1-f182.google.com ([209.85.214.182]:39505 "EHLO mail-pl1-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732403AbfB1Vy4 (ORCPT ); Thu, 28 Feb 2019 16:54:56 -0500 Received: by mail-pl1-f182.google.com with SMTP id b65so7362297plb.6 for ; Thu, 28 Feb 2019 13:54:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qZ3Yy5sZ2YWlfWeCKnHHjf99PCR+Sy7bwFutm61DFwg=; b=UHS6pBkLBjFLsG0ekw+0bPwaxxBkZ7+6NGrCJoNnrnhBOx1X07OOzu0jlyyMyPfQv0 E1/bFiCF9qDdLuTg9lQm8fBPAfQf/9JryzQrp7jbJShe4ClIHVbWcZFgWkBpCTnTxVtW ZaNeOcd6sBWYHoL+4XsO+HBmr9JN4ZUKgvmFyctH7RtjBCIKBp9HynlsQNif5c0suvYA jBQn/HHZpk6Qu1sIDe8d2RHXQfxqrDOQw+miJDqCIaC48MDPzgtAh/pQw1A0HR6xWDzG x6Z0CuahYVv7PgbUc2EWHlhhjnKqNmR36kmS4XsLAhV6hDLbvgQxUV37bzjzpXvmytLb F/VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qZ3Yy5sZ2YWlfWeCKnHHjf99PCR+Sy7bwFutm61DFwg=; b=bJG0uAbEQfU6I/gONb8sSSIOqdyYlS7kTF+yjjR1cN+49wSYXDLSoGePelBM2kx3Ff AO3nBR7WiXwKzAHbK74rF3TOfXeHA7X0xrUsv7noGqHU7RMhj0j2zvRePOMnd6wfepN2 BfMSBDojLmOCAoGkydlvpDmtPjdjTDKQFv/NIxx+0XzDbHMeBsUeGz/QMcvlIuhkiOzG YXtAPpLHVsu+DaG6wq0eoeUWek5JoFKARHdJRQXPCDutoqzatvDchn3ogtHqpYNgXdzC 1ec3mNtOmWwb0pivD/fj4mCvvevPa6A/Cc6bQorJJLZvdruOHUDn5jGUmGFeUpr+oeai uzWQ== X-Gm-Message-State: APjAAAWZLJnny84tikIZOWzr3FNhbswSE3cbhUCcA9biY8FTFr+CJ3fJ gPf1aCstPRymNYpLoHN/yg/3EMlkybU= X-Google-Smtp-Source: APXvYqw56roaywbIOwoBWtqT+54jw4pHh8xTjlfgUIX9aYE9oU6jLke46EkgDtktKBHyuohmoTdqww== X-Received: by 2002:a17:902:9683:: with SMTP id n3mr1662677plp.333.1551390895237; Thu, 28 Feb 2019 13:54:55 -0800 (PST) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id b138sm40078643pfb.48.2019.02.28.13.54.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 13:54:54 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC v2 6/6] mlx5: report XDP errors through extack Date: Thu, 28 Feb 2019 13:54:41 -0800 Message-Id: <20190228215441.28275-7-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228215441.28275-1-stephen@networkplumber.org> References: <20190228215441.28275-1-stephen@networkplumber.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In case of errors in setting up XDP, report error through extack string rather than console log. Signed-off-by: Stephen Hemminger --- .../net/ethernet/mellanox/mlx5/core/en_main.c | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index e5f74eb986b3..555d72fb6b40 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -4177,18 +4177,20 @@ static void mlx5e_tx_timeout(struct net_device *dev) queue_work(priv->wq, &priv->tx_timeout_work); } -static int mlx5e_xdp_allowed(struct mlx5e_priv *priv, struct bpf_prog *prog) +static int mlx5e_xdp_allowed(struct mlx5e_priv *priv, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { - struct net_device *netdev = priv->netdev; struct mlx5e_channels new_channels = {}; if (priv->channels.params.lro_en) { - netdev_warn(netdev, "can't set XDP while LRO is on, disable LRO first\n"); + NL_SET_ERR_MSG_MOD(extack, + "can't set XDP while LRO is on, disable LRO first"); return -EINVAL; } if (MLX5_IPSEC_DEV(priv->mdev)) { - netdev_warn(netdev, "can't set XDP with IPSec offload\n"); + NL_SET_ERR_MSG_MOD(extack, + "can't set XDP with IPSec offload"); return -EINVAL; } @@ -4196,15 +4198,16 @@ static int mlx5e_xdp_allowed(struct mlx5e_priv *priv, struct bpf_prog *prog) new_channels.params.xdp_prog = prog; if (!mlx5e_rx_is_linear_skb(priv->mdev, &new_channels.params)) { - netdev_warn(netdev, "XDP is not allowed with MTU(%d) > %d\n", - new_channels.params.sw_mtu, MLX5E_XDP_MAX_MTU); + NL_SET_ERR_MSG_MOD(extack, + "XDP is not allowed with large MTU"); return -EINVAL; } return 0; } -static int mlx5e_xdp_set(struct net_device *netdev, struct bpf_prog *prog) +static int mlx5e_xdp_set(struct net_device *netdev, struct bpf_prog *prog, + struct netlink_ext_ack *extack) { struct mlx5e_priv *priv = netdev_priv(netdev); struct bpf_prog *old_prog; @@ -4215,7 +4218,7 @@ static int mlx5e_xdp_set(struct net_device *netdev, struct bpf_prog *prog) mutex_lock(&priv->state_lock); if (prog) { - err = mlx5e_xdp_allowed(priv, prog); + err = mlx5e_xdp_allowed(priv, prog, extack); if (err) goto unlock; } @@ -4297,11 +4300,12 @@ static int mlx5e_xdp(struct net_device *dev, struct netdev_bpf *xdp) { switch (xdp->command) { case XDP_SETUP_PROG: - return mlx5e_xdp_set(dev, xdp->prog); + return mlx5e_xdp_set(dev, xdp->prog, xdp->extack); case XDP_QUERY_PROG: xdp->prog_id = mlx5e_xdp_query(dev); return 0; default: + NL_SET_ERR_MSG_MOD(xdp->extack, "Unsupported XDP command"); return -EINVAL; } }