From patchwork Sun Jul 2 07:29:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9821077 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 28DA66035F for ; Sun, 2 Jul 2017 07:35:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16DC126419 for ; Sun, 2 Jul 2017 07:35:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0836028334; Sun, 2 Jul 2017 07:35:03 +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 2DD8726419 for ; Sun, 2 Jul 2017 07:35:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751726AbdGBHfA (ORCPT ); Sun, 2 Jul 2017 03:35:00 -0400 Received: from mail-sn1nam01on0086.outbound.protection.outlook.com ([104.47.32.86]:51552 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751720AbdGBHe6 (ORCPT ); Sun, 2 Jul 2017 03:34:58 -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=91n3DrdYYPDBsd3ZZ5kN3hodoTQxtgd7oAyqL/0BLIE=; b=UVFn1cb/oBF9Fl4RmvnD6V4Su664gpXvYBLS/EddsucCBJIIHG+hsoz4kpxT65sh0D5g0NlG1kV48RZrtFIEm/S8oPl0H0yyIft2Yrqe5Y1PuyEoNCHpSLkz8JZRjeqn7ZVmQ5bpV9DVzcknnn9a8vsPx9auiSQrs4EsRQDFwCc= Received: from CO2PR07CA0081.namprd07.prod.outlook.com (10.174.192.49) by CY1PR07MB1527.namprd07.prod.outlook.com (10.161.168.143) 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:56 +0000 Received: from BN1AFFO11FD040.protection.gbl (2a01:111:f400:7c10::158) by CO2PR07CA0081.outlook.office365.com (2603:10b6:100::49) 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:56 +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 BN1AFFO11FD040.mail.protection.outlook.com (10.58.52.251) 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:53 +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:50 -0700 From: Michal Kalderon To: , , , , , , , CC: Michal Kalderon , Yuval Mintz , Ariel Elior Subject: [PATCH net-next 10/12] qed: iWARP CM add error handling Date: Sun, 2 Jul 2017 10:29:30 +0300 Message-ID: <1498980572-29519-11-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)(39850400002)(39410400002)(39840400002)(39450400003)(39400400002)(2980300002)(428002)(189002)(199003)(9170700003)(2950100002)(50466002)(81166006)(626005)(8936002)(38730400002)(478600001)(107886003)(77096006)(106466001)(54906002)(101416001)(50226002)(356003)(4326008)(5003940100001)(105586002)(104016004)(8676002)(5660300001)(6666003)(50986999)(76176999)(72206003)(189998001)(86362001)(305945005)(36756003)(2906002)(47776003)(2201001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB1527; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD040; 1:wHoyywYxjH4S/vnzByWWttrW1l4ZKadeOU4NXt/VNfDzimb+cx83NM03cTcSLNCDWMgekJn+6x8OyBEzfu6UzQl61hj57cBP6IDdsB3FPFljatLCa5WhGfTfvpJGNM08cfTBiP8WUB1kWfispG81kXm46OG3M1CtyBAbwDI/9y+6c9T+U3n0O3uufam1IsednVdY3vCogW14A9oaPw+EwFDUxwjE1SAIszvuAb8l7CG+1vMCr/DKtNTJNX43ihK6q/23cnL259sAeNv+B85mu7pkfW/cXPlPPHbpQUpGGEHr9Y+36s/pxSfl9SQ3DSHTCpTrwAm3bwa+N3eLO0A+VuxzDMeFIJJ/hdZZGTXNp1PUToxJH6VLHff8eMfKwyRu8bllMWcOxLx1KmQ/PqN9Sf/HXK29SfpofE8Igyj0ouvYPA/Su2DYu36adsbDc6j/NQUuUZVp+oDZndix/HySi2MqCGty0VP3Y1PDh6+Xicc5zkl3KZrnIQ32FAwVDw2d60YYB5gzXuJ0DLYyubuxIkq1OqOB96cG18BGh4IvI1Mkrw3i+elYRkncaDlhNYei72RUb8Tg4lK42W38bHNzSzZ5NtJ88v1Qutsmll1K+IbLc8bkOkRmGJ3gqLY5kyMI2lGHA3oRtEJpVRBr/MfsPj5ntrtsTn8BRMmeNo0bOAwQp+epLa4L4vX2StQr6gRZXePd7Rb69NyRoKFxkWjgAU6LtAgHY1CaBkHTExK70wqsl9r+/VJsrHjanLO+ptIK9eVH894LvfP7a7dZUm/yQA8QVz/laDFoV3HjP6WDHUy2rN1JuJD8a+XTZSW2M1565f2C8TrizGwTuhmcsbUnEMee+9eWfgGemuHMnf5jx0c= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c6f105f1-a2d4-44d5-57da-08d4c11cd4f8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR07MB1527; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB1527; 3:nd7SNWZ4kLtcD7GIa83soOX7AxVbdivHkVOmd64LfO0jfTtY9inZ/mTcJIl5KmcmYz1Rov4c98/mhtH37bGWEKRgqekUVOPijbcm1fWYFEGVdWfxv0pL2QWdCkCq9Oz3UHjQj29GcVNdWgInr2JbU1HxbqoXT7GOQJgfG08x0TNuOzsDp4MDiWzCqCv3FMiFxVXZobmDcagYsfi3U1BuUCvWaW7fEVPwYYgk8pHCZkaoJT96GoTfJCDQ1WMbrkz6AxHp78wco5KMw2kKn0YHsklDVd/TgTKjMU6hGyQQeOXcyONVanZOTLQYxdPP6n2Onc0O+1kChes42iQnPci5fni0vAhapxF6NIG8ULQ4mNdig2rqYBR5qhbMCEE2X46tW8IBAk3Tt0Ch3DkY9pAX64TDRUlDi8Mk8c9cpseNLPcvQJA1E2qeBb32NAqx6ptQU1FES6+viBZrWbY/o24KAeF/p4c5R0jEO+MqD7yBXEaBZAr8atf4nF/EHUq4b2idf33i48fa5YGZ2QkqondnSm03GabxD+2pejiAmO90acl/WVruW5ID2LFH4IB4msqwXmHbsLajnoJV5Q7a85XfK7VX+S1voh3/4gZGmQUX/7/ULEvCWo2w18AvOcPQMZX60x3x+jMoBWcVJp53MOsZbVfwnm94kPBxFoudGKo4ekMjfxmTUggg8cAAWXOB3PiWqKyWc582nzk6ICn1QvgI0ys6zb93ghJuteUEldgwmr8L0+AEp+HN2lvOy74S6dokSes6BinBlKOcWk3KB8IqJlVX1Y2QjWZy0n4VsjSr7VIf7NIWZey56lodAT84HkcxXrxpgSn3kIfTJeR0aslPRlWn+/Kd3AnrB8OBKVQDUmV/5rXLB+AqEwBOvvLcmVe/384VVlOsUgnHjU5juiB2cQ== X-MS-TrafficTypeDiagnostic: CY1PR07MB1527: X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB1527; 25:jJBzP+Wrcf+fymx0i8qT+pt29yRdxpK56zc16rO41mXlad0ZVdJvRLUpd7mQnJj1ZFQ+twKJOzg89i8ObzS4vjc1SR2Cnh6ubqGMw4A9yIKXe0q+tRHhF3wAJNfSwtkQ0+2cKGOTIkZu9I7B5h5WgcC54ysF/djKw7nAEHqjya9tOdCNunZajrYTZ7MiBxHNwPnXD9qQGc9XcN8cQ6ZgLDYG3fPLWM6/1CmmIT+KXuqPJWocdez98mHcBxADwmovYZT9jL4YM8tl1t31baAZa4cjBX40lbyasRbkOfh9Kcw0C167PwyFYBpwfRtOD31K+LsKboei0czV8CXsYOm2q0HFe8ee1FsD6h5eyeTOsXe1CgXb8luaQOuDCPdubafX55V7ESUvPwMThvMHQIKQK9jOpc86vtWkVgAJXCF4gOXXXeOWXqn+p/sbDY1TFzyXwwqFhqez9VCKv3v4C2zpKWV/0S1G+SXFWvjKLs5H5GhL9Cj5RTRcvm9On1GgtidRFFFBKxKeg3q2pIAy/9TS9nmPquRNb4wCdrMt4Li4S+3cd8cqz8IJyZSwGq9NkK1nwuZAqi/LeL5vAHYHWrdqmwZo3GU6Qpu+3K+4e72OJSoiwjS6mNukWrrxHgMRNuC/MotQXRTzhPqmcGfnY+wDZHx0FhfpvvOKE5DbT+VOrq7FEa1O3Xnptyly1Mqw4GKUram9kmaCSgL5BnXDFUwCqQ6HnkkVCqxjOrhTUQNzziQgu3sbg/PEMGTmbo/kpOrp4ut8sXDP6LDC+WhvdAN5d6H1agrdRz/PVkYZEbd3EUsmf7xJ9DoeHpXfLUkXHs/sukCvR3mPOAQ62O8667w8yU+fgue138aIBNwVOuvP5/1NrNmt377/tymCfyZY9L5TjU/EHyfIZ2574ouCnJ72wh0I8BukL1C40aN2V4RnR /s= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB1527; 31:rYtfGs/tGLNzgKfNGUIq8TxMuSKbOXTTZR0QjHx/ApYJuNsTHiWs1fND40dRq4mHnJw+cZiJOQ1/NXigEE6GE8agJ26WRbAndlOZeD+wzMUj2Iq0gFtJauhygpf6vMkB7bbnYXJ1YTnqY29eM2e9Zn0GPwYSBO5OaQimiVZfKTedjVoYkVLuaSFxgcn8biHhQpO9Y4SgIw3JwTrn2MAPH63q42XwBv/2y7/+jwSM60TkuynX1aLAT6vR8cFZ8j5xaefFzG5cJJKcPVpYq3DzmksiOvW4T6lseOgsjBl+U1xSvW/VUtw8S/URCBtMCg8F/6+ZoUIkh48uX5eNsNKjoj/hrsXS/u0vNbwGKmo+NrzsGhI5VUDaArt+LxjFgM5ymRw6L8mU+a7Jjv5JNZWA5Th2wp3MT1R1fzXpXBxFQrDQJlvcjdL09KDz/V4sA+ELGVCiDq8qX6BpdCF6psxnwichjgZfJfjExAnCdYUQ/7dR7hhxXJTJeuhFrvy0JBI+tsD22y2NEz28blEwqsnvgksOe3yDkkm5ghcapncGzx0jP3sghbHxuEv3CldnslVIyG8KcZ8ja07c2xqcv4ikmQKOHQX73sKtnReCBnHH+LaHwqvw/DibhawtLJZpoZX7UhVSlPjKWORrx+ZEbS8k8VSxpX9ZNrkvInniguqOnpiJTovWrMXGyqKNDztKBXo03asTocs3XwSLG9X6YmLFsg== X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB1527; 20:673PymENmb2K5dSj2/FKhiEzCTrSe2CO96suywixXlI2MoFGaNPKtcrYmq/VB1d6/fW4jVhZQ6ASCFBPB8mGA2tAqa7xO/ZaU25ylUjbt0yup6pB/1gvYW3F7lv//VV+5S48myvlTZ0EEUaLMPCUImpmWDBfbMRInCQhAa6WQ6LwzQXlFbLmnFmZF91+Wp7FpOUAXgSRfgigyHo1YWIOpsrWKyJsIkuNXA0wkSE+lLQqTVoLPA/ceV5gBgrC07hF0nCO6vozwwFf9SzGM9RFddN5XifrYYMMiUe//HcIyrRIc5+tiI3HSdC4IbR4YNSLKCaYSozmtkHNZj48rI9PDvFkQ28HHc1NE/6qa070+q07/cxWC6hdupQxME3OVFPgAV54JUe0FtsEpNOhGyOKIY3b0Pfv3kvQRFvLvXM7CsUwOG91fgvxeqw99PhCNMOT0P3LDfKezRUyoZxP4xuidNe1bnb4+ywNlHAAN59C5/odA9TmzTswO4gJPAricazz X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(21532816269658); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(13016025)(13018025)(8121501046)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123558100)(20161123555025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR07MB1527; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR07MB1527; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB1527; 4:eAVl9HrBo6ra3b/L/4lqAiC9pyuHC3gd7mIUi0M0kd?= =?us-ascii?Q?L0wGSAd4bSnErqCrvuJcHIHPgDQ6PzY2hqWVZlXiO1TWxuPbyXIy18nAl2Qy?= =?us-ascii?Q?6lL/o11gVz3rNHrP/lUK25Zm7A5W54qhD4Y+wx5TOeQh2Zbg6BwJrPyAVzO8?= =?us-ascii?Q?+vL5JxS48/Mgn/odW22V9o8rP79pin1lGtyM6cEUM2GP/jW+FOOm/VjkfeKN?= =?us-ascii?Q?rXH6oQVoW/bBsIntP02wpzg8J4mjbqq5fwZFwe9H4uTkf1lxDel4b/vzkeOr?= =?us-ascii?Q?A2iJlmaxwA3Kgd9/8YKPhuyhMWPcTHghBDQCbvKupu4dEV6OHzKZE/3MxBDe?= =?us-ascii?Q?U1bcn3S4J7tpG1vDoeQcGE6tWe9v3Oj9kFGUdW/pxhE2y6DVVv9JvP9DfjZ5?= =?us-ascii?Q?+vsNylutgdvc4CPpmKQFHgMRJnAsdD/mMIzIUaQRBAo7INuV4xegUwHCll52?= =?us-ascii?Q?TbEusaMa93oI4fzX9lk+AwssjYLerA4qmcgsjIEUbFGQz/jZM/zYOXa6MkgP?= =?us-ascii?Q?xGd09U9CM+kdCT/34bJrta/eMSD3nRe0E6/gPhxOhjDH02Ry6td2klHVoNLu?= =?us-ascii?Q?6i+BF8qwMQNJex3KiRE+jRHAEAF5OBLFKbjUqOnYPpWNAspKhxUGZboxxnTu?= =?us-ascii?Q?EBeoOCstY8EQebeEphIkaWE6/TaSJgqtXJpURUm1f2WkK7JSp3NJ6cdFrJ40?= =?us-ascii?Q?tuFT7r7bY8JumEPTfkvq9dvuL4yvOhOwE3eX2LrxXIvx+bfLzJs0TW/BBVCA?= =?us-ascii?Q?aoUO29tcT8gClMKc8osQgRFbzx74pyC97aXf6hpkosDVOjKTlC+n5244Z6z/?= =?us-ascii?Q?jvw6x9KPtFKcA3JDUc6LWyjb3swCaCpGI6eCMP15oCephbHo2ld7Qrk9mdP9?= =?us-ascii?Q?BxJg/Awp298LnPQMobfUfvctQx96OFdOxB41TR58218G1HQv9qdoDmUWbiQl?= =?us-ascii?Q?pUJ2mhiXTJ6/z4Jekmr2ReD41zKXC4+CZmXBWLazwBiBbzAOpbRUBR+xX+jJ?= =?us-ascii?Q?hwT71gNWfsdLARaqmTZTlgD3+vE6MZelQjtJWzeU/2a5EfqYh7Er7BsT0gVQ?= =?us-ascii?Q?w92wgmOkgQdsKTq2Vzj8rYXVDCvwvtfGRDP5bHMBwEEX9tO1rJLru0JmS8Yl?= =?us-ascii?Q?EM2jNDPeUrJ9Zx4lA7icNPwE99iVGjgguaMGm2PJgzUQ8sX/7za+gn3mOB2z?= =?us-ascii?Q?68ssMqxAA4Lv4K/guarYMN3P6vC2kQIQsw7l0jjjj4t65EzP6SstWJ+3tdlc?= =?us-ascii?Q?e5yHlVDU3hdCFIyFP0SAsY4Ll7qLmvgLFdum2C?= X-Forefront-PRVS: 03569407CC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB1527; 23:iIO6WLWA3HOBl3GiQ7nbhKgY6KktJ0qEYZwwo0HyX?= =?us-ascii?Q?jopeBkTH8WjnspbZ49d2WLgJclmTMjLcf4ChyeNIWtcbU6l05P50XtjHfh8z?= =?us-ascii?Q?Raa2ePLg89QFHTzTsqC9nJFIr9DpKHu9nHxHkPOcaFzax5GALyjNJCcsDECN?= =?us-ascii?Q?onv+O9t3ll8NVB4djWX+ON9iS3xxa/Un1W6Pn+6SmV8f9x/5dH4HVoCEq7jD?= =?us-ascii?Q?zeBYEoXl1CDq7cCjsvlNc5A/7V6Bf7Y+4MVDRi2oaWGkAcCgkoDtHmqinoMy?= =?us-ascii?Q?uct0qJtrFroA7QRIakhYBA4yRWTvELF0w5rJpMAhHhKPMAAIlVOXBEUmH8z8?= =?us-ascii?Q?lqxm4PD7Hq2Nvzk+PjYYuhU/MEzv+K9dVne5+FVIs7hlTrcFAIJ4S+KjcM52?= =?us-ascii?Q?1T2EAaElNmk+URn0U4TkCq3q+VkS9P1nm1vBWIbVh+zN7TUN/3N4hEVBgJ49?= =?us-ascii?Q?w68m3Y38B7+Xf6PZqkMFlJfKGbMRDKQjycbnjvl9E9vHviFCvI/F6R4pkB+2?= =?us-ascii?Q?cvjBuVQQHPktERj5HjjfSya7BLK6EPcVwx3MpSrCrfHG4061MCE0O7H15zcP?= =?us-ascii?Q?2+tsuPFkqULbBNmPDY1mreczzJ0Majfb9MEI9HaY59OHrZ6XuExCisICSh4K?= =?us-ascii?Q?qVXfQnNVd2qGtbS1jQ6WZrhu1Uet9YN2FKzARifyMllNT5O7PqGFRBxADn4V?= =?us-ascii?Q?ukGu+qlEonv2jSuC5uAOhMx/mXl5GQ0wxnRsr7jdP3+F+bXeS+ZsaFXGNWua?= =?us-ascii?Q?QLwGz9gb4uCgZ1upMxxaka+urnUsXW7Nev4pco9hBgswIVUbP8BZSObbcr1N?= =?us-ascii?Q?PLBzUkBhpdPIMW0sQ4Cq6EaYrRnKGo62mYKHlBd6Ndu8F+FL2DCM+7/hN3QF?= =?us-ascii?Q?1Had3WtAJAwahXwvWGCfP5qWQayjs+hGvTdtLwmFdeHI30MDgDA2Ra6LGn78?= =?us-ascii?Q?PPSpPXj/g9p7qpuJNuVH9d9Z9P/hDNvuTrTvmj2Em5Kj6y0X/RS/1YC/YQrs?= =?us-ascii?Q?II2mnRNmpgViowDCFGD71e96DvBv7RL8vhOHcy/D5iIWTi+WTgQmtsYkTiQo?= =?us-ascii?Q?CgMZsA=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB1527; 6:GvnxOkJ9TIl3rbQR+1OQhJTLp+rHG+UlYbYZtO+Afm?= =?us-ascii?Q?fwOCliWe7/v/hmD3J8dv4yMScno4Pnt3R64zbjeyWNblFUi/o0LpGFGf1x7H?= =?us-ascii?Q?1blDIWivPNMD4trJJSv+Q8QoyGy2+iWvH3e9QiRpjT/EY9aUmyVmCjfrc1z4?= =?us-ascii?Q?AR3PFd/TqIZiFaQKUAnFENY3jJLVOT+maj2O2tNP9vZ2R3JhH1Cx6DcSRsYv?= =?us-ascii?Q?Hxv1Pb4101oH/4P8smqj1oLdssVdLs1qtOFrsSoajJHsYrok7jOZTkKGCVrV?= =?us-ascii?Q?hsksJKi3rsHjm7LAsQGlZvdpBSr9E0ugpY8ikVdyhqDzsJtJQ0/PHesPnkPW?= =?us-ascii?Q?8u2LbDOeWKJkmN5hdcvT324vBwgbXCwCfT3jFZFQltZ4t/2IQCzBXJjVlmaZ?= =?us-ascii?Q?ed3y052FUIqx2worROIT/oya8No7wwZ0vaPKhwamUvPVW2ESGG8I4CKXK/SG?= =?us-ascii?Q?M5dG9JW8UerbJk7j8haZHS+dcIq/UwwGl/ZJFAvwg6SdZuv4u2fTCLdcu+U1?= =?us-ascii?Q?FkzFQrFgMErkg3F9z8yQ78qly7gW0UQeC7N8hS9voP2UFfVTsX140JdqioSy?= =?us-ascii?Q?CglIxXeR1nBJlMDwOLDspLuBS0wxDZToGmHK340DgwyBb6mnXdCrKGIAY1O/?= =?us-ascii?Q?LcViBmzi/Z79afGwVY1tOrv5Ge+uj7jlQWTICnMYhl4UVgkqOZloPtZSjFGr?= =?us-ascii?Q?ufiCa/Gmitorni1aopvihinNC/tEiYTTolV+9hgAjFhuYQHejgDY7iPYvVNK?= =?us-ascii?Q?L1t6DfZLL1r4SzTjvoqVT/PdHiisAWRQVwYYvKn2Q4GVlC6+zT6I+vdbQT7n?= =?us-ascii?Q?cj6PWwJ3/wQkD1fPbq3FD5L7x6dJbrAFnvLdozyOPZQJepN9NkXY5kP35SUt?= =?us-ascii?Q?ScGWKiSoGrLFoos27c5p+gaz+TCJ1dBCSde2IhKqgMl8ugjQCLgRcR1T/uC4?= =?us-ascii?Q?pGdMvMC4AcJ30RYixcNte52M0seC+lG7mCqgSs++Cwl6pU7f59ogqnbZP1xS?= =?us-ascii?Q?k=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB1527; 5:2a38qNqMTCYp+7GrVQcTWsTg95Wudx4zu3qxyDnwT6qUTBHhfatz/OFw7i9WM3ThricRT84tkosJM4Q+4JyhUln9TPonnhjFvN4d7/S3jzFR7oINhTJLr6tdqIPRGDjnn78uArpspuspOKkvs6BjbW6ZvV0OJe8vthM91aHGKrhKYi/QQNF7NyifzZSt2wGy3K8Xj2L8Baxsk3SgJ3W7d/JoqoNezMacpRGegGqE14Iziqlt89ggWVPAiVilaTgOXIM/piVEnzkU+aGfqRNgdXHWeFsV6mpOq4uhKqEOnfP3df+brj0guq9GiXdSAon04Ll2tXaRSmzrZoXAoKmhH9xvUR6u5ZF/K6gwS5JWUEYqD5FD46WL2JT0zyfcp/RkapvOvmF8A/R+A4qtHEOxNu+RnEnn9tRblND2Sq3wVnGFh9b5XNKfW4Fevz6XMMjyye6AqWaGXf4ikv6J+Q/wNkBYbYqw6l95K2/Aq4oMBns4xZsWZLNqImiAZqCvFwlJ; 24:Mujf8URcC+I1+WiyVFKt/kmVBVb67yVhjZqfEfpb28UhM0+RaW82I3mTknxO5iHtxjAXQG5lpnhVuJJf45oZNp+4iRSONVmLaHMf+WQ0GME= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB1527; 7:h3xAM8rzPN4+eP6d03b5XKMicqBnbeXB/KASvwyZGNjE6ZW5lCAf3KCsasrlbJwUIkOovOF8aPg+JBAuvzkNkwBSG/yh4NK2fLAIWAbva4/rGqBPsVnwFHhGzqAYmwue1PZaqB8u5SXYWAfn1FWj/+i4bC++UXtAm2GTJLqXaKabe7n3jpJy3sNk2kVpl1LBh+481/v55ak1AI/QCSwgFsLTCy+u0AR0mujldLaeKPwGHkHRiyK8bGIu1Cv8pwNSQ5Za0kLa1H6sV+Qq9YR5+NOChcJfo2vtbRtYK6VP/mUiJsA6FTaG0tOFeiiMmSB1beK2wk17USFYMljaUNa7j+AP7qcrH97ypRLjXHxrBuIbz2P2BItRaJurmkY89GbN29Iziqp4fJ/1uUxhAAdJ/uqNXJHD9nzF5fygNbhcTFJWbx8Y2l5wgFF70DqAOhD/0nBP9h7ZvBfR0MP16Z0LNDQwPIR939bw/DoQstBqc76nEjkoIUV/SV1oKbCpIdsx+j/x943TPmrT+2uJVYqAVDhsTBuOR/sU82bNBFGXGhmaOjc2IRqOd9Fjg36ejU49VqWPjZx5eh+szjfYQ+LEs21fkudspgFFCa0C1jnVqcTw2kjKAdI73pHn77NpZZ401TqulyrZKc0VWIjWx39w3EC5YH5D7zmfVrxCkYbBKgo3JKX+LmePF2stgkUJL9j7RBJS3eEsPOLin0agDcAs9lFha5x3cmsNTMhB8eGKwszoDekPtjFNwx2GDVSWLEoJdmsTgszSAiCTHtLamHP+VJSs5cRyiMiY1wmh4CIPhQ0= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jul 2017 07:34:53.8940 (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: CY1PR07MB1527 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 introduces error handling for errors that occurred during connection establishment. Signed-off-by: Michal Kalderon Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior --- drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 183 +++++++++++++++++++++++++++- include/linux/qed/qed_rdma_if.h | 9 ++ 2 files changed, 190 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index 84bcda3..5cd20da 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -1001,12 +1001,75 @@ int qed_iwarp_destroy_qp(struct qed_hwfn *p_hwfn, struct qed_rdma_qp *qp) ep->state = QED_IWARP_EP_ESTABLISHED; params.status = 0; break; + case IWARP_CONN_ERROR_MPA_TIMEOUT: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA timeout\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -EBUSY; + break; + case IWARP_CONN_ERROR_MPA_ERROR_REJECT: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA Reject\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_RST: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA reset(tcp cid: 0x%x)\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid, + ep->tcp_cid); + params.status = -ECONNRESET; + break; + case IWARP_CONN_ERROR_MPA_FIN: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA received FIN\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_INSUF_IRD: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA insufficient ird\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_RTR_MISMATCH: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA RTR MISMATCH\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_INVALID_PACKET: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA Invalid Packet\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_LOCAL_ERROR: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA Local Error\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_TERMINATE: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA TERMINATE\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->cid); + params.status = -ECONNREFUSED; + break; default: params.status = -ECONNRESET; break; } ep->event_cb(ep->cb_context, ¶ms); + + /* on passive side, if there is no associated QP (REJECT) we need to + * return the ep to the pool, (in the regular case we add an element + * in accept instead of this one. + * In both cases we need to remove it from the ep_list. + */ + if (fw_return_code != RDMA_RETURN_OK) { + ep->tcp_cid = QED_IWARP_INVALID_TCP_CID; + if ((ep->connect_mode == TCP_CONNECT_PASSIVE) && + (!ep->qp)) { /* Rejected */ + qed_iwarp_return_ep(p_hwfn, ep); + } else { + 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); + } + } } static void @@ -2011,6 +2074,42 @@ void qed_iwarp_exception_received(struct qed_hwfn *p_hwfn, params.event = QED_IWARP_EVENT_DISCONNECT; event_cb = true; break; + case IWARP_EXCEPTION_DETECTED_RQ_EMPTY: + params.event = QED_IWARP_EVENT_RQ_EMPTY; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_IRQ_FULL: + params.event = QED_IWARP_EVENT_IRQ_FULL; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_LLP_TIMEOUT: + params.event = QED_IWARP_EVENT_LLP_TIMEOUT; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_REMOTE_PROTECTION_ERROR: + params.event = QED_IWARP_EVENT_REMOTE_PROTECTION_ERROR; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_CQ_OVERFLOW: + params.event = QED_IWARP_EVENT_CQ_OVERFLOW; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_LOCAL_CATASTROPHIC: + params.event = QED_IWARP_EVENT_QP_CATASTROPHIC; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_LOCAL_ACCESS_ERROR: + params.event = QED_IWARP_EVENT_LOCAL_ACCESS_ERROR; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_REMOTE_OPERATION_ERROR: + params.event = QED_IWARP_EVENT_REMOTE_OPERATION_ERROR; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_TERMINATE_RECEIVED: + params.event = QED_IWARP_EVENT_TERMINATE_RECEIVED; + event_cb = true; + break; default: DP_VERBOSE(p_hwfn, QED_MSG_RDMA, "Unhandled exception received...fw_ret_code=%d\n", @@ -2025,6 +2124,66 @@ void qed_iwarp_exception_received(struct qed_hwfn *p_hwfn, } } +static void +qed_iwarp_tcp_connect_unsuccessful(struct qed_hwfn *p_hwfn, + struct qed_iwarp_ep *ep, u8 fw_return_code) +{ + struct qed_iwarp_cm_event_params params; + + memset(¶ms, 0, sizeof(params)); + params.event = QED_IWARP_EVENT_ACTIVE_COMPLETE; + params.ep_context = ep; + params.cm_info = &ep->cm_info; + ep->state = QED_IWARP_EP_CLOSED; + + switch (fw_return_code) { + case IWARP_CONN_ERROR_TCP_CONNECT_INVALID_PACKET: + DP_VERBOSE(p_hwfn, QED_MSG_RDMA, + "%s(0x%x) TCP connect got invalid packet\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->tcp_cid); + params.status = -ECONNRESET; + break; + case IWARP_CONN_ERROR_TCP_CONNECTION_RST: + DP_VERBOSE(p_hwfn, QED_MSG_RDMA, + "%s(0x%x) TCP Connection Reset\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->tcp_cid); + params.status = -ECONNRESET; + break; + case IWARP_CONN_ERROR_TCP_CONNECT_TIMEOUT: + DP_NOTICE(p_hwfn, "%s(0x%x) TCP timeout\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->tcp_cid); + params.status = -EBUSY; + break; + case IWARP_CONN_ERROR_MPA_NOT_SUPPORTED_VER: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA not supported VER\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->tcp_cid); + params.status = -ECONNREFUSED; + break; + case IWARP_CONN_ERROR_MPA_INVALID_PACKET: + DP_NOTICE(p_hwfn, "%s(0x%x) MPA Invalid Packet\n", + QED_IWARP_CONNECT_MODE_STRING(ep), ep->tcp_cid); + params.status = -ECONNRESET; + break; + default: + DP_ERR(p_hwfn, + "%s(0x%x) Unexpected return code tcp connect: %d\n", + QED_IWARP_CONNECT_MODE_STRING(ep), + ep->tcp_cid, fw_return_code); + params.status = -ECONNRESET; + break; + } + + if (ep->connect_mode == TCP_CONNECT_PASSIVE) { + ep->tcp_cid = QED_IWARP_INVALID_TCP_CID; + qed_iwarp_return_ep(p_hwfn, ep); + } else { + ep->event_cb(ep->cb_context, ¶ms); + 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); + } +} + void qed_iwarp_connect_complete(struct qed_hwfn *p_hwfn, struct qed_iwarp_ep *ep, u8 fw_return_code) @@ -2038,9 +2197,17 @@ void qed_iwarp_exception_received(struct qed_hwfn *p_hwfn, ep->syn = NULL; /* If connect failed - upper layer doesn't know about it */ - qed_iwarp_mpa_received(p_hwfn, ep); + if (fw_return_code == RDMA_RETURN_OK) + qed_iwarp_mpa_received(p_hwfn, ep); + else + qed_iwarp_tcp_connect_unsuccessful(p_hwfn, ep, + fw_return_code); } else { - qed_iwarp_mpa_offload(p_hwfn, ep); + if (fw_return_code == RDMA_RETURN_OK) + qed_iwarp_mpa_offload(p_hwfn, ep); + else + qed_iwarp_tcp_connect_unsuccessful(p_hwfn, ep, + fw_return_code); } } @@ -2123,6 +2290,18 @@ static int qed_iwarp_async_event(struct qed_hwfn *p_hwfn, qed_iwarp_cid_cleaned(p_hwfn, cid); break; + case IWARP_EVENT_TYPE_ASYNC_CQ_OVERFLOW: + DP_NOTICE(p_hwfn, "IWARP_EVENT_TYPE_ASYNC_CQ_OVERFLOW\n"); + + p_hwfn->p_rdma_info->events.affiliated_event( + p_hwfn->p_rdma_info->events.context, + QED_IWARP_EVENT_CQ_OVERFLOW, + (void *)fw_handle); + break; + default: + DP_ERR(p_hwfn, "Received unexpected async iwarp event %d\n", + fw_event_code); + return -EINVAL; } return 0; } diff --git a/include/linux/qed/qed_rdma_if.h b/include/linux/qed/qed_rdma_if.h index 01966c3..4dd72ba 100644 --- a/include/linux/qed/qed_rdma_if.h +++ b/include/linux/qed/qed_rdma_if.h @@ -476,7 +476,16 @@ enum qed_iwarp_event_type { QED_IWARP_EVENT_ACTIVE_COMPLETE, /* Active side reply received */ QED_IWARP_EVENT_DISCONNECT, QED_IWARP_EVENT_CLOSE, + QED_IWARP_EVENT_IRQ_FULL, + QED_IWARP_EVENT_RQ_EMPTY, + QED_IWARP_EVENT_LLP_TIMEOUT, + QED_IWARP_EVENT_REMOTE_PROTECTION_ERROR, + QED_IWARP_EVENT_CQ_OVERFLOW, + QED_IWARP_EVENT_QP_CATASTROPHIC, QED_IWARP_EVENT_ACTIVE_MPA_REPLY, + QED_IWARP_EVENT_LOCAL_ACCESS_ERROR, + QED_IWARP_EVENT_REMOTE_OPERATION_ERROR, + QED_IWARP_EVENT_TERMINATE_RECEIVED }; enum qed_tcp_ip_version {