From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by dpdk.org (Postfix) with ESMTP id 06AE71B1FB for ; Tue, 31 Oct 2017 11:31:19 +0100 (CET) Received: by mail-wm0-f65.google.com with SMTP id z3so22053130wme.5 for ; Tue, 31 Oct 2017 03:31:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=PznzjAeIOXE2rOtYBuJRrdWhNDAJlTeJ4SfRC1n3PfM=; b=vc74lssk+m73ddY3ARBN0ZBrZ+WS35AkMFxtGpfWXSBgE5iINziOkSOvB4bisnfgfz m1VRJzMtKFJrS7g0Hr+HlfbGckaqXVtQQxv3TBPMfnflzfOxIGL3rZZggzZSo4aibLjC +jRvM4jTI9iaAbuTPttHzNwZzpZu0qtO3NUE5f+sM8izQ8+K1zo9KgSCLczvAJIn2rc0 /GJlnpRdpn4PXcF5oRlUNwJaI40dloqs3+AReGTR6gMkZwsMNfLND4Dzo0OqRyCoenMc /+NO1OH1rn1IA68qysQ+IyEHUfqT6Ud484vCs+pshZckNToKoB83S2yLF5a1HVtoAg2Q 4Aog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=PznzjAeIOXE2rOtYBuJRrdWhNDAJlTeJ4SfRC1n3PfM=; b=caTi1BihOCmr9F1GEgdMI+gzoqSdmIREZ6RzbCRM71oyuZ4qc1y3c2GLDR1vVaHJlA jds6z7TlQYmqTOqFDoo6ixgAxKC1Hp2YTHwcy6T8JEvKv51wyDZ6n4cU2ulmpDYs5mxf 2QhyDNdrWTZL4BdMRY7qIVaejnfGwswJkMvESW8BvfZ79/P9NjJ+hDokOKfEEZKHPLIY /7CtLDbDuJ7X6GhhcWDKIlyaCT35NQpSdeYoatk4ZTo6tBFC98O2P1WSVmEELcIZow7c 8nOFqnyAqsteyyPvFoPvvQE/lOSVhK8lxcDIUoOjeKTkxDEy4HYT7hc6cyVljHrjHCCQ RJ4Q== X-Gm-Message-State: AMCzsaXhBRSeGmXbQf/6+KHES9JE8SJEFCVLz6c5RYNu3eR0LpdZbMJX OpK3jlyqBJbeLQvlkPEbK4LbnA== X-Google-Smtp-Source: ABhQp+Rc109jhBpAK8qOxHIMiPt1/aKr7wkc+PJSrrJmH5guYuDhnCAwcrxg64wufZmJl1Mtq3PPUg== X-Received: by 10.80.135.9 with SMTP id i9mr2306347edb.31.1509445878938; Tue, 31 Oct 2017 03:31:18 -0700 (PDT) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id i17sm919645ede.64.2017.10.31.03.31.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 31 Oct 2017 03:31:18 -0700 (PDT) Date: Tue, 31 Oct 2017 11:31:07 +0100 From: Adrien Mazarguil To: Ferruh Yigit Cc: dev@dpdk.org Message-ID: <1509445707-19349-2-git-send-email-adrien.mazarguil@6wind.com> References: <1509445707-19349-1-git-send-email-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1509445707-19349-1-git-send-email-adrien.mazarguil@6wind.com> X-Mailer: git-send-email 2.1.4 Subject: [dpdk-dev] [PATCH 2/2] net/mlx4: fix queue index check on flow rules X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Oct 2017 10:31:20 -0000 Users are not prevented from creating flow rules targeting nonexistent queues, which silently makes such rules drop-like. While it can be thought as a feature, reporting an error instead is actually far more useful in order to catch common mistakes. Fixes: 078b8b452e6b ("net/mlx4: add RSS flow rule action support") Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4_flow.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index 86bac1b..8b87b29 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -734,6 +734,11 @@ mlx4_flow_prepare(struct priv *priv, if (flow->rss) break; queue = action->conf; + if (queue->index >= priv->dev->data->nb_rx_queues) { + msg = "queue target index beyond number of" + " configured Rx queues"; + goto exit_action_not_supported; + } flow->rss = mlx4_rss_get (priv, 0, mlx4_rss_hash_key_default, 1, &queue->index); @@ -760,6 +765,15 @@ mlx4_flow_prepare(struct priv *priv, ETH_RSS_NONFRAG_IPV6_TCP), }; /* Sanity checks. */ + for (i = 0; i < rss->num; ++i) + if (rss->queue[i] >= + priv->dev->data->nb_rx_queues) + break; + if (i != rss->num) { + msg = "queue index target beyond number of" + " configured Rx queues"; + goto exit_action_not_supported; + } if (!rte_is_power_of_2(rss->num)) { msg = "for RSS, mlx4 requires the number of" " queues to be a power of two"; -- 2.1.4