From patchwork Sat Oct 7 06:31:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 29864 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D2D991B227; Sat, 7 Oct 2017 08:32:03 +0200 (CEST) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0051.outbound.protection.outlook.com [104.47.41.51]) by dpdk.org (Postfix) with ESMTP id BFB701B1BD; Sat, 7 Oct 2017 08:31:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=wtgFANV7c/n05iR1CXBNwVHkpETM8cBxyE0bdYdEL7A=; b=J6vd3VCz025N92zXCE1RXYwOxnNYpNpa1j9UeljtMclusNbHnmJ5rwAMZW+X0s8Cl6JcUrh1GUCOotBPq8t69SAtcCGSGqXcw3vs/RqbdGOVD49DdJD35RreuVp95xDgo15ujs12UR7EpNvK2yiQ5cEZy1SbiSRzyXZWm2swFAc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by MWHPR0701MB3833.namprd07.prod.outlook.com (2603:10b6:301:7f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sat, 7 Oct 2017 06:31:50 +0000 From: Rasesh Mody To: dev@dpdk.org, ferruh.yigit@intel.com Cc: Rasesh Mody , Dept-EngDPDKDev@cavium.com, stable@dpdk.org Date: Fri, 6 Oct 2017 23:31:10 -0700 Message-Id: <1507357872-26475-16-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1507357872-26475-1-git-send-email-rasesh.mody@cavium.com> References: <1507357872-26475-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: SN4PR0501CA0012.namprd05.prod.outlook.com (2603:10b6:803:40::25) To MWHPR0701MB3833.namprd07.prod.outlook.com (2603:10b6:301:7f::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7a4dd853-37ce-4407-67a2-08d50d4d17e9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:MWHPR0701MB3833; X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 3:4lurCZ8s5Z9N5vFb8ZEwDywoWc7q08iepFvL5QACY22AGpu9tiICnodG4CtVgecHbysH6Z2fY+2mJ4wIO7tvvmby2wjf98qF4j5h81zdDNH/AZII1h1SKMi7ZDWJmLvcM5wOrlOFqsqw2/FCJ568WO+YP0JlFyL7yC5/EujE6HKbO6oTkin2k/Ht/v+9E0aM/cB2W8Dad9+bmbQgMDWEbUmeFg4i7OaXOTN+Nl8AJ5tcOiQ6ooVpUFpb2HW2JBHC; 25:Oqpw8ABizCRrMQDvDNGt7ybBhNaiyLcWvqQru23iTd74nRKZdldCBJa+u1SH6JGEdwNxHvH+BxwWZuEnhs9cvUxRQYpQeqwv1N5pYX/l5wwxoGGivEJTvCwhA1/jc0qLog5QykxTULXJxPdE2L2NKc3NHzEpTJStqAgROvxo9rlXBUYcZQY20+dgSHpH0cj44biX8CaQycGRLsedKGwiSR1xikr86qP3gsIf7UQRqx3n8SjakdLtjh/aTgtvG99J9FNtXaQcarr8A/G6vn9oliUF6ruM9CEBP9IvYkiEwpqpZF72iDQquwQwahIEnpcS/UrzNMvcNJCcR1h/XX1rwA==; 31:oY4OrRzef86vas3zyxe9SaBfLJUHQ3itPOOlip5/bGH4P6vZqgrNx+h2d6K91UnW9hXihip7ECz7CXBmnfCGwKnaHfMph3QF15IS5QtyGpEYmXiv37IA3843X8jQqJiAxxtj5JF3k/hXXbi4nkkBLmR3+fR0hQM3P/NA/IjNa84ydjLeIBnISY5pSCKWRZ+2T5XfDvbEW7mamI8WC5Ee3vBxEP8aIht1kYT94DlQogo= X-MS-TrafficTypeDiagnostic: MWHPR0701MB3833: X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 20:N9ZILXrM7CKtGpnZVcp9fGTFhvmnU0BneUHdfvMb4h8ZR6B+R2tomzPzfQdqcvOmcFKV8Wu2mG+sYgesA/nhLxGDK345gOvrO3H/CcZc0vM430Q0LR0gkh3dm0EXUf9GNzMbaHNZB81mu+RLEQTkSeFYwUCfVLYpMqJqKxKpr47F94aCKO+x8BlfJmTJLwJvmZZHf+EU6su+2Czhvi3FBe2vnZG10rGfvoNCTvNkailqA3iPN2UMA+BXtoL3xOmPn88XHI2DMXuihNjbEQNEkv645KtMMTu8iFASSZjRMjuuuHUEIOutl7O1p0uFhzFkoFCl/emgpDYDsY7LhpW0hxjqlh8xXfBFGCTFCSPhmqLkjfkyYFiFxYUci1QKN3qUhJ+1UD9VGwdp0WY8DdN1YWTxotYXVg2oJCf1cSDegW2Ihe6/tt/BCDBvsuESov1AvbI8fUpQzK19V3fg2pe1n83Ku/W2ZgrYesvCJ8CCSp0OQt5Eqhieil/5uV11+Jeu; 4:mXjH53OuXloJPgas4a8TKlQPjtHc/XgmkVcTt+5l+FvwRNoBoa0XRGXfYypyts+NKu1K2IX30bBEgC2ggaZwjI4GwADQCcdjDaMmPhelTaSNw8u5hc3d6CvajzBdsz6XxSps3zD5kqliWc0hSLuzjk6vP7hOL6YCewEDAKPMJDWTi5t4dHCsODE5cgkQ36cajXQxBvZTWBojzSSwKNHkVRkotB75OykzJjl+qGFwFvcbrhLwgmRBb23AsSCpTNcK X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123558100)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR0701MB3833; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR0701MB3833; X-Forefront-PRVS: 045315E1EE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(199003)(189002)(2906002)(6116002)(8936002)(3846002)(48376002)(68736007)(478600001)(101416001)(105586002)(50226002)(106356001)(72206003)(5660300001)(50466002)(33646002)(25786009)(4720700003)(21086003)(2950100002)(6666003)(69596002)(36756003)(76176999)(50986999)(81156014)(53936002)(4326008)(55016002)(47776003)(66066001)(5003940100001)(81166006)(189998001)(8676002)(305945005)(97736004)(16586007)(316002)(7736002)(16526018)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR0701MB3833; H:cavium.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR0701MB3833; 23:gv4wsiSgtsqTnbPzrTuQn/x9c6DiS+KF49n9r+M?= LOvAMYCLyJTpBGV9G+r5CFZtNFBxv5GfXwO/HfGav01nY9vWgglewbhMtMNrCCVsklCzgyMLYYe4BXVJe/IgBAvWF5v1QtY9Pf+hqvBRo2+K/WeQQWm012qdVY/aWBVV5b63vyYMhv0E+vzI44PgJiG162A66ZLDmETwQF5LVHS4whrYDOyCAwZr7kkxcsSrCcbon7ZLOVIXWEowxWKRRwGgXtoazPQYtVAX8Op3BoXM7UCswcW2m/owoaW9MuHYx37yK1XxVxd0xkcq6jvJk2XrjXvrtrHGfBtFPHAEPRUfyUolvSvkd2chGTXtTB7z1tmdi42KReJPH3YJFFlZSN0UqhAk5YXjhOdXDONJhr+fHcb9iOXSG7vH/fqsbccSLntDEbLtmoHPamjb2fuWQX84pw5IEA7tEv6fpwZICZqd4ACcaag+UhAgDUAvv43bcBaLZPgBzt/5ZUQOMCjSfo7PVYRroB6X7jGcYdF4DZjXDOem+HVxlYDTiAqLgCpXEdkaYwVj7L3F4i2QIPJEup1DFf1oWD8ItnhmJv7Z6lCBl8E2RoEJGi3MfNKD1skfY2K9hPr3/X4RdUtozEJkRyhICHF4hYu9THGtIizlhqEOLma6OEgsrtIULWfVkUtuZA+ZUaJy6R5mWt+WAIjjcrmrJGp7fvS2IbWKjVNK/XNnMKoJEYnhCeU7reoUhMknaP9d9OKpNVURIiDdHa+BBTH1qv7XW3s2DjN6lkEadh0Dn5UkIp7/sYQz4vsDffN+2z/b1eAfP5c0uUQ+m6+tIvYtnkxghJ2Ps4cFKUdtBENLMlozTDfOEWIuSPVK/b8SKQdlR9mp8pMcSBJebQvlo8ieqRdQRZTsO3KWRwtMN8ZM8AilpO1hefWvngEySWP22nFybV3JmcMY2MS4/7TKGeDn5R2vs0DDgTbsYaUsm16SkM85SWdZA5IgYKLmGhek5orMwaclyDAvwTdMfN3tG8MOwMyZMBqRS4XQz6Xd6GdLqeop1ow3cYtZJMu4ps9dXIOKXzWVrNn1z9v1ab3R9l0rbmhSE7isJn2nHwBP53Ce9OA== X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 6:uVPBmUpQ3kAvRxpgxoAtdQFj6Vsvqe2abHqyQsrBgQM9pMA2qhMxv9ohF9BtRvM2MJl/IytjRrd8D9AxVXtwMq2VYwX3Dn9wUcoyR/JhWXj29pVQkLxqxFP8sFa/8a9kXHdQ9v7AjVM5nIn4hUPM5vZLkg4O8cRX09gw90sjYB+lnR00Vz2VmD2o8vwEr9wbQx0Jm/qeR+y8KiFWRmXcJMwAEP6MM2KwOYaQa+IjASc08K8RaE8mgbbGDKcXoOKmxZvlnw6YV+auBNPC0kEt8lywj2xvmLFNEpgffy3deum2ZsbBIBLZf/G08k0v4ridY0/cR/ZKKE63kndVa2WCUA==; 5:/eUOJjw/rmv5OAo+vOg1yiLjLXoSZsvWvuT71V830gi1fjf6aQINRlGbRSA81JvfjsUObY432lIT0G1sJR5qdijENnU/tQnwlKkLmr9BcuGIGLRmAtC/uM0g8i2kcamVHhMyaPnSqwei56TO27742w==; 24:ZCzx2cOi/2Vyk0NWiNTIxAhiBAgizwiUjGh3xFKtSIzAyIzLAI03LGZVYdyOXYR4RH0JodAsJqtpfml4DYAp5Z9nOwGHGjnKhkOh14j2E4Q=; 7:V0hvrKhEq0E42eEnVyUClt2eUHdGGdFS+lB6m5GDCk+dTd0J75Af1He3/Wa+ZMlV7V1170mKfG1zIog5CnFQ/QiR2RQycrwEmIwanR/VATpTmAMb6RocVFEyuGS8+HqEVQOidcC1UfkBQbt1w470hKRhcew+KMcpq7EC/TrV6JHHVO579/UmeyETeduYkVeyetyO38WvFsJR5hDO6axgSRTv2RzwnTSc2eb0KCoJDKA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2017 06:31:50.1358 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0701MB3833 Subject: [dpdk-dev] [PATCH 15/17] net/qede/base: fix for VF malicious indication 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" IOV regression testing led to discovery of a minor issue + possibly race in IOV flows: a. Malicious indications in VF-database on PF-side get cleared during FLR flows - but not when disabling SRIOV. At least in linux if you disable IOV while having a malicious VF you wouldn't be able to clear the indication as driver would prevent from initializing it. b. Possible race during PF response to VF - the channel is made ready only after sending the rc via dmae to VF. It's possible due to context switch at end of DMAE [when releasing Mutex] that VF would start running and send another message prior to PF clearing the channel, making the FW consider that VF to be malicious. This patch fixes that by - clearing the indication even if we're only going ito disable VF - resetting the channel to ready before PF copies the rc to the VF, PF can then continue and send an additional message Fixes: 47b302d64624 ("net/qede/base: add handling of malicious VF") Fixes: 86a2265e59d7 ("qede: add SRIOV support") Cc: stable@dpdk.org Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore_sriov.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c index b85718f..18458cf 100644 --- a/drivers/net/qede/base/ecore_sriov.c +++ b/drivers/net/qede/base/ecore_sriov.c @@ -865,6 +865,11 @@ static void ecore_iov_vf_igu_set_int(struct ecore_hwfn *p_hwfn, u32 igu_vf_conf = IGU_VF_CONF_FUNC_EN; enum _ecore_status_t rc = ECORE_SUCCESS; + /* It's possible VF was previously considered malicious - + * clear the indication even if we're only going to disable VF. + */ + vf->b_malicious = false; + if (vf->to_disable) return ECORE_SUCCESS; @@ -877,8 +882,6 @@ static void ecore_iov_vf_igu_set_int(struct ecore_hwfn *p_hwfn, ecore_iov_vf_igu_reset(p_hwfn, p_ptt, vf); - /* It's possible VF was previously considered malicious */ - vf->b_malicious = false; rc = ecore_iov_enable_vf_access_msix(p_hwfn, p_ptt, vf->abs_vf_id, vf->num_sbs); if (rc != ECORE_SUCCESS) @@ -1397,14 +1400,18 @@ static void ecore_iov_send_response(struct ecore_hwfn *p_hwfn, (sizeof(union pfvf_tlvs) - sizeof(u64)) / 4, ¶ms); - ecore_dmae_host2host(p_hwfn, p_ptt, mbx->reply_phys, - mbx->req_virt->first_tlv.reply_address, - sizeof(u64) / 4, ¶ms); - + /* Once PF copies the rc to the VF, the latter can continue and + * and send an additional message. So we have to make sure the + * channel would be re-set to ready prior to that. + */ REG_WR(p_hwfn, GTT_BAR0_MAP_REG_USDM_RAM + USTORM_VF_PF_CHANNEL_READY_OFFSET(eng_vf_id), 1); + ecore_dmae_host2host(p_hwfn, p_ptt, mbx->reply_phys, + mbx->req_virt->first_tlv.reply_address, + sizeof(u64) / 4, ¶ms); + OSAL_IOV_PF_RESP_TYPE(p_hwfn, p_vf->relative_vf_id, status); }