DPDK patches and discussions
 help / color / mirror / Atom feed
From: Wang Xiao W <xiao.w.wang@intel.com>
To: dev@dpdk.org
Cc: Wang Xiao W <xiao.w.wang@intel.com>
Subject: [dpdk-dev] [PATCH 22/28] fm10k: do not assume VF always has 1 queue
Date: Thu, 10 Sep 2015 12:38:31 +0800	[thread overview]
Message-ID: <1441859917-26475-23-git-send-email-xiao.w.wang@intel.com> (raw)
In-Reply-To: <1441859917-26475-1-git-send-email-xiao.w.wang@intel.com>

It is possible that the PF has not yet assigned resources to the VF.
Although rare, this could result in the VF attempting to read queues it
does not own and result in FUM or THI faults in the PF. To prevent this,
check queue 0 before we continue in init_hw_vf.

Signed-off-by: Wang Xiao W <xiao.w.wang@intel.com>
---
 drivers/net/fm10k/base/fm10k_vf.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/fm10k/base/fm10k_vf.c b/drivers/net/fm10k/base/fm10k_vf.c
index ba7c7c1..3fba007 100644
--- a/drivers/net/fm10k/base/fm10k_vf.c
+++ b/drivers/net/fm10k/base/fm10k_vf.c
@@ -126,7 +126,12 @@ STATIC s32 fm10k_init_hw_vf(struct fm10k_hw *hw)
 
 	DEBUGFUNC("fm10k_init_hw_vf");
 
-	/* assume we always have at least 1 queue */
+	/* verify we have at least 1 queue */
+	if (!~FM10K_READ_REG(hw, FM10K_TXQCTL(0)) ||
+	    !~FM10K_READ_REG(hw, FM10K_RXQCTL(0)))
+		return FM10K_ERR_NO_RESOURCES;
+
+	/* determine how many queues we have */
 	for (i = 1; tqdloc0 && (i < FM10K_MAX_QUEUES_POOL); i++) {
 		/* verify the Descriptor cache offsets are increasing */
 		tqdloc = ~FM10K_READ_REG(hw, FM10K_TQDLOC(i));
-- 
1.9.3

  parent reply	other threads:[~2015-09-10  4:39 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-10  4:38 [dpdk-dev] [PATCH 00/28] fm10k: update shared code from ND team Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 01/28] fm10k: add PF Tx Timestamp mode handler function Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 02/28] fm10k: add no-op pointer for VF request_tx_timestamp_mode Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 03/28] fm10k: Set PF queues to unlimited bandwidth Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 04/28] fm10k: fix fm10k_mbx_write_copy header comment Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 05/28] fm10k: Add support for ITR scaling based on PCIe link speed Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 06/28] fm10k: reset head instead of calling update_max_size Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 07/28] fm10k: mbx_update_max_size does not drop all Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 08/28] fm10k: ensure VF restores itr_scale on stop_hw Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 09/28] fm10k: ensure itr_scale is set even if we don't know speed Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 10/28] fm10k: correct VF multicast update Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 11/28] fm10k: Re-map all possible VF queues after a VFLR Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 12/28] fm10k: pack TLV overlay structures correctly Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 13/28] fm10k: 1558 DIR_NEGATIVE bit is actually DIR_POSITIVE Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 14/28] fm10k: remove err_no reference Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 15/28] fm10k: fix iov_msg_lport_state_pf re-enable bug Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 16/28] fm10k: add macro definitions about valid ether addr Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 17/28] fm10k: store actual count of DWORDS pulled/pushed from mbmem Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 18/28] fm10k: fix iov_msg_mac_vlan_pf VID checks Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 19/28] fm10k: Fix Solaris build issue Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 20/28] fm10k: fix Tx FIFO clearing for phantom messages Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 21/28] fm10k: create "correct" header for the remote end on connect Wang Xiao W
2015-09-10  4:38 ` Wang Xiao W [this message]
2015-09-10  4:38 ` [dpdk-dev] [PATCH 23/28] fm10k: Add support for Boulder Rapids and Atwood Channel Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 24/28] fm10k: remove report_timestamp PF<->VF message Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 25/28] fm10k: remove request_tx_timestamp_mode call Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 26/28] fm10k: add 1588 clock owner message support Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 27/28] fm10k: TRIVIAL fix typo in DEBUGFUNC Wang Xiao W
2015-09-10  4:38 ` [dpdk-dev] [PATCH 28/28] fm10k: add support for MASTER_CLK_OFFSET message Wang Xiao W
2015-10-07 11:40 ` [dpdk-dev] [PATCH 00/28] fm10k: update shared code from ND team Thomas Monjalon

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=1441859917-26475-23-git-send-email-xiao.w.wang@intel.com \
    --to=xiao.w.wang@intel.com \
    --cc=dev@dpdk.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).