From patchwork Thu Feb 28 18:38:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049697 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="1wSoixtJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449LsS30Hwz9s4Z for ; Fri, 1 Mar 2019 05:38:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387399AbfB1SiR (ORCPT ); Thu, 28 Feb 2019 13:38:17 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:43140 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726371AbfB1SiP (ORCPT ); Thu, 28 Feb 2019 13:38:15 -0500 Received: by mail-pg1-f194.google.com with SMTP id l11so10113838pgq.10 for ; Thu, 28 Feb 2019 10:38:15 -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=qD8EDSgObe1YWVAl1SSaUf6CKJLtcuEe+S2NJXza7HM=; b=1wSoixtJtBExYCTInPNKF2QnXrzOeF71q2gKqDTgOrXR2qwTwANFGKGrDa5mb01QRT TZqtkyoFAsMx0RevjSs9SYV2AiS03hMW8g9UUi1r/+3yX5F3B8c+X4WxaeVAQDF+ei8V cH1DRJGKNaFzOZIyyU8tu9ZDGnQoRPvRGCudfGKZyKOc8dDf1HekK1oT9A+yq+T8stpV I6yL7Bg5AR2c74EcbhsRPofNnshy0vgmZRq2r90vuO8w8f2tFs/qPayTjXF80X6lbOpv HeQZ/HKjiSWuTJ7RQ4YKuxqrXFSZgVmn5FxWXzIskwUGwNGyXV+Jb6EuXWqQD67p8Lb4 Y2TQ== 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=qD8EDSgObe1YWVAl1SSaUf6CKJLtcuEe+S2NJXza7HM=; b=Pc/xz2nEKzPtYTTfrqQidvvJQsbcHZIL03rxJyift3326AIoog6vSzNxt2E6NNC2/u WRitDF8mrPIqG/rWEEdcrMaV6FvluVZjptp0bmdj65zHAvll8vIcalsWqrD9CUUPy7kE XQjzZp9yDch0iseJs8wSwbmuIWPFVZwCpS2GyqxiGYZYdVkj9WDFfG0lM5l6gMtfOwnm j8Sd5vwkY7apot9EPkNMQI4a8H3r+KATd7l9ZSs+4/oqc8Bk9ly5XAggbxhF+TmjzQoH sApKrH//rBFgcOoXzop4k/LADVIW56NlpzERE/PFy1/CTpuNzOdDdWYF6VrdeY5f3WiO iVjQ== X-Gm-Message-State: AHQUAuaBQ/OV9fliHrKKWSLBm4qixAyDbcf7RfS1bxGro9coJk0KLzhT DGoO6Td6DB1D0wdxvLp1WLavOs1JWNs= X-Google-Smtp-Source: AHgI3IbqTe0PMocKH3AsNIFF/3MECmC219xzbZ625AufdaM0E7nDZ/mNdKnzdG3RvFsgl2OD8bx9pw== X-Received: by 2002:a62:f5c8:: with SMTP id b69mr1010683pfm.128.1551379094399; Thu, 28 Feb 2019 10:38:14 -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 c10sm25262702pfo.19.2019.02.28.10.38.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 10:38:13 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC 1/6] bnxt: use extack for xdp error messages Date: Thu, 28 Feb 2019 10:38:04 -0800 Message-Id: <20190228183809.25417-2-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228183809.25417-1-sthemmin@microsoft.com> References: <20190228183809.25417-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger 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..a894a10726af 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(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(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(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(xdp->extack, "Unsupported XDP command"); + return -EINVAL; } - return rc; } From patchwork Thu Feb 28 18:38:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049696 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="EEOkpm21"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449LsR4V2hz9s2R for ; Fri, 1 Mar 2019 05:38:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387512AbfB1SiR (ORCPT ); Thu, 28 Feb 2019 13:38:17 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:38788 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727649AbfB1SiQ (ORCPT ); Thu, 28 Feb 2019 13:38:16 -0500 Received: by mail-pl1-f193.google.com with SMTP id g37so7356445plb.5 for ; Thu, 28 Feb 2019 10:38:16 -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=MfB+8o/vpFR2hTlGxlEZPm+L/+gSSKCv319nb0Ctd38=; b=EEOkpm21qYP3E46LBdIj7LVg1iqgBmvfaThdSdURvefJzwMhxnEvolWts0jGAmw524 IgSpGuw6O1Opwr3Wh/rHs7GXWj8yYD2uwfc3DkGHiGneUaHpGxtwogIoB3dahSr/EoI9 Sp9XpdrQ+Adw7B5B0ouVtQmtWIteiILTMAXCiFsbr1gKFdbdT8n8kP6P9Fq4WJvVyOCg +Hkq6Qy2zgUGKjeLGZzOcDETwi3cx9B5iF6i2Cmf3Jp1He2JqHDQcKvTZMo24huDUp1r 4gtIv0HuTx3ibFhVmRwSM6f6OvR9gTa859LmSTXt80bvTvDC0eGij1GtgyU/VR+wSevL pVuw== 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=MfB+8o/vpFR2hTlGxlEZPm+L/+gSSKCv319nb0Ctd38=; b=LFXXLfCUDtFka7RkLmc2HBapwJ7IDbyZq9oFDdyIVNC6vfpazXwJ+xuxQZDnEeLE3q 34w7guiCZGkNGY1GGuVVDIkrd9ur7zPdO72wdOksRjGF9ffkgT4Lt9SJ1CKyVyZvk2U2 6W79isXz/jCpfRn2mhw4OBwmfTVyRCNoJXdsCd3fhxUVQY0QgwstFmU8nzVT59N5xaa+ 9/sdENgUqsd46InpqVUoJC+PV1f9XxIFXgDAv6Z8vlqTV8YMbV3g7oT08Kc5GJ6jAwWy Z45oxWGRLZjD0zRRHGJuW0w338vZ/1lVyuVo5LD2Ef8TE6e5YOqroXwZfbJC57vwP3Kt dO+A== X-Gm-Message-State: APjAAAVlRXFM6ix9lVEbMCZftwr1YxqoyoMiDL3GYJAgI+/wyWxhL4nS gSwF8bFfoX9YU/KFceksqDJL6qLy5qE= X-Google-Smtp-Source: APXvYqxwxl3Z2t5Ch+dan4qkRjRtvp02RdKFEeo19d/Fme5BqWoIz9LjJA5vSoOTvPkMDd8pssxJ1g== X-Received: by 2002:a17:902:f095:: with SMTP id go21mr766267plb.199.1551379095922; Thu, 28 Feb 2019 10:38:15 -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 c10sm25262702pfo.19.2019.02.28.10.38.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 10:38:14 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC 2/6] ixgbe: use extack for xdp errors Date: Thu, 28 Feb 2019 10:38:05 -0800 Message-Id: <20190228183809.25417-3-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228183809.25417-1-sthemmin@microsoft.com> References: <20190228183809.25417-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger Give a reason for returning error for bpf setup. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 25 +++++++++++++------ 1 file changed, 18 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..9a81123074ca 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -10224,18 +10224,23 @@ 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(extack, "XDP not support with SRIOV enabled"); return -EINVAL; + } - if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) + if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { + NL_SET_ERR_MSG(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 +10249,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(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(extack, "number of cpus > MAX_XDP_QUEUES"); return -ENOMEM; + } old_prog = xchg(&adapter->xdp_prog, prog); need_reset = (!!prog != !!old_prog); @@ -10260,7 +10270,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 +10298,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 +10308,7 @@ static int ixgbe_xdp(struct net_device *dev, struct netdev_bpf *xdp) xdp->xsk.queue_id); default: + NL_SET_ERR_MSG(xdp->extack, "Unknown XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 18:38:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049699 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="orFq5dML"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449LsX1lb2z9s4Z for ; Fri, 1 Mar 2019 05:38:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387812AbfB1SiX (ORCPT ); Thu, 28 Feb 2019 13:38:23 -0500 Received: from mail-pg1-f173.google.com ([209.85.215.173]:32808 "EHLO mail-pg1-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727649AbfB1SiS (ORCPT ); Thu, 28 Feb 2019 13:38:18 -0500 Received: by mail-pg1-f173.google.com with SMTP id h11so10146500pgl.0 for ; Thu, 28 Feb 2019 10:38:18 -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=zreFLAMdahFm0NWPAxm8ngg6sQlf9tN9dg7tLVCmnpg=; b=orFq5dMLT5/ZtqQ209D/xwL6S8MLFPBSNt/pPORxOSdej2PkDAGEpvoD+SK19fUnG/ zQe0ohjwUJHvlH5B41FfOYtLoNjkGyV1yp/4zgaG3mxMM4H/uRO6tddLxWllNLz1F1L/ ICpubv2Pw2H8+asa+p28/M7KsTDtZ5+uAsta9l0Q4ctbdBkrsDprh95WvRzXNLHIB9NQ HJUZ8mbW7aofkcmMQIY163iwF3WPEYdloTIIRw23z13FhWFUlN67rKvIdhv277BoZS3x 4cllAZf5hDExVLuexJblS9RLVaZlTVmFAH3XQlV6Yqyx9cPAc3RgQUecSbkWGLn5XyaW vMJg== 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=zreFLAMdahFm0NWPAxm8ngg6sQlf9tN9dg7tLVCmnpg=; b=BulaTzKVVOP+kovRmVRtmLwU4Y1aM/mC22DR07Xh//2opEOzCDz8l0zs6h2U8l0PRM FmF4k26iMpthBpH02WXOx+3q769R866XTraPs3s7s92NWvuhhqedViIojOaWxhGqTYqw U+EvHlFBYBruq40t52VhjAszq2udOaptIit4/juAIs8gJAO908EUHWL6ojHOiuY41lUp O2zTW5pd+sVyF43cLnSBT9vlZkiQaltrFDg0GqxQdJU21S2Np9g+zt9sGjzQXKe5vAQG 0Y4t62DQoOiu0vycRTL1/6l5KgR/JBXIt3+7XNiHJg5cqiQdTx4NBdSFZY78VDWCCOEI XqBg== X-Gm-Message-State: AHQUAuZTdmCjeCNcsoj3Wmjj24ZlERuEkBmilmV8wlpsV2X4qyLRsVyf UuzY5yim3VJSteKhiMfAe8GrMyOzX04= X-Google-Smtp-Source: AHgI3IZLWSAzOaPJW0ZjHJe5VjJSH1J6RC56ijSfJ4fM3thG6NC15ddETPlGNYldu4bg5M8s1EifBg== X-Received: by 2002:a62:76c9:: with SMTP id r192mr986941pfc.251.1551379097626; Thu, 28 Feb 2019 10:38:17 -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 c10sm25262702pfo.19.2019.02.28.10.38.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 10:38:16 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC 3/6] i40e: use extack for bpf errors Date: Thu, 28 Feb 2019 10:38:06 -0800 Message-Id: <20190228183809.25417-4-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228183809.25417-1-sthemmin@microsoft.com> References: <20190228183809.25417-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger If ndo_bpf fails fill in error string with reason. Signed-off-by: Stephen Hemminger --- drivers/net/ethernet/intel/i40e/i40e_main.c | 14 ++++++++++---- 1 file changed, 10 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..3de1f2590ca0 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,10 @@ 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(extack, "XDP does not support multiple buffers"); return -EINVAL; + } if (!i40e_enabled_xdp_vsi(vsi) && !prog) return 0; @@ -12140,12 +12143,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(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 +12158,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(xdp->extack, "Unknown XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 18:38:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049698 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="UnOdMfzf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449LsW1ltkz9s2R for ; Fri, 1 Mar 2019 05:38:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387686AbfB1SiW (ORCPT ); Thu, 28 Feb 2019 13:38:22 -0500 Received: from mail-pg1-f179.google.com ([209.85.215.179]:46578 "EHLO mail-pg1-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732473AbfB1SiU (ORCPT ); Thu, 28 Feb 2019 13:38:20 -0500 Received: by mail-pg1-f179.google.com with SMTP id 196so10116844pgf.13 for ; Thu, 28 Feb 2019 10:38:19 -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=gxwyN1P3aQ70LEbNrod0skIhsDDiwOwCiO0857vWM50=; b=UnOdMfzfaMaCINYPd9idRrp7vCa00pJhdoEl3EP71RFRGbBkHbjBCfUDC5wQjq+kwj hPSXd/XPufQWMoaSmNhhDgPSJRmZBL1ntFRTwSUI+uhyIUDxkFGj8adoS7eseVSqkZUZ AP3kiVrM3ivwrc0Ae8CKOvoQqEdB8/T/WMSHZluGErbhfawDPDtVwI8ZDhH/e9Yel5VJ h4HRtD4Q/dGTgBC6xonGoyV6timTbiKquZm9Hd/xEdJ6oNkPhVK2X8n2F5qbyjRCDIyM ojoREaU6m5rFRbzP9x5hGtfG2ylGahgsEzot5F0cp6s+nRIjbsZqq9UMFwR5z7GrWfuC PcNQ== 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=gxwyN1P3aQ70LEbNrod0skIhsDDiwOwCiO0857vWM50=; b=l/t6r2826LY7zocTQotFTJ2btkzxAov+tjacnLqc7AT7370STtuP65Za4OhSY00nb4 5mM33/O1UV2jg4y234YkrEhUdgc235Yfykl4mK7T29KvVAj3n5m6u0mz+Jk6ack9uVYO O3Jzp+omRBtC5+UXdqI6xFcdijGFCA9reGnVwj60WWLalIknV0VHxa9iChrDfn3wI6nX 3UpL2kMs1BSAlI0VxJgf7teEugBPGtqC49SB+8ZHPYUoN+pqMc8OgcT69KtGPlkN79h/ l8EMIPWUuIqjiJl+RLuNzFemAUstu9XEPNaycPF+t7glu/zvh03WpIuFxtUX16FZbk/s DPEA== X-Gm-Message-State: APjAAAVXGBp7wHSHu91YiGIa8miJl5VhGffE2t7fkwpNCb2Ka3vhNlsx 34xAloKq0wGMz/hwTmjmKM/dI8cX1jY= X-Google-Smtp-Source: AHgI3Ia99PtFFHRa6m9NWrq5NDnBpMiWNTFOG6ZPnF1euZK8qbXd19LjFjw7LTsstgFMzUWoQHGQJw== X-Received: by 2002:aa7:8847:: with SMTP id k7mr974628pfo.99.1551379099018; Thu, 28 Feb 2019 10:38:19 -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 c10sm25262702pfo.19.2019.02.28.10.38.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 10:38:18 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC 4/6] ixgebvf: report xdp errors through extack Date: Thu, 28 Feb 2019 10:38:07 -0800 Message-Id: <20190228183809.25417-5-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228183809.25417-1-sthemmin@microsoft.com> References: <20190228183809.25417-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger 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..2a3d96a20329 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(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(xdp->extack, "Unsupported XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 18:38:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049701 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="JQrhDyEw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449Lsd6nmNz9s2R for ; Fri, 1 Mar 2019 05:38:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388140AbfB1Si2 (ORCPT ); Thu, 28 Feb 2019 13:38:28 -0500 Received: from mail-pl1-f182.google.com ([209.85.214.182]:46791 "EHLO mail-pl1-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387525AbfB1SiV (ORCPT ); Thu, 28 Feb 2019 13:38:21 -0500 Received: by mail-pl1-f182.google.com with SMTP id c17so6978632plz.13 for ; Thu, 28 Feb 2019 10:38:21 -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=u8d0yt0X2M0G0gyxHVkWKCU8qZjC1XadgaQdmTETUQA=; b=JQrhDyEwwAmiE+onbiKyNMnrPEzcJP+S7jRillrLeqLfohsJgXi/Hyval+3vGM757N JVVYu5Kcccgaoxl4oXfgiDunMnOF/qdOeUj6CeQ3NoVDi81MtpLUHCaUO28FynUHTDGh xZWpGbIAHH5f+Yr2dDAtJQFgC2dJ3E8J1Wl4WR12mO7lasz2iu43PdsHMwSSZK9WBkyX axmzvm5BndodupPBCzr+IPcGIwZ5ivWmLKNPiD1/OtkUEMarmtn+rqqIi0v3jcILDvcl uchBlozDj+GSxFNHvMs36zG7JVM+F7nNEXsV41FZ3ZAdqXiZbQ5iHX0ih+SDtXkzadpZ BfGA== 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=u8d0yt0X2M0G0gyxHVkWKCU8qZjC1XadgaQdmTETUQA=; b=RAW50Xjt0eUebfB8GxIVB5dE3Zy2JQgn8l+YFuQSj9OOVyWqbOkLNoLHVC4lea7FJM 6GCizEAmGAvdfBFtDvjSWDHqnvmkr25SlmIq9ibQ1/N3qbn6I+83k6WIXZm3u/s+hF+2 1vUGPN1DSYleQPXnAZrNLksP/hLEHfYvQa6eGAgfiQNcKDrMHSQGt16LhlIL/pn66U2Z 2I5qUwZgttZfmagyUqwjjMQsxBk3S1nvYlEccIL3WOaHPYCsM/vL8yPw1IiTA30TurMh iApgkvc+ZdRqj/SmnIwJPoXLqSGux9Fm0+e4zJQnbs1AhV64DdGFBEQuQ/amnTAF5+zr QlNw== X-Gm-Message-State: APjAAAXTJYYbekYFWiOoLOQWgWIMOul3HFtKBxzKe/C7Lu3x+o63UMgF lYiN8zp4QGt+smYE3Xge4jXiS/9MCW0= X-Google-Smtp-Source: APXvYqyfIv4qAr7nTdwEwVRSfdB5twgsWJyTVAEl0CcAIO56nrc3E99h7CiPImE2hyp/7A1uKEOB1w== X-Received: by 2002:a17:902:5066:: with SMTP id f35mr854590plh.184.1551379100714; Thu, 28 Feb 2019 10:38:20 -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 c10sm25262702pfo.19.2019.02.28.10.38.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 10:38:19 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC 5/6] mlx4: report errors through extack Date: Thu, 28 Feb 2019 10:38:08 -0800 Message-Id: <20190228183809.25417-6-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228183809.25417-1-sthemmin@microsoft.com> References: <20190228183809.25417-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger 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..72fb5570df20 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(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(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(xdp->extack, "Unsupported XDP command"); return -EINVAL; } } From patchwork Thu Feb 28 18:38:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 1049700 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="MWYV+fgw"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 449LsZ4j2kz9s2R for ; Fri, 1 Mar 2019 05:38:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387911AbfB1SiZ (ORCPT ); Thu, 28 Feb 2019 13:38:25 -0500 Received: from mail-pf1-f180.google.com ([209.85.210.180]:40543 "EHLO mail-pf1-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387823AbfB1SiX (ORCPT ); Thu, 28 Feb 2019 13:38:23 -0500 Received: by mail-pf1-f180.google.com with SMTP id h1so10130103pfo.7 for ; Thu, 28 Feb 2019 10:38:23 -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=I+dO6fb560nqulv8oBkuJC2z7m09wba+k97Cy5oX9kw=; b=MWYV+fgwqA9/uS6OZE2kuX9agoHVH+fxYVZkbukOuOx+l6cBtQ+ySEVHgXRGELzAxc sEKCEvnuzJr5iVynjaCY0T0INxPtfNNUIVxNInAFNtKOwnleugJvrNUy6Q/WlwWsLA9p zpsLQfLKHUwNIVPudsUwzkMGvf6r2snKDyDvMQaXgCETURnfsfBu8qYTs3MrngVDeu/k FROFgyy8GwydnJB47mJz2YCrtZ0jWNXFXu2pEDf+53X9kWORnSlwohQmc9xAxYoLJVjX kqsQsMj/yydo60cc7jFNb4faL0K14WiaTRnCFiw07cHJTOtkEexKRRota7aBlmZBPNwM dW0g== 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=I+dO6fb560nqulv8oBkuJC2z7m09wba+k97Cy5oX9kw=; b=OqJ8FtH4oqYe/KZqSUI9yEU/29E+0X/vm3ES+hrAAIl7dOgEKo5AFktK5eIbrhrPZO m06MfGCg4e1QUY9KnoYrOEk1JlmikFIMkW3dHz2MaA3MB124BrnVIEPVMKARhqyPxeII QSRklwm/Z2HYX1QJIT+GWNbZISFutK3YR+kzIywSvpsTFHIuHnwErDu0yEJJzX6IVphU 92FpXLlAr7IOvekIbWxwAKOGi6eN/DUA5teyAfTrgquTzmsmAvfxtQVNroV2PQ1KuyiH yHPXjD4hWRQJE53SuSCgFgkb9JSlOcxPDH9HKOHDu2nTj134kRRH/o6JY5XyKITPcC7G uODA== X-Gm-Message-State: AHQUAuZufFwlVTMH0hUC8SKNkCkXaoXJa6pIS420b1Fvz5EUHKQY5kHt s+em05UBzF4XWOQZvoe0U1eg7HDWC7Y= X-Google-Smtp-Source: AHgI3IbU4KLzacWdQWQ7N+8PMEyuUPCmws7acm7R1M7djYg+bfkTXqCDc14Qj8IYAuNTGrudX4R+cA== X-Received: by 2002:aa7:85d1:: with SMTP id z17mr995773pfn.226.1551379102516; Thu, 28 Feb 2019 10:38:22 -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 c10sm25262702pfo.19.2019.02.28.10.38.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Feb 2019 10:38:21 -0800 (PST) From: Stephen Hemminger X-Google-Original-From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [RFC 6/6] mlx5: report XDP errors through extack Date: Thu, 28 Feb 2019 10:38:09 -0800 Message-Id: <20190228183809.25417-7-sthemmin@microsoft.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190228183809.25417-1-sthemmin@microsoft.com> References: <20190228183809.25417-1-sthemmin@microsoft.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Stephen Hemminger 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..f8e3661c6846 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(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(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(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(xdp->extack, "Unsupported XDP command"); return -EINVAL; } }