From patchwork Sat Oct 7 06:31:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 29863 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 B13C81B21B; Sat, 7 Oct 2017 08:32:02 +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 37F1F1B1B0; Sat, 7 Oct 2017 08:31:50 +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=mPBYjEG8ChZJtdxM+3Cyd+UrwfrIdiw+ImCt0dqAP3Y=; b=fdsVsR1/UEFFitXZ/Cv7Oxxb2ykMKJ7zSZYMymJlvg/uG9FxpBFyQzE/gKLc8NSYErvfCs3vDZIim3zCOyAIqQhq7Q2u2EJXdfS9xr0hsLTbXSHMHZajVrhDCe702f3b7bWCP/iWmoK9P2qP+Kan9lxUW8yoGl+n4WouTAF73K8= 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:49 +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:09 -0700 Message-Id: <1507357872-26475-15-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: e92a6bf0-15f8-415c-6e47-08d50d4d174e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:MWHPR0701MB3833; X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 3:3yVx0ks4ooaj5sb/OWYlqQp5krhq2Uh5IyGROFV+NRqBVB/J7J/yThsI2Y5sow6lg7WuZ7tEykIfyF5TdXIzvpdt8PCh8/OKriXpPM8GQxLhfyb4ZGvjeuXSGAPCSneuyhHxxmeFpdyV+er/eK32+kGJ5Xke0zQ/SxrohWIrcbtukUyBC1v4eijEcwgd8QR4drl6oLHS5yFwc2uXJxj5VUctz5AX//7Vs4lggGbhvl3cWeRHa1kgu0oa6fEI+bca; 25:NeXfobi2km+fSB2y2CKMftBKOMng7tsekIhLHaeplgiNvWUWDgqtjpAeRwck3mzwYRRR9AXkhfrvNSciH5hufxneU/w2+81HcrO9WwwapApajz2rTyJGa1tpddOUNgoZVDELCxf8nwOBh5sBbw72RW87zdaCi4Vdzg4w28YubHd40fbD00s0EsPqFcXLANoH3lYF3ZArZZcBdeoHRQCEKIjGv6w4zNDfXkg23n1UITFHaOMZLmFSV96FItraLJxzNIB3H51xJOeCjwIg0y1THY4TdEXwmvP2joYEVwu02Ow2rJ504cX0mvc26e/+ciOlpaExTLq/3UCnQyq9x1A0wg==; 31:1mLqFSHYx82JQ96/9u2eGhR9YB8N4JDwjjb73kgORo2UzeYMHrSxbxKVdSOjGmE4gMaxdpj3JhzE6wLa2ZSJNxzGkzdjx+Vr6Po3yRdKHH9yHE2CPAX14gysjlAqDJM0PTU+thLJMnr8AlaEGBLQeb5dis73HsepyHf95FBOwFEJ7QsGRcX6oMgrg3Ym5A6p7Txl8z2P2zg28RqSbdhprnkuaiy2KqEz5wTsoN0LSpo= X-MS-TrafficTypeDiagnostic: MWHPR0701MB3833: X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 20:ZQjdUmCpVOWY6VJzijeeYAKVW6P4jSG5ECkQ/Fmqbsjfu8nBS+aFhRisVf1KEfMuPj8jPy3IJWKFlx7Ijv432+KnUzV0Rx4VwPAhSBTedx6neJUJ3Puhu67bCgIxaV3TWDxiysNU4cylV6hcBwDutlBmHnYk2xzvvvDN7oz9PKSK7Tg48VlBMGJ0099mIekE3EPjwzHG4fTlTlbGkfnaXob7ADi8cnFi8oA99as47WDZtsVCYIcD84AIBsulPFcnePfK0sc+nMJeR8iXfUTqAsBKse2JZnoxYH+TGBQ59m+Ti+ut74jVBrFdYR5E4fwbuJTv8IUVeTrdlvVMXufcHKVJ3C3Cx0GXCBRY4kPoZhmWxuh2LUf57WvFDPkPJzAwKrvYPxlBztP09GE/onhIehdYDcm3SlNl4x7v6sszjcjU/51pLhbOO8APifVrJLII+3riG2AfKTBYBJhFsbUXpxIdh4Mg+SimhsRxD+6W6kTMjmtS9UOTJkvyCJyzT4eQ; 4:5WaY8MR9bQO5Ku6hhT286p8rM7ECqgcMGQGw++KcDuFAvO7T5xgaQYIV/254dijsFd33FYMi0a+BQGKeosDyJhZopT1N54m24S2kjY3dOJwbvkUKt9NdQx95HWCQEiCCFIiVyq0ZHxpCFZDZdEsCR40Dqo5gF11fma1BMwrPhoaDCdZCzIiBPuX1oyrTWdzvHzogXGlPZjQnhONUzSF/KdFCv1wE7iEFrGTF6Ukp0RAEu8+1HcPzPsUOWZrATuTE 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:p50vZIXO+rXRyAkev/kqih0XtyKlAx5VA0+/yxj?= v399f4uqAtWZSq38Zh9SDx6Uqk14TYzQnxTZg69VRNxWtiFIWIlmqzeol15auBsxJPqEFEjrh9rQ4BZHVY0TEMaDQ+KdN2uzF2x5Zyxmm4qjL+gypo8hpjoXRmmF/BUePWFlU4sKMMZSzf2BCEqQ5702BhJpTgsrpDfZvGKAnOQ1AlvtZOBe6aQcbJYpgbq/+D69E2zKQIPV1O6bn/kWT9anpRAfnSFt9dHACLcJRgYZoyN/Q/fExzZVQ3qR/710tqn1C0XJwjh7qqWrz8ZON6yiPl/pHuWsf7oqZ77cTE/kdS+sKmR2FuRVhFTCQGgh/wHgn7yINnCFZ6q5CHiOc0RhTvSevAMD1FJC/iAEaRmEInnKvDkjQFEoh5sRbhk92wm/r/rcSlZ1Aafg1JoVRKgj4XUzGmPwI/pTXghsvD68Zz1NerCtlD8wVfR8DiXyn2hq21dz/zmH3RsaNLY8BzC2NzMY16GtI+CbyokWbgeUOWB9U5VUdA5cC0la8Mo6rtsGXRSZhUDceqvFzQWjHI/o6N/9TQew8Wt/I2rtpwuQmksU66MuRl3EQuQBOsWHXEfqBMQlKsTLa0U3NWzeIBr1LfiQseY/qXAjsYjCs/iXvgC1MdSU79gwZ7xrEw/6pCM3/G+xD5vGjzBabAZtlUFdsF6ZJ3KtnZlglrWQCDvr1Me4CKZUWYwJlqmduVkqg+XPrTeCF9P3yl0rqRf9Il3PBS+ev3u8lKnoS1TBwgXKro3QmF/Gr3VVuNNdjlN1s58jf6H/qLUNpGFOHxGnuGDh8UH34BYTzVCXTqG4GJJCFjNyQcv6Xh1M85/G4nMf1X4hjKU99PnBYtbpzfDrtJsIC/fJBJuF1vMTvEgt4aaWUrvEDWT8OPlavxRkC6M0qyP2kuOSn/jtfjncFPOyWOH7c+syCmiAvPYxiV6ogdZl8mP9fytY5xasIeOOSZEaB9yRT/KZlKC5BOpuwEQ+Wf1ggJlD1sH93RoSpDtB/KSkLfGC0hMbLQALxQAijBmzNoR0zL4zQaTIqSWVK0qKKF1GJMTbtn9zhGfQJTlivha1O9w== X-Microsoft-Exchange-Diagnostics: 1; MWHPR0701MB3833; 6:oqL1VHuiSBQfMIoTyEyr2prxAeyPwUaNA8SdEBZwLgQ3r8+dmL8XBi5ayAxDzPpVnFis8opiHcSDdFzhRx91h6D1780fUm5zDVlLr8YAjKwoMDDbc6SZCtJCtMHOHJmEKWxG8TIU9SSos75c2dm02uoZSx45Pr0kVl3Udxot88iZ93vSm1x53okiq9WKkUOyTqS6cTycKIs5QYULDUIDXg8BEJYvRfWiAGysjApKtZNzC9dEE0zk4gBhDdOZ6voGF4wr21xnHpFLXprWPJKjbZv1/H/f+toSkr15cYC529o70dvCvDmWeFpwy5HW1/xqa5Xf80D8FeelUbrY8I7/sA==; 5:sX43gZ/H7b9Mk1+664SoDx37s6YczA4IkQEUZIjVEnm5fTwCjNGNGGIK5jgQOHYAn2Lt0nYCF0tVKAfgvZ4fwVbCPPIp2cQ+kdVVBFGUAQl9Wjhi3L8RRftTBd4L5l1kMaZmfs7EkrPUFEm6sOGGlA==; 24:92Rg7EtAzaGcLhYS9M+ukd8Nfi7KfIrzZnhFwLj+kH2dHk9pHqj/WnxHjJbHhv3T3bvUvsUIoTds3BY8HdAeN1oKT8J7KDkgHcq7cHini9A=; 7:Mr3kH0vsnI+9x7NytxaOOB4HrNqkBh7x8e05HTfb7CXGwKcU9oq/gNgMR0Xyej0SlURk5TsfNDMCAbvx97iUFpSdgPiKk42st+CTAH99kOjABtFQf0zMsgTYYGvX1qEZ7j2xAYtoy/4ptXqp2ZRWbmeWSss/GjExeVW2agiZJG8Xgli8KMRdaagfgNhzWAsl6B73D3JrIsLUIxl/PQLaDbasSJtwvy8qoCdXQE7/ve4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2017 06:31:49.1202 (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 14/17] net/qede/base: fix access to an uninitialized list 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" Fix an access to an uninitialized list when the management FW is not initialized by simply doing the list initialization always, at a previous step, before ecore_mcp_cmd_init() can stop in the middle and return. Fixes: c1796ac8da2d ("net/qede/base: revise management FW mbox access scheme") Cc: stable@dpdk.org Signed-off-by: Rasesh Mody --- drivers/net/qede/base/ecore_mcp.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/net/qede/base/ecore_mcp.c b/drivers/net/qede/base/ecore_mcp.c index 85cd271..3802aa8 100644 --- a/drivers/net/qede/base/ecore_mcp.c +++ b/drivers/net/qede/base/ecore_mcp.c @@ -156,6 +156,9 @@ enum _ecore_status_t ecore_mcp_free(struct ecore_hwfn *p_hwfn) if (p_hwfn->mcp_info) { struct ecore_mcp_cmd_elem *p_cmd_elem = OSAL_NULL, *p_tmp; + OSAL_FREE(p_hwfn->p_dev, p_hwfn->mcp_info->mfw_mb_cur); + OSAL_FREE(p_hwfn->p_dev, p_hwfn->mcp_info->mfw_mb_shadow); + OSAL_SPIN_LOCK(&p_hwfn->mcp_info->cmd_lock); OSAL_LIST_FOR_EACH_ENTRY_SAFE(p_cmd_elem, p_tmp, &p_hwfn->mcp_info->cmd_list, list, @@ -164,8 +167,6 @@ enum _ecore_status_t ecore_mcp_free(struct ecore_hwfn *p_hwfn) } OSAL_SPIN_UNLOCK(&p_hwfn->mcp_info->cmd_lock); - OSAL_FREE(p_hwfn->p_dev, p_hwfn->mcp_info->mfw_mb_cur); - OSAL_FREE(p_hwfn->p_dev, p_hwfn->mcp_info->mfw_mb_shadow); #ifdef CONFIG_ECORE_LOCK_ALLOC OSAL_SPIN_LOCK_DEALLOC(&p_hwfn->mcp_info->cmd_lock); OSAL_SPIN_LOCK_DEALLOC(&p_hwfn->mcp_info->link_lock); @@ -244,6 +245,16 @@ enum _ecore_status_t ecore_mcp_cmd_init(struct ecore_hwfn *p_hwfn, goto err; p_info = p_hwfn->mcp_info; + /* Initialize the MFW spinlocks */ +#ifdef CONFIG_ECORE_LOCK_ALLOC + OSAL_SPIN_LOCK_ALLOC(p_hwfn, &p_info->cmd_lock); + OSAL_SPIN_LOCK_ALLOC(p_hwfn, &p_info->link_lock); +#endif + OSAL_SPIN_LOCK_INIT(&p_info->cmd_lock); + OSAL_SPIN_LOCK_INIT(&p_info->link_lock); + + OSAL_LIST_INIT(&p_info->cmd_list); + if (ecore_load_mcp_offsets(p_hwfn, p_ptt) != ECORE_SUCCESS) { DP_NOTICE(p_hwfn, false, "MCP is not initialized\n"); /* Do not free mcp_info here, since public_base indicate that @@ -258,16 +269,6 @@ enum _ecore_status_t ecore_mcp_cmd_init(struct ecore_hwfn *p_hwfn, if (!p_info->mfw_mb_shadow || !p_info->mfw_mb_addr) goto err; - /* Initialize the MFW spinlocks */ -#ifdef CONFIG_ECORE_LOCK_ALLOC - OSAL_SPIN_LOCK_ALLOC(p_hwfn, &p_info->cmd_lock); - OSAL_SPIN_LOCK_ALLOC(p_hwfn, &p_info->link_lock); -#endif - OSAL_SPIN_LOCK_INIT(&p_info->cmd_lock); - OSAL_SPIN_LOCK_INIT(&p_info->link_lock); - - OSAL_LIST_INIT(&p_info->cmd_list); - return ECORE_SUCCESS; err: