From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasesh Mody Subject: [PATCH v2 7/8] net/qede/base: fix to handle acquire request from VF Date: Thu, 22 Dec 2016 16:50:03 -0800 Message-ID: <1482454204-21707-7-git-send-email-Rasesh.Mody@cavium.com> References: Mime-Version: 1.0 Content-Type: text/plain Cc: Rasesh Mody , , , To: Return-path: In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add a check and fail the VF's probe request if VF is already in VF_ACQUIRED state. Fixes: 22d07d939c3c ("net/qede/base: update") Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore_sriov.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c index 1255296..c2fbee8 100644 --- a/drivers/net/qede/base/ecore_sriov.c +++ b/drivers/net/qede/base/ecore_sriov.c @@ -1459,6 +1459,18 @@ static void ecore_iov_vf_mbx_acquire(struct ecore_hwfn *p_hwfn, pfdev_info->major_fp_hsi = ETH_HSI_VER_MAJOR; pfdev_info->minor_fp_hsi = ETH_HSI_VER_MINOR; + /* TODO - not doing anything is bad since we'll assert, but this isn't + * necessarily the right behavior - perhaps we should have allowed some + * versatility here. + */ + if (vf->state != VF_FREE && + vf->state != VF_STOPPED) { + DP_VERBOSE(p_hwfn, ECORE_MSG_IOV, + "VF[%d] sent ACQUIRE but is already in state %d - fail request\n", + vf->abs_vf_id, vf->state); + goto out; + } + /* Validate FW compatibility */ if (req->vfdev_info.eth_fp_hsi_major != ETH_HSI_VER_MAJOR) { if (req->vfdev_info.capabilities & -- 1.7.10.3