All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <jakub.kicinski@netronome.com>
To: alexei.starovoitov@gmail.com, daniel@iogearbox.net,
	brouer@redhat.com, "Björn Töpel" <bjorn.topel@intel.com>,
	"Magnus Karlsson" <magnus.karlsson@intel.com>
Cc: oss-drivers@netronome.com, netdev@vger.kernel.org,
	Jakub Kicinski <jakub.kicinski@netronome.com>
Subject: [RFC bpf-next 4/6] xsk: don't allow installing UMEM beyond the number of queues
Date: Thu, 26 Jul 2018 14:41:46 -0700	[thread overview]
Message-ID: <20180726214148.2087-5-jakub.kicinski@netronome.com> (raw)
In-Reply-To: <20180726214148.2087-1-jakub.kicinski@netronome.com>

Don't allow installing UMEM on queue IDs higher than real_num_rx_queues.
Note that the check in xsk_bind() is advisory at most, since it's done
without rtnl.  Besides from driver's perspective the UMEM queue ID really
only relates to RX queues.  TX real_num_tx_queues queues the driver
exposes are for SKBs.  AF_XDP zero-copy TX will most likely use separate
rings much like XDP_TX does.  So the AF_XDP's concept of queue indexes
only relates to RX queues at driver level.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
---
 net/xdp/xdp_umem.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/net/xdp/xdp_umem.c b/net/xdp/xdp_umem.c
index 911ca6d3cb5a..8139a2c5c5ed 100644
--- a/net/xdp/xdp_umem.c
+++ b/net/xdp/xdp_umem.c
@@ -79,6 +79,11 @@ int xdp_umem_assign_dev(struct xdp_umem *umem, struct net_device *dev,
 	bpf.command = XDP_QUERY_XSK_UMEM;
 
 	rtnl_lock();
+	if (queue_id >= dev->real_num_rx_queues) {
+		err = -EINVAL;
+		goto err_rtnl_unlock;
+	}
+
 	err = xdp_umem_query(dev, queue_id);
 	if (err) {
 		err = err < 0 ? -ENOTSUPP : -EBUSY;
-- 
2.17.1

  parent reply	other threads:[~2018-07-26 23:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-26 21:41 [RFC bpf-next 0/6] net: xsk: minor improvements around queue handling Jakub Kicinski
2018-07-26 21:41 ` [RFC bpf-next 1/6] net: update real_num_rx_queues even when !CONFIG_SYSFS Jakub Kicinski
2018-07-26 21:41 ` [RFC bpf-next 2/6] xsk: refactor xdp_umem_assign_dev() Jakub Kicinski
2018-07-30 11:41   ` Björn Töpel
2018-07-26 21:41 ` [RFC bpf-next 3/6] xsk: don't allow umem replace at stack level Jakub Kicinski
2018-07-30 12:00   ` Björn Töpel
2018-07-26 21:41 ` Jakub Kicinski [this message]
2018-07-26 21:41 ` [RFC bpf-next 5/6] ethtool: rename local variable max -> curr Jakub Kicinski
2018-07-26 21:41 ` [RFC bpf-next 6/6] ethtool: don't allow disabling queues with umem installed Jakub Kicinski
2018-07-30 12:49 ` [RFC bpf-next 0/6] net: xsk: minor improvements around queue handling Björn Töpel
2018-07-31  2:49   ` Jakub Kicinski
2018-07-31  7:15     ` Björn Töpel

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=20180726214148.2087-5-jakub.kicinski@netronome.com \
    --to=jakub.kicinski@netronome.com \
    --cc=alexei.starovoitov@gmail.com \
    --cc=bjorn.topel@intel.com \
    --cc=brouer@redhat.com \
    --cc=daniel@iogearbox.net \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=oss-drivers@netronome.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.