From: Rasesh Mody Date: Fri, 23 Dec 2016 00:50:03 +0000 (-0800) Subject: net/qede/base: fix to handle acquire request from VF X-Git-Tag: spdx-start~4916 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b765730bc13e008e2b3452a2e6dffb2d24994035;p=dpdk.git net/qede/base: fix to handle acquire request from VF 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 --- diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c index 1255296636..c2fbee872c 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 &