From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sameeh Jubran <sameehj@amazon.com>,
"David S . Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>,
netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 5.4 33/50] net: ena: rss: do not allocate key when not supported
Date: Sat, 22 Feb 2020 21:22:18 -0500 [thread overview]
Message-ID: <20200223022235.1404-33-sashal@kernel.org> (raw)
In-Reply-To: <20200223022235.1404-1-sashal@kernel.org>
From: Sameeh Jubran <sameehj@amazon.com>
[ Upstream commit 6a4f7dc82d1e3abd3feb0c60b5041056fcd9880c ]
Currently we allocate the key whether the device supports setting the
key or not. This commit adds a check to the allocation function and
handles the error accordingly.
Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/amazon/ena/ena_com.c | 24 ++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_com.c b/drivers/net/ethernet/amazon/ena/ena_com.c
index d6b894b06fa30..6f758ece86f60 100644
--- a/drivers/net/ethernet/amazon/ena/ena_com.c
+++ b/drivers/net/ethernet/amazon/ena/ena_com.c
@@ -1057,6 +1057,20 @@ static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev)
static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev)
{
struct ena_rss *rss = &ena_dev->rss;
+ struct ena_admin_feature_rss_flow_hash_control *hash_key;
+ struct ena_admin_get_feat_resp get_resp;
+ int rc;
+
+ hash_key = (ena_dev->rss).hash_key;
+
+ rc = ena_com_get_feature_ex(ena_dev, &get_resp,
+ ENA_ADMIN_RSS_HASH_FUNCTION,
+ ena_dev->rss.hash_key_dma_addr,
+ sizeof(ena_dev->rss.hash_key), 0);
+ if (unlikely(rc)) {
+ hash_key = NULL;
+ return -EOPNOTSUPP;
+ }
rss->hash_key =
dma_alloc_coherent(ena_dev->dmadev, sizeof(*rss->hash_key),
@@ -2640,11 +2654,15 @@ int ena_com_rss_init(struct ena_com_dev *ena_dev, u16 indr_tbl_log_size)
if (unlikely(rc))
goto err_indr_tbl;
+ /* The following function might return unsupported in case the
+ * device doesn't support setting the key / hash function. We can safely
+ * ignore this error and have indirection table support only.
+ */
rc = ena_com_hash_key_allocate(ena_dev);
- if (unlikely(rc))
+ if (unlikely(rc) && rc != -EOPNOTSUPP)
goto err_hash_key;
-
- ena_com_hash_key_fill_default_key(ena_dev);
+ else if (rc != -EOPNOTSUPP)
+ ena_com_hash_key_fill_default_key(ena_dev);
rc = ena_com_hash_ctrl_init(ena_dev);
if (unlikely(rc))
--
2.20.1
next prev parent reply other threads:[~2020-02-23 2:31 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20200223022235.1404-1-sashal@kernel.org>
2020-02-23 2:21 ` [PATCH AUTOSEL 5.4 07/50] mac80211: consider more elements in parsing CRC Sasha Levin
2020-02-23 2:21 ` [PATCH AUTOSEL 5.4 08/50] cfg80211: check wiphy driver existence for drvinfo report Sasha Levin
2020-02-23 2:21 ` [PATCH AUTOSEL 5.4 10/50] qmi_wwan: re-add DW5821e pre-production variant Sasha Levin
2020-02-23 2:21 ` [PATCH AUTOSEL 5.4 11/50] qmi_wwan: unconditionally reject 2 ep interfaces Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 28/50] i40e: Fix the conditional for i40e_vc_validate_vqs_bitmaps Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 29/50] net: ena: fix potential crash when rxfh key is NULL Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 30/50] net: ena: fix uses of round_jiffies() Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 31/50] net: ena: add missing ethtool TX timestamping indication Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 32/50] net: ena: fix incorrect default RSS key Sasha Levin
2020-02-23 2:22 ` Sasha Levin [this message]
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 34/50] net: ena: rss: fix failure to get indirection table Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 35/50] net: ena: rss: store hash function as values and not bits Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 36/50] net: ena: fix incorrectly saving queue numbers when setting RSS indirection table Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 37/50] net: ena: fix corruption of dev_idx_to_host_tbl Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 38/50] net: ena: ethtool: use correct value for crc32 hash Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 39/50] net: ena: ena-com.c: prevent NULL pointer dereference Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 40/50] enic: prevent waking up stopped tx queues over watchdog reset Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 41/50] ice: update Unit Load Status bitmask to check after reset Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 44/50] cfg80211: add missing policy for NL80211_ATTR_STATUS_CODE Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 45/50] mac80211: fix wrong 160/80+80 MHz setting Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 46/50] net: hns3: add management table after IMP reset Sasha Levin
2020-02-23 2:22 ` [PATCH AUTOSEL 5.4 47/50] net: hns3: fix a copying IPv6 address error in hclge_fd_get_flow_tuples() Sasha Levin
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=20200223022235.1404-33-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sameehj@amazon.com \
--cc=stable@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).