From patchwork Fri Dec 2 21:44:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9459347 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 166BC60585 for ; Fri, 2 Dec 2016 22:21:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 079782858E for ; Fri, 2 Dec 2016 22:21:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EE4A4285AA; Fri, 2 Dec 2016 22:21:04 +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 585342858E for ; Fri, 2 Dec 2016 22:21:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752643AbcLBWVD (ORCPT ); Fri, 2 Dec 2016 17:21:03 -0500 Received: from mail-by2nam01on0043.outbound.protection.outlook.com ([104.47.34.43]:10392 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751990AbcLBWVC (ORCPT ); Fri, 2 Dec 2016 17:21:02 -0500 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=THbhViEShUVXAvnIsSS996VLVsWLq7PGZHEaL6h3wno=; b=a/qneasiphJpuh0xgxVTUWXrRYxQFtQuR0ZrbICd18ikv2l3/pEOfdMFpMnkIj3ule08PohEZeb2RaUhUVmLyoQLjW1z3VYJemOW/33MIiqPk1aSKrC9lRl5LpElWMfen7UY09E6ifA80RAtCr/S3YsvGLnPxW6rdwM59tvrc5M= Received: from BY2PR07CA0029.namprd07.prod.outlook.com (10.166.107.24) by SN1PR0701MB2096.namprd07.prod.outlook.com (10.163.133.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9; Fri, 2 Dec 2016 21:45:11 +0000 Received: from BN1BFFO11FD039.protection.gbl (2a01:111:f400:7c10::1:119) by BY2PR07CA0029.outlook.office365.com (2a01:111:e400:7bff::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9 via Frontend Transport; Fri, 2 Dec 2016 21:45:11 +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 BN1BFFO11FD039.mail.protection.outlook.com (10.58.144.102) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.734.4 via Frontend Transport; Fri, 2 Dec 2016 21:45:10 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:1107; Count:15 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.309.2; Fri, 2 Dec 2016 13:44:58 -0800 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id uB2LivPA013644; Fri, 2 Dec 2016 13:44:57 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uB2LivwE013643; Fri, 2 Dec 2016 13:44:57 -0800 From: Himanshu Madhani To: CC: , Subject: [PATCH v3 1/6] qla2xxx: Only allow operational MBX to proceed during RESET. Date: Fri, 2 Dec 2016 13:44:52 -0800 Message-ID: <1480715097-13611-2-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1480715097-13611-1-git-send-email-himanshu.madhani@cavium.com> References: <1480715097-13611-1-git-send-email-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-IncomingHeaderCount: 15 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:CAL; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(428002)(189002)(199003)(305945005)(7846002)(105586002)(2906002)(106466001)(50226002)(2351001)(6666003)(110136003)(356003)(2950100002)(6916009)(38730400001)(33646002)(5003940100001)(39450400002)(39410400001)(26826002)(92566002)(86362001)(48376002)(69596002)(47776003)(80596001)(76176999)(50986999)(50466002)(101416001)(42186005)(4326007)(4720700003)(8936002)(4001430100002)(36756003)(5660300001)(8676002)(189998001)(107886002)(81166006)(81156014)(626004)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0701MB2096; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD039; 1:jfi8LROQn//vPEP+2SSKAfw7N6zkhq1g5Wcp+AsvfjxNyj2+O7+MPMfAKzVY7rBE/8lqL6wg/sDHA+ajdr+ndVXBPg2dhQPal6TZcQNOEwnd+dhDzFEVAVs+nVgb9Su57IdSxPD1RVq6FcE25ujwq4Bj0IXvRCNpcdi9MUU96VtsaUlS1bwJKur6BH6wqsIcrcIaHIQqwd2C/W/uxNh0OetaaOcihAuXunp8t6ctS6rMWWevCFhNajcHm6N3Igl/QN58GWC2J3Hn4qcLArwqIPhgTreRbH3Aijcy/If2ialX0QYGlZDUgwFVDMk9EYmAqTQzT/wbyW2Y3bOWQm7UiBE54MGF+ibKk1YUX8E9nSqXO+g/kiGizXeClZuQWd6LbRDpwSzVtqGJ7BaJdPDjP4bxCe11ZCMjbbiXowE1qxUwG9zXk+gyZsabGoL1LJUqHcvU0jQg+ap7K0dUMKACcTEO+rXMpVNQtupSOjaYtBhAKSTXCACO/By6MatiUr2YLr/0gc3KFMmlPmS8ZqR00g== X-MS-Office365-Filtering-Correlation-Id: 42f358f6-bb73-4090-485a-08d41afc7dcd X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:SN1PR0701MB2096; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 3:vlsPXxWV9ONxGelylhH7Snm9/Y23+EuLtZSddD8ZoG7ul4zRrd8q++IPrp4LhbVl8huLagk35orYQjyTwVsxMnAMWrycRcIi4e31X++Hr7n74qfV5Jvi2JJZSkcD0riq+tgeLkacf2F2HUrxs1gFqKHatcvZD77YbV8bn8X95rE2nPpaW/nKoEjB30vXPSnWH3NwZtYAF/w/0UTMBy6o3uIQtp9V2yy6WYjDSjYP+cXV/I5TFdDJeH1SAIMDG/2Wla/OTNvlwlebXOyX+T1a9DjgzBpBltgbs29T22vBObpTYqATW2x7yF1fhxa7zV9j3UHPAVfHa9eMac3lV5SNmBuqyNTfQL4p1d1ZTlQCFLYrFp09tdOd4JFMhBhJN8HG X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 25:q7NRejinOemuppkJMODMnTjwpia4B4xlgS0nxY7VYrOY6eIGrxKv2amMq56ypURhBNMKBb0MKgaIl/JgezKCDGY+jQswKaf3QKNrLwAVH2QkIMecxKdKWogGdPOMeGJIGrRZVhvQZ0nuA705895BrtzbSPwjb0PwxDWpS41CAM8zSGIpSsgjJRDUqvoDZANeF07ZLZKH/WyXFvtCWQBOkfEWeGXTFeXA5R4yhg2rgx64jdcD+45a569GBkH+K9dB0ZtD9BDg9DHkP/tg3b0nNWdq2ZTvTq7nFqDZ3cMYb7bE1k3m9bNrP1/yUp1QKooE7Sr6QSqjU2kuabjc2sLQAx0ppoIscWHRtwOxOZI+skdQM6kHjN7zoAWgqJ2SvTvaD35yuoJgGERH8PahPI8zd0edVmiBuf01wu0GjPRsIbmmUzo9oZR6YqVW5lPDUqHFLsTK+XiqlcM7ZVGAQExKq+U1AF3UpSrZQHzQEzNdjk7SufDNxgymmBooW/DeEkbaGdN0CyYlou0JS6DAoTmwmAG9tGUSNfn0Q9ms4d/fPnZSrhHceecIg+oq2zELEk2JfeeuyurkLG+H1WKqPnir35oGpHseWWAEYBB8QoUGfk9AcnfWLs3xMfM5dDnG8wTU0V7i0ndl9tTWRtvWv04bHb8EZLoaA/i6hdmoz3kJSHRZO+8fkTlb4z0DTOkaD4hrw4ht38RAJRfXxIIQEgIramRUrNndS4akOe4DYcTEY42RTm++QHEB3X43DmPIIEVlM5oeISTRX/RYg1FeKnVqat6GzNN9UKdqmyzmTGJ7ZXnEX8pu9UJ/RJM60e1yQYeaRYhCqYPVteYO1Ca+23k8DbQnBvlhhWe9+1y4CoO2qEY= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 31:J8Zg9fGOoOw+xzKrWwGVNmcfU/jOraXL4bHNr6cLVOwpOjzuWaRFJBNJ+Wma9oy2wfbBJhvYhZnzu9kKwk26K06EAG4r90PxqYfir/IUGTP9C8QUI49R4eoozM7YEWfNMd1iIjvROCN6HFln29rfG+z1XyS8inNSM/0yZac8HpM81UVISefacMV7Lq7wuEVyEB0nlcig7MdPNVnSePUuLbmiG0SqhxcdpSOB2Zx0gtXyZLnIZkSYQTfxO+sLt2wLvET+3hh5YoJF8NyaTjsTig==; 20:pnXhwHeqlYdaycdPPfOUdFRPfIHleeFJuu4/MgkX8GOpnz3FrunchXcRGOxRrgI2xza8G7hUny4jEE/wpYciMe4lMiCJgdxwyJ0ZP1WVcKtCR270RMWLQtWDWIS/kku8A1NwkbdFhz3TO6+QVfj0enCBHFkIw6TK3aDW/XCHVWZNfD9719oaPXZFVDw+QhT0GJ6hr+lAp+clKe9Bbq/XPWJ1UczK8BIDbK+BhUJZJRgSsTg4L7FS0qrihtT3IktC3qvINmKesWSVzw6zZG5zir01wY4DrEbiPWOP6GrFnYjNL80Dc9WfxMD+wXu3BqhtFnPsgBXCot90mOJbk+kZqfhSAyCVEQ4vLI6kpgYbZ17UP21XOph4JbglKUrAamfcSaUeV1aEOKe3HO8FsCc9zsdOTGgLUvhZjnrjJx+cHEXo0HzZ/aPJq9oMl206XcGf/zJPtiO6cvydtGOOUZubniUUCutiPDt865bnYyIasUhX71sQ04UXGuGXc8GSRlT5 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13013025)(8121501046)(5005006)(13023025)(13021025)(10201501046)(3002001)(6041248)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(6072148); SRVR:SN1PR0701MB2096; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0701MB2096; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 4:VqZ6BPrIPcLNEiiB4UJLCvgrYzshvDdaxwmodpQItrm98IkIfKtiDZ5TRCFoVPlydrWloTbg3Wpq5IW9DF3HHmFFcIfk5GdmmrnsZX+I6fwMJyPuxnk9w/jlZR4dWsuxaWz5Efx0nu1flxolS77DjsYZFKUTqpHveyTdY6cPaKtt0vSRoO0wvX0zxmYXM15KEm2wre/kwB06p6s+I4uxfD63EuJWQyYSg5MttiWfwaOw/lyQUmM3rub4clO4XjEfVf0wW8e0jy7xE5bxidyhcooiO/o5AKlnseq2A4SRpzmjqhe5Zlwfc9tmoTx6jNEUfmx/JcpOaqS4vuW9QddthKeZ4VTsNlqmExmQ7UWUC/lG/whRezItccJf3TwP9Pp0GeLO1Y3rYTc0zjJ2iblYCx8AWe2tWYZGwp/mNYeQIwF8XK2USwcSmrAO6wElxiMN7rBsKVp8ronSkLmw7katIdbVoFVtEw4l2P+Olcg28aRPhHtNNsbEVrQ/zoWe6WnTxX5DhYEYflrzEF2AcWLs8wVCEa+t0l0DR9B4Lwv3VtrhDMJ20Wacwptu+pyff0w7oCIXJFtO2ucIipiPINGcPhJ7rRdkYT8DNO6tCza3+WS6i4Efqauzo2XQM+Gl1QNQ X-Forefront-PRVS: 0144B30E41 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0701MB2096; 23:Bl2I3CUoujxtG/29EbMIIv8fy1EvugbJGKacucz?= =?us-ascii?Q?iUBRI5ezdGmBof5Z2bxXm65ZYlXCFn5Urp1TZbgpJLA3b3D90TWKwx5kFvxl?= =?us-ascii?Q?PrjkHkyXX+bgglYUczl4vmm302P0iZ4pO8DWXjUPlnb9duZxPM9wPigHo50z?= =?us-ascii?Q?v4Q3unU/S2lDPq9bC+23l9zm9kZacvRqUAFx6CNK1vAP3QmOABCVsCDtFW3T?= =?us-ascii?Q?HKKvazwvDVnoyLWCZjCRe0fX/55Fq5webHiDCzhlnFfBazUiUM6hvmJ6Iu9S?= =?us-ascii?Q?sSyxB7D/mBQWcXXLAP1fLO1jn+ToP9k1W48O63nIqLiH0Etn2HhjBqYzMJGm?= =?us-ascii?Q?5RFO2pqx4po6T8eQ9CSGHX4iy78e7/kFmMyVgFuwgfz337ZEYoyhymiu4+va?= =?us-ascii?Q?02lD9SyHfPQWDROb50j1dXRTm+LzNCFhipyu9NirPHSe3aW85J1Z1/szzy5k?= =?us-ascii?Q?ASIBGzMl+bZe9OZaKeah4OwR2A02hbe/yCGV0oX7KFDd/qqrwQTRa5W1VRbQ?= =?us-ascii?Q?ejS72dV/Yz8NsWkWmppNS9v/FJJGQmdPw5U94XZl/55YDoR0Y4sL10XRbZjp?= =?us-ascii?Q?dibbazeEFH1ZKM9AKc0gtejXoDukAypowXrzSRvtSnlNEmLKa03LhiJeujgu?= =?us-ascii?Q?a4g6LUSVNeyDH7QMBAC0sXIZNbYzlIyugbpmE7g+FswzRwLRtXw5Pv2wO2pk?= =?us-ascii?Q?104OQgfOokm0aT6BjrLHd8ahHhoQwSsurWYs208KZjqlL/QC8tRy0To83z5m?= =?us-ascii?Q?w91JRORrdK4hCx4HnQ1uNMDVtNhYqdr1Ucqndin0Le/d3isQGxCjnzxG7fu5?= =?us-ascii?Q?QzBnNXg+W5apRzgNyR4HEEEdL90DAd7MFOr60/varpeYtUZtjgxKUQGEz5Mw?= =?us-ascii?Q?xUVJiZUVYl+tSunm3DbxynmjJPOrlxf+2htrapKkrR065QzBrw7fNOG8fFyh?= =?us-ascii?Q?hihAw7XPWsmrbUB1NN2f7d3Cqcn+vSpw8FctZXjJDpOpDUfot53HYihM92rZ?= =?us-ascii?Q?FbDnuC01jVjFLKcB6/JvCTAV1p6YxVhNN8B2Sx9KoztvWcQohWMmzDoEBiIu?= =?us-ascii?Q?86o5tOvQ9xBFOJmDA5bcpMaF0qst472WAYIaA/8jFrjHmShkkUzDeP5W+qVn?= =?us-ascii?Q?U0rbjk7g2trOxd3Rv/9ctTgFYFMHD/CZCqqM4uk3nG/1YrflioNGCqg=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 6:7WvrL6rgz+f51Aor8SARCrSYYY1dCrl5uYVguyKnwuSPqStV1IwSrBOGZkxVogAnjx6aH2uJlCOGQhX5AuBjHbyp4oYTHEtB1pd+Oy7Wh6yIYjKWXLyXasTOx3OVPPVts23SxPGW5PbiawUUUKLu6SvAThCcAUraNaP/ISqbo5v09WVT+sqyohe5BPTdJqecDHvWkadM7S9p9fQd2DbI2ONHDftkwgZySmN2dBm7lkwnpZ9p5NFgwO45LzFIhYDVQY2oyK9Gy89jFmvZYatLvBJtiBKQFSzrq3FHvn6Q0HYl+ELM3gyLoeNd4NGpGvV4T0Bs0/kG+Q7KLeqUWm2FXV0bP5sEcIKB2ACgzpYQWL+ndjk/aIMwtCBGnFc6XapaESCOmKiawe3fxom0uVb6Mm1Lo7s9BQ+YotlxUn6TrKTwPbJrpgaghyFTqB+erNcbx22zWxhr0z5TaudS8zPnPA==; 5:5vcXJTaI18FTNwq+++Thcn7GvjqTEimDocfa4BLK+wpT9Fs61PMcf8Cnz9hSNZM3y3cvMNTBlyzyAr3pl49KUZphdXUGcMzf+VgI1bK/53C4FwaCfOaRbKL9YVtX9tkPac9HtU2spGkddXw2DV89+Q==; 24:g78RwyyJJTLqkLLOre49uRxoCn3wYw4IG4ZMzXxw1dpF1mW/H7OWs4r1wFlmr3SjNK3KJI+tj+xhGakk2CnpNeIXa1J1AUCZmlBVNjpQHKY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 7:yaLLgdS2hFQwVDzaO8WVGXQvdnSVob8NN9f+Qeta4qXLaksG0h+9ePFRIYeI5q+S3sv34jVtPyMahnP2zwoBeMhmXy7WlPjXEEiH9EAVjRQ+YgPYlPBOcudhI1Y1DQAHlKRWIAYuhDQ3UnvQzdoRabc/KTwrrQ5j6+XqyY9yZNyZSzssPRBS7+mCCZqtcJl3JDyeCojQM9PjqpVAf/EJAi5/tf5bw0Ry2LP+XtcaRYDHcrCxwBzx+pSfo0GqHsUMKcAi+sYwjXCCsg9cqxhVLC0iPCLchOOCU/CX8LuPcigq8HTU2V6KY+2vxPW4I2nbm594yLAlbfYv7qGqsTeP9aMGHxVHp/izoq6G3HkFGX3FrjYMGO8pukZvhg3U+HcEYWLlRtmvwqw9lCxQVlQ97ab7Vnl7R3pkytD4olFuIgzC+wbNkIxbPUAkX/OKTvGXficpJFk3cvQSGfJL6vVlCw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2016 21:45:10.7336 (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: SN1PR0701MB2096 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Reviewed-by: Hannes Reinecke Signed-off-by: Himanshu Madhani Signed-off-by: Giridhar Malavali --- drivers/scsi/qla2xxx/qla_mbx.c | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 23698c9..b31c36b 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -10,6 +10,43 @@ #include #include +struct rom_cmd { + uint16_t cmd; +} rom_cmds[] = { + { MBC_LOAD_RAM }, + { MBC_EXECUTE_FIRMWARE }, + { MBC_READ_RAM_WORD }, + { MBC_MAILBOX_REGISTER_TEST }, + { MBC_VERIFY_CHECKSUM }, + { MBC_GET_FIRMWARE_VERSION }, + { MBC_LOAD_RISC_RAM }, + { MBC_DUMP_RISC_RAM }, + { MBC_LOAD_RISC_RAM_EXTENDED }, + { MBC_DUMP_RISC_RAM_EXTENDED }, + { MBC_WRITE_RAM_WORD_EXTENDED }, + { MBC_READ_RAM_EXTENDED }, + { MBC_GET_RESOURCE_COUNTS }, + { MBC_SET_FIRMWARE_OPTION }, + { MBC_MID_INITIALIZE_FIRMWARE }, + { MBC_GET_FIRMWARE_STATE }, + { MBC_GET_MEM_OFFLOAD_CNTRL_STAT }, + { MBC_GET_RETRY_COUNT }, + { MBC_TRACE_CONTROL }, +}; + +static int is_rom_cmd(uint16_t cmd) +{ + int i; + struct rom_cmd *wc; + + for (i = 0; i < ARRAY_SIZE(rom_cmds); i++) { + wc = rom_cmds + i; + if (wc->cmd == cmd) + return 1; + } + + return 0; +} /* * qla2x00_mailbox_command @@ -92,6 +129,17 @@ return QLA_FUNCTION_TIMEOUT; } + /* check if ISP abort is active and return cmd with timeout */ + if ((test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) || + test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) || + test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) && + !is_rom_cmd(mcp->mb[0])) { + ql_log(ql_log_info, vha, 0x1005, + "Cmd 0x%x aborted with timeout since ISP Abort is pending\n", + mcp->mb[0]); + return QLA_FUNCTION_TIMEOUT; + } + /* * Wait for active mailbox commands to finish by waiting at most tov * seconds. This is to serialize actual issuing of mailbox cmds during @@ -178,6 +226,7 @@ WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT); spin_unlock_irqrestore(&ha->hardware_lock, flags); + wait_time = jiffies; if (!wait_for_completion_timeout(&ha->mbx_intr_comp, mcp->tov * HZ)) { ql_dbg(ql_dbg_mbx, vha, 0x117a, @@ -186,6 +235,9 @@ clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); spin_unlock_irqrestore(&ha->hardware_lock, flags); } + if (time_after(jiffies, wait_time + 5 * HZ)) + ql_log(ql_log_warn, vha, 0x1015, "cmd=0x%x, waited %d msecs\n", + command, jiffies_to_msecs(jiffies - wait_time)); } else { ql_dbg(ql_dbg_mbx, vha, 0x1011, "Cmd=%x Polling Mode.\n", command);