All of lore.kernel.org
 help / color / mirror / Atom feed
From: sven.auhagen@voleatech.de
To: anthony.l.nguyen@intel.com, maciej.fijalkowski@intel.com
Cc: davem@davemloft.net, netdev@vger.kernel.org, nhorman@redhat.com,
	sassmann@redhat.com, sandeep.penigalapati@intel.com,
	brouer@redhat.com
Subject: [PATCH 3/7] igb: XDP extack message on error
Date: Wed,  7 Oct 2020 17:25:02 +0200	[thread overview]
Message-ID: <20201007152506.66217-4-sven.auhagen@voleatech.de> (raw)
In-Reply-To: <20201007152506.66217-1-sven.auhagen@voleatech.de>

From: Sven Auhagen <sven.auhagen@voleatech.de>

Add an extack error message when the RX buffer size is too small
for the frame size.

Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
---
 drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 0a9198037b98..088f9ddb0093 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
 	}
 }
 
-static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
+static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
 {
 	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
 	struct igb_adapter *adapter = netdev_priv(dev);
+	struct bpf_prog *prog = bpf->prog, *old_prog;
 	bool running = netif_running(dev);
-	struct bpf_prog *old_prog;
 	bool need_reset;
 
 	/* verify igb ring attributes are sufficient for XDP */
 	for (i = 0; i < adapter->num_rx_queues; i++) {
 		struct igb_ring *ring = adapter->rx_ring[i];
 
-		if (frame_size > igb_rx_bufsz(ring))
+		if (frame_size > igb_rx_bufsz(ring)) {
+			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");
 			return -EINVAL;
+		}
 	}
 
 	old_prog = xchg(&adapter->xdp_prog, prog);
@@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
 {
 	switch (xdp->command) {
 	case XDP_SETUP_PROG:
-		return igb_xdp_setup(dev, xdp->prog);
+		return igb_xdp_setup(dev, xdp);
 	default:
 		return -EINVAL;
 	}
@@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
 			struct igb_ring *ring = adapter->rx_ring[i];
 
 			if (max_frame > igb_rx_bufsz(ring)) {
-				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
+				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
 				return -EINVAL;
 			}
 		}
-- 
2.20.1


  parent reply	other threads:[~2020-10-07 15:25 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-07 15:24 [PATCH 0/7] igb: xdp patches followup sven.auhagen
2020-10-07 15:25 ` [PATCH 1/7] igb: XDP xmit back fix error code sven.auhagen
2020-10-07 15:25 ` [PATCH 2/7] igb: take vlan double header into account sven.auhagen
2020-10-07 21:06   ` Maciej Fijalkowski
2020-10-08  5:25     ` Sven Auhagen
2020-10-07 15:25 ` sven.auhagen [this message]
2020-10-07 21:08   ` [PATCH 3/7] igb: XDP extack message on error Maciej Fijalkowski
2020-10-07 15:25 ` [PATCH 4/7] igb: skb add metasize for xdp sven.auhagen
2020-10-07 21:10   ` Maciej Fijalkowski
2020-10-07 15:25 ` [PATCH 5/7] igb: use igb_rx_buffer_flip sven.auhagen
2020-10-07 21:32   ` Maciej Fijalkowski
2020-10-08  5:29     ` Sven Auhagen
2020-10-07 15:25 ` [PATCH 6/7] igb: use xdp_do_flush sven.auhagen
2020-10-07 21:34   ` Maciej Fijalkowski
2020-10-07 15:25 ` [PATCH 7/7] igb: avoid transmit queue timeout in xdp path sven.auhagen
2020-10-07 21:35   ` Maciej Fijalkowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201007152506.66217-4-sven.auhagen@voleatech.de \
    --to=sven.auhagen@voleatech.de \
    --cc=anthony.l.nguyen@intel.com \
    --cc=brouer@redhat.com \
    --cc=davem@davemloft.net \
    --cc=maciej.fijalkowski@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@redhat.com \
    --cc=sandeep.penigalapati@intel.com \
    --cc=sassmann@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.