From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0043.outbound.protection.outlook.com [104.47.42.43]) by dpdk.org (Postfix) with ESMTP id 479A999EA for ; Fri, 26 May 2017 08:51:38 +0200 (CEST) Received: from BN6PR03CA0031.namprd03.prod.outlook.com (10.175.124.17) by BN1PR03MB169.namprd03.prod.outlook.com (10.255.200.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Fri, 26 May 2017 06:51:36 +0000 Received: from BN1AFFO11FD031.protection.gbl (2a01:111:f400:7c10::155) by BN6PR03CA0031.outlook.office365.com (2603:10b6:404:10c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9 via Frontend Transport; Fri, 26 May 2017 06:51:36 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD031.mail.protection.outlook.com (10.58.52.185) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5 via Frontend Transport; Fri, 26 May 2017 06:51:35 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v4Q6pQMT014894; Thu, 25 May 2017 23:51:34 -0700 From: Hemant Agrawal To: CC: , Date: Fri, 26 May 2017 12:21:09 +0530 Message-ID: <1495781485-2236-5-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1495781485-2236-1-git-send-email-hemant.agrawal@nxp.com> References: <1495445969-29199-1-git-send-email-hemant.agrawal@nxp.com> <1495781485-2236-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131402550960418912; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39840400002)(39410400002)(39860400002)(39400400002)(39450400003)(39850400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(106466001)(50986999)(76176999)(33646002)(2351001)(85426001)(104016004)(2950100002)(8656002)(6666003)(6916009)(5660300001)(54906002)(2906002)(69596002)(77096006)(305945005)(105606002)(36756003)(86362001)(5003940100001)(189998001)(4326008)(498600001)(47776003)(356003)(8936002)(38730400002)(8676002)(81156014)(48376002)(110136004)(50226002)(81166006)(50466002)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR03MB169; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD031; 1:WHOCbQDuKRjEQyaKviFAQAV5pXHsY5lWM+Xc70g2fvpIgjHUoBswmzhnFZgZPnkYjW6vkmcPc5Dte0a6fWI3BxF8i7x0m6sPVsW95yZkKP2L/n5iutOQhSGUhgd/NWeRmde/5mxbcl4Pj6lwSzmCJ+G7PADWQHh52G4vjaw0af1fjlooMZroY7yoTcHUySASFnmSOn7LxXy0Zf6VHzlE2yT0XSjT937QOcEw3ckIAYlMgnsHz8PfiOUaUvh05csHCXI0TJPtWSQPrNE0Gm6pKNpZO6XWlxFbTnpJ6ImJyxogYLtUQXvOLFcYdIONU9vBId1xKF5fJ23LSrhz34yNt2t85dmYK7frrNCPpBqCoqPA6e0PlK4wJQjr0bHhPWz66iHlEEA3mahbTybONED+Z7UOLhblvEbWvUbVbQ+RlaSybZbq6JHtuA8ubVeIXrZMzpLHaZO6+41BckhguUnXAoS8W8c1Z1bSBMS4pS4wy4+ND4SZ0HFg/b1V016+c/QT8P+GfdM0E6vL7Kkr74abF+bbTRASbIs0tSG1usuZOJ/0Zuld533Up/cXhwfNlrnu7dEhAd0QHnu3UHt6soSr01ZRjE15YaQrgK8fX9PBh6oSJYjQNKFtdLp7kPiLqvkXnnCIK3Jm7HtWQsgzA44BSth58bErx9rsqyczVmKpdnEJtnD2Z4Pw0XkQz7nZWJOpAopbZQEpaV/wkQnCWXi9tA== MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PR03MB169: X-MS-Office365-Filtering-Correlation-Id: 96ad207f-cd5b-472d-7060-08d4a403a70a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BN1PR03MB169; X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 3:RVQ4uUQVt1axB4FHvqifYur1N8LoFglK9yxt++swl2Kgu6UdQSSPi0sig6gxZGu+PB7ltFtlJt5telLqEqagW+fju6Tz6Cc21b5Aa6E+o+rPLXXf/WCi0fhcpXoCVt3O5tnC3GAkPY8zj3JYEXIRXlINZK+tK/LPSiStiZi5xrV0jrMWktJbc94jYDzB4FmPwqjXdGR7dWY64fUlKFtUbzUZ9aiU4/HNlGkOIPvS2PbpIwSudJx0C2j/Xjo6iUHTUctf8yQCyFQeE2pja6abMKITn1IepIDQwyDtkfrCPS1xeD+aYkML+ePqBL+RYFrT7njHYc1azn69oXYxpzS4yjTkURmzy8JBKaz1G0/k/+B1M+NQe8r2tKjmviLcojyZRSYT9QaZf+U+7S9vN/yoS75yRxyUOk1UfVXhmKKTndTeSgs73U5IkmI3V++Reoln; 25:xkCTnh3uW5oNTeZ5JzD7TP2CIJsp3LBHJY3KUfi1BONolhpSV3lv9QXB9lVOthi+bFuB6JG1Jsvi3cmdoaGVa0kQRt8RJmt3sMf7CQ8msZm//ZTKlyk7cMMboCvqJuAipZ1kg8i3BKeCwRnfxX8GRgac8m756Kq6R2SQkQYc50vvkwZJmRWCHnEd6rsydJFOfh5CjVKaat6hhh8/zsNLchnZJp82NfRHr7wcYKmQl4k26vJ5BM3u0DuzuSKte+ZeK9kvVvlpA+SHmgYbv1SOn+4xBGb28n+OUnV9yG0BEmtDUEt2i7MS1Bv0gZQlIZE1ck2zS5rjldS8Q6BgSUxDSDFD54ApWlHFKLpo5CCI+oHJHaVJzyeoL3SRqWrVNhvKv3Tam0As/+XsotrjnRQJES+ibEufIi4c6hROfdYRnEHpoG1Nzgz8OwfWbRwVqx9SmDQfa67s5vg29pV5IDAY/pQsJc2tbwYw6GVPaTKoMow= X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 31:HAEDRHELSKKZEDt5jvOw5NNndvv2cdP73WnZ9WlqQfDjqa8D/KRvtIs3rjI6JsIiPVaUuG5fd4nv5gBPu82cEi4jIz32efqxjOoIXLE2RyUJsOthXYTVyW3rrOITZ2PhjncHQtKOJE+MWvpgRc0axDkYnpmU14Gr+tbMTnAYZpkQ/XPZymEb26N9uMj2tVVcHHWlxw5uWpW6tRitOIpFDczvwHu+F00w6LqM5eBPVSDxddxEroF6PlZVL3xiwn618Me2h5IrjayF5g10rHczBQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700061)(100105000095)(100000701061)(100105300095)(100000702061)(100105100095)(6095135)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(93006095)(93001095)(10201501046)(100000703061)(100105400095)(3002001)(6055026)(6096035)(20161123561025)(20161123565025)(20161123559100)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123563025)(20161123556025)(100000704061)(100105200095)(100000705061)(100105500095); SRVR:BN1PR03MB169; BCL:0; PCL:0; RULEID:(100000800061)(100110000095)(100000801061)(100110300095)(100000802061)(100110100095)(100000803061)(100110400095)(400006)(100000804061)(100110200095)(100000805054)(100110500095); SRVR:BN1PR03MB169; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR03MB169; 4:oWYdBqPkppThznij1CH0VRPr/t2ajjjyhHbvrMKUfTx?= =?us-ascii?Q?zcJvXkxfr9+6AdVV8ViWzIi9L+D2tY4XHbOm4sCjX1VO+Uxfutm5x/dPVdAm?= =?us-ascii?Q?wIMnpAYDJeeDJm8eZXrLnt+LQGKa7g9Ti2XlJbI+qyxqgEpCgrte70f2uXF6?= =?us-ascii?Q?SmOGjAXwqiJ2zhy0JUMVbwMpcbwoANIfPuh+GKyj882maZ5UF3E4SBU1Xkf5?= =?us-ascii?Q?43LzJ5z88c3mVEoEcNoHCk3vKzWDMFUE9UXkz51tpqOhV+dbijC9ZHtwZdud?= =?us-ascii?Q?jEroSPSEQUFL8zM3dOo1rHIvKInSetnAXCfVNzEaMZj30YDmdyAoakCpY6lp?= =?us-ascii?Q?ZbN+aqaw1sYGKtH5UO/rAASeOyOtCJma9zyCKZiOYgVqOQzKNRAru5ao/qMQ?= =?us-ascii?Q?7bAC8/DQGdyy8XeV79swiTLR+jnqiIKyNgab/pZX/ReT/y0Av9yRQ+MDwfRj?= =?us-ascii?Q?1416AXH21bwwFs46QgT969Bp5LNg2Sxyx7lePpiMVyRI1pYxly9K2B6uP9iH?= =?us-ascii?Q?kEKGCLuHtPzalmtciwo6bSO4KttnJ+nInKcuWZROgyJUrYDc68nTQwGWmBpg?= =?us-ascii?Q?XFJSLQa5bfjR0S8yJT9pDCpoQRd/nDuocxhoz4ED6mdjRESysvYe/V9sVzaP?= =?us-ascii?Q?e79KTLieKa6P47cIyinXSp9kTK/OwKSuLBzge1j1pLSJHFRgXAiydkJYmQeW?= =?us-ascii?Q?QgpUqxCogj7J4mO5du7XtUl4md1Ua6X+D+1e0dOTD8RJ4jgYUgONIDYGzJx7?= =?us-ascii?Q?HJG9fuoPvW/EDxJKyGyndvimhBV+cSCy3STf0dLDAMBknTpDI1gtB2a4hUnE?= =?us-ascii?Q?5gMBBtURDxr12AGOy6Oc1e23NRfzGgT9gd93CV2shDC9VsMon7BeUilIAamv?= =?us-ascii?Q?gjMyoaTXFj388WykZB1w8UzSk6ZL7qNmT03sCLbpVn9I+SZcIIN9fL6ZO/oG?= =?us-ascii?Q?EPWLh9cK/LV9vAsh1zmJrjgjnGhJj3tVWfmbVinB9zYh+LiA13Pz7L3b+8bj?= =?us-ascii?Q?Xe4s23RloXevr7rmqnzeMT1jFeWCJjjGvOA/1wE+rTtBxBOquuPJkZphzo1+?= =?us-ascii?Q?4covHEqy8vhv17odCMuOWoxINADRYRSTT2mpcLrWBPWgY8FAdIbXMbQD0XEK?= =?us-ascii?Q?1ZO7tDTyXo7yBBLvM31ZzBPGQ5d/hj0E61Zq5t0otx9b1AVwe70+JVvhtXwS?= =?us-ascii?Q?o4sWwkPtrrtYASVinCT2oBr3UZLZjq9KRr3awaI5wpse12qALEAyfIL8lL0A?= =?us-ascii?Q?bptz9KBjIrJKstG3PC4k8MfdLr2qGhP2YI/we?= X-Forefront-PRVS: 031996B7EF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR03MB169; 23:vu+OhlaQ/0KY7bJlUHmSkntygls6hehv7j629VcQaK?= =?us-ascii?Q?SyngvOhrUWJ+KgXGhwWopulyDG3wBPanagvCBJudQyaEVxUOt9hRX/HL3ppi?= =?us-ascii?Q?4913vZoX7vrPpuSNFiX4QONOeGJFR1Xq6C1bKU0fZ7ec14xBVxc9w0Ixduoq?= =?us-ascii?Q?9mHvkNlsKFOKhqaHuRTMiGicQUXk8uDiu1EUn3LjBoDlFvZhA3FBv2fq2n7u?= =?us-ascii?Q?W2ghgzI9aoWJSjp4B30c3q0rBuZ4L5j/gX/Vb8F5/QAZ/ahbxN3wKct7MVl3?= =?us-ascii?Q?OLoIJ7KUqRiU55cqzsbIbn2SmS8jlZC8Md91smACiBlr+/nWCvC16Qi/2gI+?= =?us-ascii?Q?rz4xDT78kfL76emvmY2fe46dSWqbsIV89pLW3NH7RXy8OtEqUoHE1c2JTHNm?= =?us-ascii?Q?qhFNl4p7bYLPhYR/gbVYLMzQ6v8SSQJz3nwEmFRo1tn9pl8/5+gslDRlPnQ0?= =?us-ascii?Q?IwYkhPpgoNBOt440VVmAfPct8zPMn6hbTDhrGpfI9Lxx94ZEjaI39I1SpwIn?= =?us-ascii?Q?NyLJHtzHOe81dGQMgQo+TmSoqB5/8oRLl/PO9QNUSHXRwHnG04E+dOwLvTjo?= =?us-ascii?Q?gdYQzJfrtUrvV4cVsGVusTeo0fo9IqQpCwYqpmkK7sCSXjq+v2JSHCpr3S9j?= =?us-ascii?Q?Rdd82bBESmGKgIbB77MAJ8syxNq0ggRqoZ/VrbCeJAYcrh7QhzbqjnWSI3Mu?= =?us-ascii?Q?wQpXQKnzpx8VfeAKCZS8FW2UPbC16YqQQ262mzlYlTTBlrhLLubunJP7ostr?= =?us-ascii?Q?EvHqc3eQ0xOpUSZWlPc26RJ/9pTJjNl3oRQVssEOxswRiwbhDc/40lWRa3LM?= =?us-ascii?Q?teHbHGpsxFkUy4FUm+xBr1kDiP/YjGPg3v48vFeto0oDlKZFZ29mwe/RHfCE?= =?us-ascii?Q?MVUk14T7CqfySMfuvz/39A71WwRKgKnI0AnFK0x7DoZOqcCXssZPToiXTBZY?= =?us-ascii?Q?Qec8DRdILBdqSEaB7OX0e75/MPAFKwgxONM+xbUTRIhxETguo/4hsVU6nOsm?= =?us-ascii?Q?urqkdI35JoKQEDPAjlpMAnCyvBt4E0AVCfcethi/uJYtmakgcnyZja+A5KiO?= =?us-ascii?Q?ypfavGO1/IerjnrahfNdgQRlrFJ1Tt5MsW3Cc9xn6TIwu6DdbJac6wjoCFGF?= =?us-ascii?Q?MCmaYfQLfje6aZqY/aEGFSAwVXFML5VXGlzWWSBZ9eNev62BqmBjnGqP9OA1?= =?us-ascii?Q?5HuoirE20Ti8ZXEr4y1Aw8HIuWhapW8g6WqYRG+5GGoiTTmW9B//2Vvmr0VU?= =?us-ascii?Q?DKpIab0Mraeia/Oulg+1Lh/qTgRAdhjxfx2h1BcMQyImnnhkGqzstDO5fQTQ?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 6:IGs6whCjQxCWF3GPE6x+BbDBxXIgapTqE6hXT9wEj1HDWj5Vtb4nf6iV9LoMRxalJmpy1Xl/hEIDTZXesG/toi+vsbYXJSpwrtj3lUQMEKVbmEhpOUegIJgtyc7WkQ7b+Ye/DeJJsaF+rSU5EmdW2YDKn2kwGJpE5dUGcw3i89aoI3eUoACRqtt//ziP/9Y98GD/2IKDsx2xl4AdICAc+ijTkMqij2WrIoSNN2zkULdPM/2s31Batztlk3WHo/DKtjX/7jI+VwuJtkKQk9ajwPH+fwXyuY1oz3ZVHChv9X+2X9bm98nhkshoS5WJJDql5EoYKPa95SzCXC8MmEzm0EALRUbNiGDXGzFGU1P8Ym7rtogRmT8WyiedCL6UnvKRtmzVa8n5iLPsdz6kg9YyRvYLqX4VsBefjT0uQVONxXqEW/0ysh5jTpCOnc1vMD3xYWNIu2GIJaJ/HBuz15eXfEbDilZ8MV0zu8cED4zwRP2xmuJA+r+7uKrYpZ7I/0F3 X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 5:Ky9Rnuee36P3hQxi6wSbWRIC07442zb3LS+FMt/LvKHAYuLWHGNCH7Ih2OYmTtcCJh07qE7qf9/D0rNNHQTe33xpk1IvmT5eIZmOLM5uL3cEhV6B7qDSctxGNbESufyI8Qx7V8RbXhBAk+dqiDuqopGXCtDL9YWtnqyD3L9EVkZFHNty66PqVgQHhwLSZmMd+/KVxM8unmpBRCSZatGE2v5QltZ6NuCyHPdB1zhuGnFeK7BArXAbaKWZYD2zsLQXE4X6zeYldhY+Mct1YcR2ienKXrufxfMlkFB4/fAkym9gMVrR1b1YfR7XGwkqMZ5FUrIucL96i8FtKPVO5vZYL4DHTpXODGBbvEAUF1XBS2HyAtPTwk02Xp2SsRr+o6SM8bVFaxIXn2H+Zi0LPto3iMcyndc8xXkAL6b1Nwn1hXOzRKr/g5BUMGHjWBVs7jAWQ2m7OKv2+PucglMyC6DNKrpzXgluue9lKcqx6eh1Jmvg1e3tWAYjOo89WvCQPINxM5buZQv9iF2g8J3gLUoBsw==; 24:afOdb6QlXZqpyg7FrJWyCjMm5Aucg6oysF1VT9kIYkZ3f0p10eZoKi4bVCjwq10FwKjrgCMPjXq6rzxNadmQ/P9M1krTi1lxFkx7KHnd0/8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB169; 7:0s15f2P1uHBxzAPi9/ecW7FZWs8wu5OkqkobHzYQdPv2oVN/06/xA2Hl4hVeouVaEA5N9cEWULTOD8/DSWac91zE50l85DN74ZYFzsxhttM0sl1X7r7G/w2HX+G0yJ4bCKV1Zhoz40gwoJMNpDrYFJv8AO7Cdr4Li5LWrvyKpauczGwoyykeuQf6I+1yup/VhSoCFdrKbUmuK5aP6J2wffUvPMuWeaOjIVmDYkAHJjhpVccd+CVstl7yPyTL6/qebFOyLrVXurYGwQeQ3uFTjSrzh6KsnVoM8uMYPWuae6QubtKI/UBqa1naDMlkYBVYvImu7bWfbUjsbM4k2FJz+Q== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2017 06:51:35.8234 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR03MB169 Subject: [dpdk-dev] [PATCH v4 04/20] net/dpaa2: improve the error handling in dev init 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: , X-List-Received-Date: Fri, 26 May 2017 06:51:39 -0000 Signed-off-by: Hemant Agrawal --- drivers/net/dpaa2/dpaa2_ethdev.c | 69 +++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 007eda7..698fb84 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -54,6 +54,7 @@ #include "dpaa2_ethdev.h" static struct rte_dpaa2_driver rte_dpaa2_pmd; +static int dpaa2_dev_uninit(struct rte_eth_dev *eth_dev); /** * Atomically reads the link status information from global @@ -772,7 +773,7 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) hw_id = dpaa2_dev->object_id; - dpni_dev = (struct fsl_mc_io *)malloc(sizeof(struct fsl_mc_io)); + dpni_dev = rte_malloc(NULL, sizeof(struct fsl_mc_io), 0); if (!dpni_dev) { PMD_INIT_LOG(ERR, "malloc failed for dpni device\n"); return -1; @@ -781,24 +782,28 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) dpni_dev->regs = rte_mcp_ptr_list[0]; ret = dpni_open(dpni_dev, CMD_PRI_LOW, hw_id, &priv->token); if (ret) { - PMD_INIT_LOG(ERR, "Failure in opening dpni@%d device with" - " error code %d\n", hw_id, ret); + PMD_INIT_LOG(ERR, + "Failure in opening dpni@%d with err code %d\n", + hw_id, ret); + rte_free(dpni_dev); return -1; } /* Clean the device first */ ret = dpni_reset(dpni_dev, CMD_PRI_LOW, priv->token); if (ret) { - PMD_INIT_LOG(ERR, "Failure cleaning dpni@%d device with" - " error code %d\n", hw_id, ret); - return -1; + PMD_INIT_LOG(ERR, + "Failure cleaning dpni@%d with err code %d\n", + hw_id, ret); + goto init_err; } ret = dpni_get_attributes(dpni_dev, CMD_PRI_LOW, priv->token, &attr); if (ret) { - PMD_INIT_LOG(ERR, "Failure in getting dpni@%d attribute, " - " error code %d\n", hw_id, ret); - return -1; + PMD_INIT_LOG(ERR, + "Failure in get dpni@%d attribute, err code %d\n", + hw_id, ret); + goto init_err; } priv->num_tc = attr.num_tcs; @@ -831,29 +836,29 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) ret = dpaa2_alloc_rx_tx_queues(eth_dev); if (ret) { PMD_INIT_LOG(ERR, "dpaa2_alloc_rx_tx_queuesFailed\n"); - return -ret; + goto init_err; } /* Allocate memory for storing MAC addresses */ eth_dev->data->mac_addrs = rte_zmalloc("dpni", ETHER_ADDR_LEN * attr.mac_filter_entries, 0); if (eth_dev->data->mac_addrs == NULL) { - PMD_INIT_LOG(ERR, "Failed to allocate %d bytes needed to " - "store MAC addresses", - ETHER_ADDR_LEN * attr.mac_filter_entries); - return -ENOMEM; + PMD_INIT_LOG(ERR, + "Failed to allocate %d bytes needed to store MAC addresses", + ETHER_ADDR_LEN * attr.mac_filter_entries); + ret = -ENOMEM; + goto init_err; } ret = dpni_get_primary_mac_addr(dpni_dev, CMD_PRI_LOW, priv->token, (uint8_t *)(eth_dev->data->mac_addrs[0].addr_bytes)); if (ret) { - PMD_INIT_LOG(ERR, "DPNI get mac address failed:" - " Error Code = %d\n", ret); - return -ret; + PMD_INIT_LOG(ERR, "DPNI get mac address failed:Err Code = %d\n", + ret); + goto init_err; } - /* ... tx buffer layout ... */ memset(&layout, 0, sizeof(struct dpni_buffer_layout)); layout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS; @@ -861,9 +866,9 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token, DPNI_QUEUE_TX, &layout); if (ret) { - PMD_INIT_LOG(ERR, "Error (%d) in setting tx buffer" - " layout", ret); - return -1; + PMD_INIT_LOG(ERR, "Error (%d) in setting tx buffer layout", + ret); + goto init_err; } /* ... tx-conf and error buffer layout ... */ @@ -873,9 +878,9 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token, DPNI_QUEUE_TX_CONFIRM, &layout); if (ret) { - PMD_INIT_LOG(ERR, "Error (%d) in setting tx-conf buffer" - " layout", ret); - return -1; + PMD_INIT_LOG(ERR, "Error (%d) in setting tx-conf buffer layout", + ret); + goto init_err; } eth_dev->dev_ops = &dpaa2_ethdev_ops; @@ -886,6 +891,9 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) rte_fslmc_vfio_dmamap(); return 0; +init_err: + dpaa2_dev_uninit(eth_dev); + return ret; } static int @@ -920,22 +928,23 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) priv->rx_vq[0] = NULL; } - /* Allocate memory for storing MAC addresses */ + /* free memory for storing MAC addresses */ if (eth_dev->data->mac_addrs) { rte_free(eth_dev->data->mac_addrs); eth_dev->data->mac_addrs = NULL; } - /*Close the device at underlying layer*/ + /* Close the device at underlying layer*/ ret = dpni_close(dpni, CMD_PRI_LOW, priv->token); if (ret) { - PMD_INIT_LOG(ERR, "Failure closing dpni device with" - " error code %d\n", ret); + PMD_INIT_LOG(ERR, + "Failure closing dpni device with err code %d\n", + ret); } - /*Free the allocated memory for ethernet private data and dpni*/ + /* Free the allocated memory for ethernet private data and dpni*/ priv->hw = NULL; - free(dpni); + rte_free(dpni); eth_dev->dev_ops = NULL; eth_dev->rx_pkt_burst = NULL; -- 1.9.1