From patchwork Sun Jul 2 07:29:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9821075 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0ADF96035F for ; Sun, 2 Jul 2017 07:34:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC3CF2821F for ; Sun, 2 Jul 2017 07:34:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DF43328334; Sun, 2 Jul 2017 07:34:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A63902821F for ; Sun, 2 Jul 2017 07:34:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752173AbdGBHeh (ORCPT ); Sun, 2 Jul 2017 03:34:37 -0400 Received: from mail-co1nam03on0055.outbound.protection.outlook.com ([104.47.40.55]:65142 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751707AbdGBHef (ORCPT ); Sun, 2 Jul 2017 03:34:35 -0400 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=2GiJm7vsCDUqko3QeGEbgR7Fe2fOuMxUAwgFz5K7gmw=; b=gmfOJz5GXf4e6DiX0gXsjXgIfX9KvKG9xvGlkXxjPsZ+nU+ny5dEq2Rizw6GvVCzGo6SVK7ZOc3EZFjo5DuciaL+uYdLKquz7kEu6LD4GxOVZhv86ebYTH6aIlxKATiyHYjvrOtENZqjtSVcaJsVMnQR33SCAAJke9G+d0KKBg8= Received: from MWHPR07CA0041.namprd07.prod.outlook.com (10.169.230.27) by BN3PR0701MB1106.namprd07.prod.outlook.com (10.160.114.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Sun, 2 Jul 2017 07:34:32 +0000 Received: from BN1AFFO11FD032.protection.gbl (2a01:111:f400:7c10::159) by MWHPR07CA0041.outlook.office365.com (2603:10b6:300:1c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11 via Frontend Transport; Sun, 2 Jul 2017 07:34:31 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=cavium.com; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1AFFO11FD032.mail.protection.outlook.com (10.58.52.186) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1199.9 via Frontend Transport; Sun, 2 Jul 2017 07:34:30 +0000 Received: from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Sun, 2 Jul 2017 00:34:27 -0700 From: Michal Kalderon To: , , , , , , , CC: Michal Kalderon , Yuval Mintz , Ariel Elior Subject: [PATCH net-next 09/12] qed: iWARP implement disconnect flows Date: Sun, 2 Jul 2017 10:29:29 +0300 Message-ID: <1498980572-29519-10-git-send-email-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1498980572-29519-1-git-send-email-Michal.Kalderon@cavium.com> References: <1498980572-29519-1-git-send-email-Michal.Kalderon@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39840400002)(39410400002)(39400400002)(39850400002)(2980300002)(428002)(189002)(199003)(9170700003)(105586002)(107886003)(47776003)(478600001)(38730400002)(54906002)(104016004)(72206003)(2950100002)(50466002)(2906002)(4326008)(5660300001)(77096006)(50226002)(8936002)(81166006)(50986999)(8676002)(189998001)(106466001)(76176999)(86362001)(2201001)(356003)(101416001)(626005)(305945005)(5003940100001)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1106; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD032; 1:Dm7c99cY/If7vHfCJ1LRfiXp5I+gCN9XS+0bzwVa3xCD/YR22Jp9Yezfa+bgcs0mSKj1XLa5xV1IjWJTJz7W6bgn54lStYVQzL3ExRwtUwkjFWxy1OtbjKwuqLCV3L24zGcdFVkaxpEgO3Xae8GgsK4a2YbW+yyFaBeUUSd4s3d69C9wmHJMVJLLxHKFS89WnBhoSfSawKIcZZVd4N4kar0+KU1LCQMzciXL+PVgMPKBcW96XaC30nZoOZK8hIfKvTg5FM6NFRolhb5dUkdgOwAMkIbuBP2CtptOLpn92Sur2ee4lma6VTAxm5GK7LEfQa1GQOz6SRbedc8BpFCacLHJUKqZfRoIoAdsqcFyX0MQ/FthpgVLRuv8Ag3Z/a3TDkqvaHH/nb9jD3kqZt2OK3Hi0Xs9rd/JCu9SteegQisEuFFSDpryktn3upL4VHi2wi6yqtc3j7Jrt5YpowDBdMmOs4G4nA5nUY6Y0l43EGOUrhGXlCxxc4ulviQl7aMN21GptVd17XfXJlhENnkUchWy4fCF6tvjjPuCr2HoTcGlUqQqi7x+d246b4XW4JDWWwMHSwHgkMa9+AECredMj6zstE1AHVhqBkY9u57zNeFJsJu7qYbDjG05igl9OP/Eo4TH+K/XtHspFkukWr26AVm9s4szfxKoVa+9v/IjwcH6zWyzOQ5ImIMAH/S+goNKXqXotGFbB4mSevsgQPQvwcrZaGdHWV+0Pjl+S/0XyiMkNctOeCmnChzbJtX4LwnA4M5I/6C0RH145yKo9nUvFkLzfuIbu8KYZbm4FnWZ/fOcGKlQw+AK6VLH6UDj8vvjUoLjkAheiJR4K0VESPAfy981BZRfEhf0IUW/iCjbvwo= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ba1c5b3b-8828-418c-f551-08d4c11cc750 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN3PR0701MB1106; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1106; 3:4v1c5I69Xjv7u8aWqWvlpR5Q5tIc8EkrT/F7g3xYONb1t8ATPBBvWUV9qz30kQKFLUf8nSI5LMXZqef1d2Tx99rtnojLfk2AxsNs77i8OgeBK1767EUWhMBUzV6/unGuegGcBpH1Y7V4ghIb8kpRBewNYpQttI9/Ey9kQ72cwLjVBP0n+GoQymKzf3QZnoZi6uQg8dMJI3JfohPrN1loyt6DwT4FQzrIjeJbcg0AiOZe24twn3ADtfkG4932+Jo5AKks5fBTKCbXtBGNT2CiQL+YamozEWskUrWSR4ywjU1e0e0yeLwhiLj8TRs0MoKZMt3AC5m4sjM7K/xAGKjBQ7lrbWgJmqUdkL43OXIWvYoszrIC8HjuhiW+wmigQlYiustZaGM4NxZ3nTnd6VP1KPdX3mT9JzwO8uh9ygMUJcFxGnfIowXsL+9XNin0AZ+cDEMx880Ojc0BuXTPnJgnHsMjCAp1Yk8R0jo+wswOdroV6xm2WZ2L4nRhO7fCI5luCDbsHzmAtjtYEpq1vboJUCl/qCPAT9eZmAyZAZohUp94BpB2KxYA3eE2/HtuzDD1VquisxuGdXZtj6yhAO/t3sEIOwYsfDhcNZKfJE8mEV66vV+hpSTBeS//P6Y5zwA31e+MZlaDdN2JOoaq156454tPgHp6AyDCGkXdypZd7mGJ28OlwRGtKyAfg6L3lnOj1h+6Gf9dNn99jaMyA8yygszGkD2h9tcJ9CJiOI7GqC0FiCsZ75pDZsAGhQjKMBFsc/5OuX+KGHLLleq/6ENUu/nA8QEgtW7Jnv/7PJsiU4L/Cs1VKOivMGfrvDBlwZVsN287AhsQKLx8VJU9W58TT6gb8AXPUor1ZAoeVJbBD5RbauAWCh1dG8PWZ51yZ5IR1RQkrVKxR7+eixecXqPDuHtGuOcLDrbg5gF4qRAE eoHs+hXpvuKOeAK0/ZOsDRvw X-MS-TrafficTypeDiagnostic: BN3PR0701MB1106: X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1106; 25:65prfoMYgzXa78F1sihNVPvjgaCl/m44oJRuz6oCnjChgJk2lP+699Ss0N0tcB/C8iBYttHXbxXhqkGBlWRtbJCbgb9t7WkGZ+RVds+mVhQetktYSQQSi0ziKE+BhK9+ie47anKLoDECy2l2nux/EUs5IZgy4rz6WvxMVOM6VrOfOz+9siR4I+1ICHSd37r+wqqRugP2998KUOb9RseZEDzWtxupNjPSnKQFh5QVQFqWo32UR9NJSwRh0Cb6uBBo89Yj04qYWYowa5cVVODdO8tQc5vaEn8MB0R/jhfuqxeUo6F9wXTS6yxr6U/4mY/p3BGm6c/4VoCucfUVt+gLmieWP84zS5XhVkWIuRH4WnU+cFYZvXYVE0QMfo1jHPPkJGG5tA+62KeJV1yFkPspxU5R3bG4Mm/psLVtF2j9RddqL7o/GHuYAMiu7oE2RoGuw9t9fOFFzwli+w8aNEW24/GkwAQN5avzXoa+rxPOabFrqBrJvXMaqCuZIcjEpqWjMa57bic0WmWUHH0nLgka7zfVo0POmIeb/q5aoHuT7DRdi0v876zYyilUyqjMhigy3ZuoMRjJpmIaFkPBLRoKCcTKP+ac9g594moLXqhX0k9QmTUTjb2aLBCPoEWatJTAKjuERV2AQ3i3v7qBlcpQPSRdTQVZKN4tU94sST+M2eSgwWOU7/SXB4tcb31JeHvD0nowg1Nm89TOiOzx+EhZYf3uYDD/UVvmKwH5r7rhRzxHeUnrMuYw/MNwC8zQPuMJi1F0v1OSMosXiJYfjO/uKUeyttANGrdM6bSrLiXrp0nMQgrnzstiBXrg6LS4HNah+hJZTshLPBPryyrpC5BK4aM/nYAOhYQzPUhGTc6PDOY20G3aUTY3kAtG/Hb6go24TCIwvGldyQLLWTCpPzLbxlS2wAhObc7rH8VM80w jJXg= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1106; 31:gFlRlPVFaVZcogXKUmxuvRvgQyrLNEz0E4lpwwhsrYfze5BhDR41EA5hwfRkzQmhHOmD17WGC8aeui8ap/zU5K4w8dCkM8LZnk8oJqIZMuV/VbzhhXEh6P7g5Sbpx/iTLpQteW7NJF/wp4xtnw4Pp5Y9gtgSU2xt9gXqoP7XIxSWjM7cGcWMDe9JT7j2RRVn90JsWe9eobbzuJAnV9/Foqg+jnLVtYbHFfr3pBFwU3xzk9NqlBDGIbWOQFtgJmZZMSJjHwLfh08/SkKvGKlFAC8c2RSiY6UHLzmzcWasQodkt272zSOTVmvIWSayKsoW+hbfRsv1olWb76O3iLkO0YmzYLgNdPQajhrBUGA8gWpRwDjjrM7oIamA6hSCkErBoxTvawsupRyaPe5eI2g+GeEjJjWlT2qYJZiYi05fAg/QNtpbpojCxQd5PHv0Dc6iWkIK17Tco9Gcd8d24rwaNWdCk3SwQd5zikZG2bFlM2JUlIoymk2RVqqtmz4b0sjo5HgvYqDRyN35BRafCRGu3ToAGKDxBxtmJhg1hX9XbliVRaYmECWtWkdOn+5iSjjXcmvm0V9ZuHwBEZmQeCUCknZLrXrE2YboBYCQw1fmOezRDpPGKxLl52JSUx2xU93GQdiSc10qTlvHfxowxiGrBVQPGrsoFf0V+jH0QRhMYTqqM5mekkus4E5ji0+4b+USr+BSgh1AeJfXZfsz/YOsuA== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1106; 20:E9IYvgjC4bQjgN0ON3hiA/CUsfjj8QtiojnqT6TlM+Dc6NfXzYxqhxrYpOjE5Q7YNw0W/FXCSn9jQnl5pmDSVRehKgSwDLyugwr3MIvqspRJmlPjeo0rapSmejCwfYQEhlP1qOKA4gWGYjUpDHaAGr0MMHyxwjLkWWmi2MDwaX12tI5Jv3ld/c2f27jX1yWAHVgaXI856noeC/q3Ox1G5bR6rFtxhTEwbRCmoYez9Oac2sxj4h3udkMoiRH2Qvd2cOGKKq7vmzLOfMcB+4PeyPIujn7vK6nSWXQHI+iTkx5oPPnNC+phE+CUgc8QwYmD9ffE1LdUFbFYGFgwqYgaxH2P9tLhwvcmOogsGS7cPn9xXrO230ZovG2zRT1H6nCALiqEE3qQtm60mqIhWJsLNUg2WyqEBM1U6FuRtSWCY5NaxGJ3Muqu9ZJDayVeI70M5WBJZWyKOccBlare3xv/llUMhP9sWW0thyYGrVqfT5HyZbH+UQSjcGzcZ8qeEzxc X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1106; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1106; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1106; 4:Kf2wRC5nu4CVx+WflGSkHpOM7bVnTOJSNmaOWyxT?= =?us-ascii?Q?49NTR1c03EYfK8+hlFRxY0uLPKnryLlKTUVWO/L0sGtIkJb9bhTAdPpWBpfL?= =?us-ascii?Q?yrfleMdj7i/W/q0YHyXq9FpamGzMrvhQFsq+Fv0LmpeZmm5IRL5VtIx4B3Nv?= =?us-ascii?Q?S3H0n7q2riarQIbGb3oBzIwn/5kfWHUCAZJTuSEE56QVOAKiHy3N+luqiDEg?= =?us-ascii?Q?RKsiNF4UFRGxC4IuB0YHIJP7M1G7RvoZjcvJRanW0JKKn7k4Md8WS++WsLhV?= =?us-ascii?Q?nzTnrGXWKElY990o0kqeUOYV9R1LnFuAtnMu9zrBXkFY/l8Llt8WwvOZ280n?= =?us-ascii?Q?uT+bfH6WZAnp2rcTVnQXl1zyYCTUoyCEV1Vs6IfYn663LfBcUxGpPgTD1rPG?= =?us-ascii?Q?vfcJsNdiIzUgF+kIFtJNZyGw5SBtWp7GaTchiG1df2oyzdyKW31sWtI1OHdp?= =?us-ascii?Q?PpnOTAIqbrpJICVUFLbUneG5qVXjTkb8Fl7tgIv05ZKa0kG8Rg+1W1MJex/t?= =?us-ascii?Q?go+wEWz/5hzLidnJduURN/qy4jkVNT1emiR83NcS1IDOMGAbDsevEDznsfpd?= =?us-ascii?Q?TuTLKMWG0jBd/mWVlY/zuO76L3vyVEP6THhEWQiyMOKa5KUnb0rwZjFQ4+13?= =?us-ascii?Q?Gn/4PVvfx1CxbHgdjSKTQCRqme4xUKUptHSd6xyPbD1oMA32Il+kBIxLNHDX?= =?us-ascii?Q?ih/yGoX2gPlGhtikBiCPz9eAA0mqI7MSsTGU4QeGRnSexNRq3+OP1cD2Zs6k?= =?us-ascii?Q?+9jwhaQ6LgEV009pYlWeUVaZFpj+FjaE2wyk0Df5Sh+XRtidD5rTIzL7IqEU?= =?us-ascii?Q?tetjDxCrXCgj7q8AiZJJLf0L6QhZjUj6bn0et+pnhLDTAoJ/uJPPoNEsW4pl?= =?us-ascii?Q?QS0iV0nStn6XJ3PseluiE3OKFyAGGk+mzengJsEtF8Jjfz4oKYY8tLDKLgQj?= =?us-ascii?Q?7Dn8sUpTE+EpH7vhl32cvWqiIvE+Ivf9l0L8YvzH5vNb+VCuCLBuTIikF+4h?= =?us-ascii?Q?DsimbGaNKx2LNKPloq6kUBqXupQ1UHMitVg81UlP6mh6zpoaz75tXMucheOI?= =?us-ascii?Q?rKBVdlwnLZqUbz7uBeOsx0vB6Cq/nNMm+/mxKGxHEJZBUTSrmtwDxaxBcWr1?= =?us-ascii?Q?bNWnCbjY5OneiekABmdpAEjUQLiiA0onOf5drnSsaB1eUySXFJOOzUfsTozu?= =?us-ascii?Q?9UrjFKNibnieYnk=3D?= X-Forefront-PRVS: 03569407CC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1106; 23:WrmQETXkq6/u0DxYJM5IOmsLImYxwsdYf2/952s?= =?us-ascii?Q?hbCqRhqseoXrWloRVKc3TamI8D97nrvLzJo2nV1rcP2FdrPf3PpGop40DSUW?= =?us-ascii?Q?fdqAMVyzR+DWQZXArrEWRyOMxuQ9FqtwoUjgpdRi3BnFgs9BDptw0SZHYrTX?= =?us-ascii?Q?IEDP3N4kD68KmzR/d5hSMoQSSQRHjHbgztbH03YxfPyD/8PWLK4vVq/hTtxp?= =?us-ascii?Q?dFOqIzPJ/socGxBvKT8no3+uFRMm0ZLwbYe3OR1w9vPnEby91n9YyW9gE6lq?= =?us-ascii?Q?f4A4liu6Q1Rq1e1AbfFZ5ThHYg9VRTfeFVwpfqoENqBbYSAi1ceIHZni+ZAA?= =?us-ascii?Q?RpRn7xJ0ifEfM4AIc5EQlUCWvv8IhkWgWL/M2uG+mq8m0zHx1cZZZwldT4NE?= =?us-ascii?Q?sUE9Hk+M2ZZTIWcGcusrn/A7GcylNIEnJKsc1xPP7CqbA9LcTjVyYGmNy0ul?= =?us-ascii?Q?bTinsrukWuGDpZelr0yX9c3W3YcVD5X89FmWGO11B8ClJJS0s8HHIPmLHI+7?= =?us-ascii?Q?7w4ooPMb+PwAcC9sFGdO06KG8R+ii9mQCiVfpDwgK1wzaYv7A5WTPeRRajDH?= =?us-ascii?Q?e3EX1pssYeZsl0TsUqzzkIGDAtqbSc42UN1T0HTvSFXYQwvOS9Le2AXsrN0g?= =?us-ascii?Q?S4vAsYukZesLQJmftc11yRtU/Clq1L+Hbwz90sXq33vJydUpIsHI8/FCWEB+?= =?us-ascii?Q?8VzUs3GIXQOcVt+dbBOCDr5fltGiBm8rgbZ4stTWDfgITUiZ0FplrAvxhVTT?= =?us-ascii?Q?F1su6J81d9jZGDRd+SewZag5tqtu4SKw85IrX2Cs1DaMYh3EBzSZFCLW8UXt?= =?us-ascii?Q?WDFmwO8O0bpEfkJacRuF5uJY/dhWzbOcVghEyCDnhTlKnH0ggP82f9Mi/9K3?= =?us-ascii?Q?zJp/6Lefx479uCKmxyjUsMPK1mIDoseXZVGeKgIh+vJG/wQtR3zEB0cwH2gR?= =?us-ascii?Q?wxbzQBaMPTrNh6l7mcSpSUzhOqEc9TnOdnoKWjtgGzZGfqJ2EUfFDlI9vVx6?= =?us-ascii?Q?meJRQFpAcBe312kFPLCZRXYB+5cKj4sFs3yHBgnzastYRgg=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1106; 6:QQFYd0Dgf4T7xJ9sTU9xXH7jgnHtbvXwsB6V804N?= =?us-ascii?Q?ipfwaGAuKIWAC5eGeilkj2suQvHtwq6ewmV2qPrNl05gKdO6eByQLnkFop6B?= =?us-ascii?Q?2Z75oqovJ7DO25T/uANRkpDucOdFTgzxFhOU8w3sO4G+4UxvivTeCJRBBL8w?= =?us-ascii?Q?OF1b7zQCbju1fmrbNt0hQ9cKBpvzOt5Aa6Y3QYCmpi7LYdSsue23pVrpSXkw?= =?us-ascii?Q?0JWpjHPmApaNPytj3/IE/4XViJAcZjR3RF1s+4wZ5qIxsSjeKXZbLA1hF9yP?= =?us-ascii?Q?DnVV8Amjq6/7TAaUm09gDGa5pydaDqnMLDuw5ft2XXwv6zYeJE7IgBim5IMD?= =?us-ascii?Q?ZZSNv8GZgVDmvQ8/R0JJvTRb0MymHQ7Oi8jw0c+IV6ZcPna+p1fOwl8hYV7M?= =?us-ascii?Q?vo4dytg4IUVzAuaOkuSBBZf60lPuO178x0s5VOCij/PdiU831mZDb9bUx1Ou?= =?us-ascii?Q?bpZ+DH7CBwXn6308gPLQZ2UhpNVlb8zWlNcVT4ZFR19M9fIRDleIszLCEO/l?= =?us-ascii?Q?ARo4/282tyKd2/2Hr83KGru00+apLIaV5bQ4x1KXskFac3SNTT+0E7DAEcIm?= =?us-ascii?Q?tPJ6vYdqRBQjr8HJcp2bBERl5UsEcKKU6nVmqBAoN3FBxIkdLO9Vp6RCtVnM?= =?us-ascii?Q?Fon7iFB/PonQSxIrhvsysE084+V0OBG/5wVnp6c8Bi4n8I8HOighf6DB1885?= =?us-ascii?Q?KYrcBmd87arHHt3E1aAhMon2G1omua6zDABRBYXn8zNDU0L/nQLirI8/br9q?= =?us-ascii?Q?LoLlx2D+3JmBODIM4o6MmzAbqTCswB81Lg9iE0oueMoezvErgoVBpnWAvV3F?= =?us-ascii?Q?XL4OCb2ljmC5Mz1C4tulyhet1e1JgqdidTv4RQ7J+RDIOXhfR5g9ghB56Hm2?= =?us-ascii?Q?XlhG00KiVwHbWWly+54JzbYCVhybLWsqZdUi+buVESoTGIN0tdXjmsGhT9MH?= =?us-ascii?Q?bXMcG1pi0LJGRpFoFIT824x1KwZxw1rba/LdOKSWuIRBwWp9IfTiKRZWeR1V?= =?us-ascii?Q?/C4=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1106; 5:3kqRGC8wM1gObMur7VhrmMBzErO0HvBG9cYGmxhbJmE6yo1YlZLla6zbXLXaEbZRxDPxhOPtOEO/wwm0lheAY8ZCP9lGKqjv0kG9Av6EtUtEL85ybidFcFhkihOpj3bEeX3kwCGid5+qxyVMaYXdNbqa9DMTCWGVYd4zJB7PPP7D+01bhMuhCHg1iR6gPJRLNL+yh9HbuuB9OzKmSyBLu0RIqoloV/4uKSIXW+JHqUAjgiDkYu13ihiWDbJMO6lnEBsKvJw5+uggGH+JYk/HdoxdDo9mY7haBF221GguihwxojpJPAMrv8csvoG4H0jd+oYwC2DP1mRrlgrTLfj3+DidDbNx3X22nD4DtMu+LFz6fHHIonZvn61QPleeUxPdqvzDZ8XlonoC4ZH1a/1V4e/xsUzUR8+UYa5mqxie62euv+C/G+onxgihbpPtLChc2908OnKStdJDYTHQJQFUpoqc05ZxDENLqVg+ceOg6TCqniWLYJ0wZL2JXKofeey8; 24:FBs4t5ZYzdFZ3dICi7657rGrQha2CP0tvKhhSsQHJmBQ0I75TjYyiMQ8PI6qx88h1hyhuzG25zTwfRFXEQsFaeFVZqAaBc1C19l2UDyGm9w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1106; 7:ehLeNTcduFhVcYK+yeV8nr4lixbXaeM+ybMebasu38q/dFj017WXvVS8Gn3RzxU7IJEpfyjQ0Mo8GIbmDmQQn5NpDHmPrFMl8tCAVR4I5CLHHYPKvJhJSmnjXytS/1sGYLKtiLKmO3P3DXlXSiz3c90BFc2z8fyZVk+A2O6HRlknVrwJmQUucO39AAFnvlUyO1vXwzYK/BSbH9VbXOCGgeC9+Hb61XycMboutjqPTFMVChz0A25YKuwHXGYEmu1qH6NYQHQ2ZfBin5lvp5dwJjaT0lnwUbFLISFDAKjh7CJVljSZshAZdTLj85bewmk+XBZSV3ApDNGI29K/W2YUzmczNXQPP1/zl0RWNx679miMMN6LqXHm689DLAWpTVs+WiX5BJx9vRIMCtxpO7Ifc6RDMD/m8VZZUF/NuL/Z818sq6Cr0+gFZBNBRpLbIuc1wXLBV5wQqFAkAzgkLXCc4ygp3UOIAAci9jngRYqFy6b0C/vSD+55G0XT+11YWueY2FrMVQ//yaOQxzvh8MYfI7jz+Gm6IRRndHHGisqefxIOk7O31S2DZjo41qJ7buDjzd/xd1PMnrkslKp9yOqxX2Zgccs05ktizL2TBYLf6uD9J1htl/m6BiA+c1y1POzzPvgDpIiriGeELhZO0tz33HgoTWtNZMrFBeUYPXqYwrfi6HZU2tWE1/HYObRPpz0Y4iTNCcDTJPbQZZHZveGZXMQsXexfvyRPuPBTRVUXNGst4ZaqLmjA90SZkMW5oEtnsO7jqKiuhHAh8Rzs1THSSHhzaoQpebWhIe5njPeh3RU= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2017 07:34:30.9867 (UTC) X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1106 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch takes care of active/passive disconnect flows. Disconnect flows can be initiated remotely, in which case a async event will arrive from peer and indicated to qedr driver. These are referred to as exceptions. When a QP is destroyed, it needs to check that it's associated ep has been closed. Signed-off-by: Michal Kalderon Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior --- drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 90 ++++++++++++++++++++++++++++- include/linux/qed/qed_rdma_if.h | 2 + 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index a5da9fc..84bcda3 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -496,6 +496,8 @@ static void qed_iwarp_destroy_ep(struct qed_hwfn *p_hwfn, int qed_iwarp_destroy_qp(struct qed_hwfn *p_hwfn, struct qed_rdma_qp *qp) { + struct qed_iwarp_ep *ep = qp->ep; + int wait_count = 0; int rc = 0; if (qp->iwarp_state != QED_IWARP_QP_STATE_ERROR) { @@ -505,6 +507,18 @@ int qed_iwarp_destroy_qp(struct qed_hwfn *p_hwfn, struct qed_rdma_qp *qp) return rc; } + /* Make sure ep is closed before returning and freeing memory. */ + if (ep) { + while (ep->state != QED_IWARP_EP_CLOSED && wait_count++ < 200) + msleep(100); + + if (ep->state != QED_IWARP_EP_CLOSED) + DP_NOTICE(p_hwfn, "ep state close timeout state=%x\n", + ep->state); + + qed_iwarp_destroy_ep(p_hwfn, ep, false); + } + rc = qed_iwarp_fw_destroy(p_hwfn, qp); if (qp->shared_queue) @@ -1956,6 +1970,61 @@ int qed_iwarp_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) return qed_iwarp_ll2_stop(p_hwfn, p_ptt); } +void qed_iwarp_qp_in_error(struct qed_hwfn *p_hwfn, + struct qed_iwarp_ep *ep, u8 fw_return_code) +{ + struct qed_iwarp_cm_event_params params; + + qed_iwarp_modify_qp(p_hwfn, ep->qp, QED_IWARP_QP_STATE_ERROR, true); + + params.event = QED_IWARP_EVENT_CLOSE; + params.ep_context = ep; + params.cm_info = &ep->cm_info; + params.status = (fw_return_code == IWARP_QP_IN_ERROR_GOOD_CLOSE) ? + 0 : -ECONNRESET; + + ep->state = QED_IWARP_EP_CLOSED; + spin_lock_bh(&p_hwfn->p_rdma_info->iwarp.iw_lock); + list_del(&ep->list_entry); + spin_unlock_bh(&p_hwfn->p_rdma_info->iwarp.iw_lock); + + ep->event_cb(ep->cb_context, ¶ms); +} + +void qed_iwarp_exception_received(struct qed_hwfn *p_hwfn, + struct qed_iwarp_ep *ep, int fw_ret_code) +{ + struct qed_iwarp_cm_event_params params; + bool event_cb = false; + + DP_VERBOSE(p_hwfn, QED_MSG_RDMA, "EP(0x%x) fw_ret_code=%d\n", + ep->cid, fw_ret_code); + + switch (fw_ret_code) { + case IWARP_EXCEPTION_DETECTED_LLP_CLOSED: + params.status = 0; + params.event = QED_IWARP_EVENT_DISCONNECT; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_LLP_RESET: + params.status = -ECONNRESET; + params.event = QED_IWARP_EVENT_DISCONNECT; + event_cb = true; + break; + default: + DP_VERBOSE(p_hwfn, QED_MSG_RDMA, + "Unhandled exception received...fw_ret_code=%d\n", + fw_ret_code); + break; + } + + if (event_cb) { + params.ep_context = ep; + params.cm_info = &ep->cm_info; + ep->event_cb(ep->cb_context, ¶ms); + } +} + void qed_iwarp_connect_complete(struct qed_hwfn *p_hwfn, struct qed_iwarp_ep *ep, u8 fw_return_code) @@ -2009,8 +2078,27 @@ static int qed_iwarp_async_event(struct qed_hwfn *p_hwfn, ep->tcp_cid, fw_return_code); qed_iwarp_connect_complete(p_hwfn, ep, fw_return_code); break; - /* Async event for active side only */ + case IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED: + if (!qed_iwarp_check_ep_ok(p_hwfn, ep)) + return -EINVAL; + DP_VERBOSE(p_hwfn, + QED_MSG_RDMA, + "QP(0x%x) IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED fw_ret_code=%d\n", + ep->cid, fw_return_code); + qed_iwarp_exception_received(p_hwfn, ep, fw_return_code); + break; + case IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE: + /* Async completion for Close Connection ramrod */ + if (!qed_iwarp_check_ep_ok(p_hwfn, ep)) + return -EINVAL; + DP_VERBOSE(p_hwfn, + QED_MSG_RDMA, + "QP(0x%x) IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE fw_ret_code=%d\n", + ep->cid, fw_return_code); + qed_iwarp_qp_in_error(p_hwfn, ep, fw_return_code); + break; case IWARP_EVENT_TYPE_ASYNC_ENHANCED_MPA_REPLY_ARRIVED: + /* Async event for active side only */ if (!qed_iwarp_check_ep_ok(p_hwfn, ep)) return -EINVAL; DP_VERBOSE(p_hwfn, diff --git a/include/linux/qed/qed_rdma_if.h b/include/linux/qed/qed_rdma_if.h index e9514a6..01966c3 100644 --- a/include/linux/qed/qed_rdma_if.h +++ b/include/linux/qed/qed_rdma_if.h @@ -474,6 +474,8 @@ enum qed_iwarp_event_type { QED_IWARP_EVENT_MPA_REQUEST, /* Passive side request received */ QED_IWARP_EVENT_PASSIVE_COMPLETE, /* ack on mpa response */ QED_IWARP_EVENT_ACTIVE_COMPLETE, /* Active side reply received */ + QED_IWARP_EVENT_DISCONNECT, + QED_IWARP_EVENT_CLOSE, QED_IWARP_EVENT_ACTIVE_MPA_REPLY, };