From patchwork Wed Mar 15 16:48:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9626179 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 3776860244 for ; Wed, 15 Mar 2017 16:50:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 28BCE28641 for ; Wed, 15 Mar 2017 16:50:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1C1192866B; Wed, 15 Mar 2017 16:50:51 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI 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 A1B8B28641 for ; Wed, 15 Mar 2017 16:50:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753257AbdCOQut (ORCPT ); Wed, 15 Mar 2017 12:50:49 -0400 Received: from mail-by2nam01on0055.outbound.protection.outlook.com ([104.47.34.55]:2963 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751884AbdCOQtO (ORCPT ); Wed, 15 Mar 2017 12:49:14 -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=FAqE1WBZkf0xdwZKnIo2//jLvla49tipsFYudDrV4lI=; b=Kjm8CGn9UUbDoGwN3nF58EWYvxqO5y3oUSK+PGRhFqgo+O0V1h/NygKNp8NPrSzPJuAx1QYTHpJiNmQf760r9s2ONpSlqG9oG8PJDoAycp7TKEfTd/RdsPMvvtKmytpWVj+cN7+r5hQ/+Oi/PUsrU0Uhq8nAdgSx63yx525nPD4= Received: from CO2PR07CA0012.namprd07.prod.outlook.com (10.141.194.150) by BLUPR07MB466.namprd07.prod.outlook.com (10.141.202.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.17; Wed, 15 Mar 2017 16:49:11 +0000 Received: from BL2FFO11FD042.protection.gbl (2a01:111:f400:7c09::145) by CO2PR07CA0012.outlook.office365.com (2a01:111:e400:1414::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11 via Frontend Transport; Wed, 15 Mar 2017 16:49:10 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; linux-iscsi.org; dkim=none (message not signed) header.d=none; linux-iscsi.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 BL2FFO11FD042.mail.protection.outlook.com (10.173.161.138) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.961.10 via Frontend Transport; Wed, 15 Mar 2017 16:49:10 +0000 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; Wed, 15 Mar 2017 09:48:57 -0700 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 v2FGmvUR017306; Wed, 15 Mar 2017 09:48:57 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v2FGmvqV017305; Wed, 15 Mar 2017 09:48:57 -0700 From: Himanshu Madhani To: , , CC: , , Subject: [PATCH v4 04/14] qla2xxx: Fix inadequate lock protection for ABTS. Date: Wed, 15 Mar 2017 09:48:46 -0700 Message-ID: <20170315164856.17255-5-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170315164856.17255-1-himanshu.madhani@cavium.com> References: <20170315164856.17255-1-himanshu.madhani@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)(39410400002)(2980300002)(428002)(199003)(189002)(9170700003)(1076002)(8656002)(42186005)(2906002)(6666003)(2950100002)(5660300001)(76176999)(48376002)(36756003)(305945005)(105586002)(2201001)(86362001)(8676002)(47776003)(54906002)(356003)(33646002)(8936002)(81166006)(80596001)(50226002)(50466002)(189998001)(50986999)(101416001)(5003940100001)(107886003)(38730400002)(4326008)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR07MB466; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD042; 1:EZI1YiRIk0MNgOwLbff7lOaKAhTSp4XYyMgkFWfOrrb+JOrgGwDrtZgrt7ZMsj+bltdEg0IjwuUxeepGd0foxd66mlSl26H7Gy/cNZmzcCIH3cOMgeKEoFLUQZf+fhWePvTwsSkqf9hQsAo8rjNbIK3XRnwNxZwuyj37LDkWr3XrFNuDgTaPXs4opWnLfRf6ZWHhcJqtCcFbyEVGSCih2UQDDRkQ58LPWWqACLAMxN3ZBXo7KdYm2LAHU8/NdpW0eLIqcRh1IsFQrilZysNZcHCmleZT41KqMe4aIplCJUx9HbhzUJHmVXaMuM+rSiX2G0SX5Dw7zjNkcon91giv+DIKs3fTHz5GCZO14nu/bAsgMJ+UW2hg+lmnC6l+a2lhdvt2k0Gs5rDcDzEqUHcU4NJ4eSNG8VJovp050w2D9cEZ+UWfdN5nsmmvG3ZhigoTVl9VMuXATqYBWmUYGLI7msf6efSYa6QLTycgb8ShSp7V+yJuA3JpowcSf6AKXtm/B/LN4PY2xprNqHZRP5DbydQi+UZ7g3phURUnCi0nTOw= X-MS-Office365-Filtering-Correlation-Id: aebc9046-6160-4ad0-ad2e-08d46bc3343c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR07MB466; X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB466; 3:0mG4Fgnm7b8FhMmb32ZIB5S3llKfu+X2XBsN5W39ZG/ErspH+jDhPzmSeDzFhZ7yTQYM/UsjGGofacUool2tfp34oG0HfHqM3lN7M2rgkewFjRcq72kS7UnO1otH9868axkb+mYUDNk2jI1Fuy5TJYei8MMJBo2vLafckCZCmbSqyU/b/g0Oqx+IEIla+RD36Bo2O18pS8DnjAovImh9RlSvWObE1bKNTiSOGNkD0k1EiLslmZFjTbtnumKQ5c8cDesCrd4eZTVIgyDUUa/aUSAG2VFzTivkTlaXijYUMs1ZIYxTi0RAYCtFd4ZLQO6S0p/3WqXWexT98n3UWA/fnrRuNw9McZdkq9B2bEJsNESg962JAXy5wWPFEd4MCgN2; 25:ZT0hOE8ORkO89M0oQmBbdUGwqrv7RVzHGd1sDrHzB1jn/m3KmD7ZY7dK1xmT9OQNNmUdbTptkQV2EpeyupcFp81B45FBVWx/Z3R1ojKUSQk046hnYySJCfWb2DSBK179jZ+dsVip2RiK3kfIUg1Q/ft3wqsXTObZK85Y9u2HlKw4uafK9cjkEER395eK/fMqCmn6t9q+AIdQA7OKwnIJSYo++6WlNIJ+IOzyqSXQasAeOPFJKOqcaVGhGw3xr45WNLYoG7Es3at50yJTn6yDTYYSPWMg7cIByCMrvZk5uoJ9gbmQnWYpzYVbXNG4boGkANsLLZLAoIBMh+vU24NVc685qhIwd2aNtx62PjsIezZW3O5fFl1ZlIguUhE6jd8oDhjsysK+HKBKl8b23ylV9pPGwfym6GSOzLGPPyqbKkHk24dzyoZa6FNEKilSsf/mvwBTDjO8oHjrAiOBDj6ncw== X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB466; 31:uHl+hg16sAa2LdOGK7HoXJ8Bd+xxiL7PrBjRT1dzMIX6mE0NuqzN18mx2dUpVyXq2OBwINt9FXZQrV5zfZIJ7BeCwbMfhMgYU//YkPayLiqYWs8pMQqrWrsPzyr9GvUYBi+JlPnkCMYy7Amgyn41p7GMK2AXRXl+kXqaTEFk4IkbTVXsLiiOwpdgyH9Pr+uOmn3mlXRGN6EauXTP8rhk+UrcelXn5V98i43gxY15eyY2be+xDUycpZVVg3ZW28TutlB6+UnPzWAqWS3BtsesUA==; 20:ers7+c1BzwjQD3YL+IW9rfTiKtHD8m/gNGaXKCF/jxcBtWv9kEVMsOZClmtfP0hfrCIgZ7xuYValK4fwAnGvxJO5SpEjg2hQB+DfNJymrBCi4F8OzSAw3laD6iSfYSUuooatBeioFmbE5+ADV7n7K+MjGbZZN5AwfJMcu4XXx4UmkiqP0lsiAUP13QMe8GBg0Bhrl+8n/zmTObdk0SRKSS8BMTSxhtuk+Rs9JRsQvXgY60Q9thYVBdm+QFM88KHfpTl5LobhXKx9Ro5I0iQYiHX2RWj/7XZz+hLZxcrlUas1YSMyyilBWy4S568tjulYPuMCtBBI3gNGXSDptrzIXFLeGgXQFjqo5Bjp6X7QqjkzsD+6yu1wNHlWwFDrsm6kYDdvgGt0ehJuls4ptWPjVsoCQ5HlqD7wg7QAg2hgkBMmSIVjmlqCmV6ioOj4i6fyZG+5I3Y7XHkP1Ek5CZA+A+eUxtfkb0dUW2ci1ZqT1eSZWw4EGKFonB14XCF2XU2T X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(13015025)(13017025)(13024025)(13018025)(13023025)(3002001)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(20161123558025)(6072148); SRVR:BLUPR07MB466; BCL:0; PCL:0; RULEID:; SRVR:BLUPR07MB466; X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB466; 4:sdnoIqq54Ox0Y/Hm2HkEKpuRETIFFFHCbGiGUH9F4D8FvybqzyH3T0/6Hhp7Qf1NcXkTTR+2B7axzApAyw6+xWwaGrQHPJmwbWVjdfRtNDOe4Q6BZ3TidKXjYIXp4MYFlToX0Kd9lAibBI5ZQO+9CvkHo94C3z/GULHTfjrb0E3MfyxJVX+4zBNfSFBjuBCmpYqylEPdc7t/jq/zNhwNl8qQrAa55TzC9vcQnK8R5jai1DkoupInz/66T4cba0UDnggjoZ7UocxtyBtVIXtIlAcJ+TGhm9wzMjje1OIOO0onbaR3tIcAWQDHx4htiajo7+JsyUm9ScnETmmbhxq9mAUlHhsNf0to1FgeIz+88lfGi6nOyyJ/thZsgKcQtmjq1sknBHYaguCm7hkq/e5ctv4f6Cmy5YhYlfMyv94yIiTrk9uZoZ+8pzW/0gyRshW2nuICMokz7iQvKmJaHwgIAK9OY7vE0bAbx7jsJSmt6+0uIrV08hmtySdbnO8RoCFrnEmol1xuI5bIJU2DjDEY+LaO0rhM12+SfKtRAC2c5dB+wZs432c3iJbbRJP5jcCv2BzsoDhB7VwrdAnfZRGlx+dzPDsIhFHQDc+vccEJPkGZSQLHZa/tOao/Am8oADATooP7cK3jVbjxRg026FZjOVLE+t4oA2X9ljVdMpka0yjedEej0YOGnsvUQuEw4fhUo7MqROVh4Pn/HFFqC3BCTN6ZVa/dJWMVifTd0PGtAqlnDKgP3CSByJOgNt17H6AI X-Forefront-PRVS: 02475B2A01 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR07MB466; 23:ZUC92CjpnT7kgKajLx3gVHPzRrdf65qaSPkfI4cVF2?= =?us-ascii?Q?cxdLl8HHWzkq+RJMIqDku3YnL3L3peM1H2h5Oh1IVy1KT2BAcjslyWLR10TO?= =?us-ascii?Q?iGUA5r3SDJVlvHu5sA4kBjFBItubiH5z/3csJ4J3lXKGSznZfVJB8P8FTmqI?= =?us-ascii?Q?5h57JHlL+ONDbyFQiVM8D1oh7NXKuL8GApHkFFznodJQiK9jSmfM6miKzAk2?= =?us-ascii?Q?QmflkNv7GsXh06iY9al7Xt/3vxwITqu6uOTrdu2EYA2x7n9b32btV1LjHnXY?= =?us-ascii?Q?ergCND5gm6uBcfC0SbKWtR/DFZfFCrmbWYYEwvo2UUqPb8mAAHiBbQPyTFRG?= =?us-ascii?Q?saxB9ofA9cjvthOi4yfAohnqLXnceXdMyEfoPlL0rHSePJk99N8O553i5F98?= =?us-ascii?Q?g1uSTp8vz7yNKSSZaEYGF7gUbM0YdbRrBW2Rp366ghnNwHPNUE+zJJGkzfCM?= =?us-ascii?Q?vVPgehppzu4H/Y1JAPdtGlmjNUD6P44blV2VDOZliUn0tpBwfUc9UumAaNGS?= =?us-ascii?Q?5Hws7uu5/lgQ+UAR7Q1D6em+UYtFeQBTwhDHAqGKAKZQKeAIOajq4GNC2be9?= =?us-ascii?Q?dyWTVDIF0Mv6/5lNwKnIROAtgqq0Y94nlFGNA08hSD5hPHHrVTizweDevfey?= =?us-ascii?Q?lrUMzDRny9XVPeiCmX4P3+G3fuLlDnEXYeUAZ/JlXnsK5gu6gALh85nbPjZj?= =?us-ascii?Q?Q9TN8+9X4iY9SL1+Ol7AoKa9aciRA35sDZXOpUK6y0ay3txOqh53FfOIyIhK?= =?us-ascii?Q?YRvYncJ+NleF+9+NTwUvsfWTFFXj/dCdIECTxtTPqlTY6RbP2Z2i048VMS1n?= =?us-ascii?Q?7oikopfmvpKDdCGSEOmHuOkm5wgZBdRJWTIPFz0lgbDCkeLHhJ1dlqvNz6m2?= =?us-ascii?Q?UYFLyTAdeB1LlVlDkSNkF2xUZP8Ij9vFrkFK0Um33Zl6FKX7xk3qRt3L2bmG?= =?us-ascii?Q?XuKlKekr4TKdl7wZn34TCVLN4F5d//dO8OtUFUU4H7z7LbBWjFSq83yy0vWz?= =?us-ascii?Q?E=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB466; 6:w4XYMXdpKO4FI5FZvjdk+LKPlSKHQFKiAzOuJGa/30oC1entn07MXa4vETFmXRWbo1Sci6/iniIFt1BMe5JJwwqYSeCQoqyv6AhHsVeM0srBhm29gHWH177wEphJkBLNy0shkrhV1Ja32kWv9Q1P21xQJTUPHf6rHosIJ94WzZEQcVApxDJ7OYO731D2jIDxQSqElZhDbE6j6WQH4lj7WNreK5Cdv+MQQLZjLFgZK36BNGdOgJ8uKItmYo/ik3Z9cTsu0kbJeHmkAUjcIoKpJCo0a5zFRCTltW/hX8eXWsAkxgtksq6/NBCiybcdkJ2fuawnOiCNXrsZQKs5cXCpuifhRWFOzrw15ivZaV0mhjKeWwMupW8dQSdJbFDzzNrpK9TQukLLPQ53llBoQpYsKw==; 5:tvFgygZ5B6Utd03lJR589EvQq4gkdVhGKdKsLUFyLFrK6PLmBCHmDPp+9ImKtPsSbFrt+nNt3PmtsIo//slNc/VwMUoTXZU72ljn0a8MOOsGDlrgkvHbBuadZALav3soPrlZsReI4AAHhoAH1fzfqQ==; 24:vRBZxAvtmAWcuc3cmQYbtn03IV7Gwg1BVpOX4EnW0utfXVoTLfq5s/ZUxn3TLeZB5ktViXReEYsZMoqAA1pk/u9Cvw8eCdN6/iBd9TU7GkQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR07MB466; 7:fS++4NMqPphxXL2JGBTFKEfjq9TFq88I74EY/j9OXNgUclUfRM/bInwuozpz2C3zo1z/PRpxTJglb0imZ3SOGEoxvI8ab1RnMkwS3KGKU0xj7UvRpiJQ8L8+qySFBk9g+DiHxkQBkfsICSAbhISywPlpfwHLBv/Jl1O1cZ+V/289VJUem4ZHG16T6myoaNQ8EUpdZA2cKyB4vrlp/Ws7LYlHhgz+wkMVUAG2fHqewg+RsZbOtcXgkSMMJQpEBZtxfDg4vg6zC2BYL8YSvdxybC5A3rOVaIg68OKIyANR1Oo/128SeTGjzP2QCSvUo58h5YPEWfgtWJ9tpeuBSQXCFg== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2017 16:49:10.1681 (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: BLUPR07MB466 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 From: Quinn Tran Normally, ABTS is sent to Target Core as Task MGMT command. In the case of error, qla2xxx needs to send response, hardware_lock is required to prevent request queue corruption. Cc: Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_target.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index a463bcc57902..a78c3e9bcb57 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -130,6 +130,9 @@ static void qlt_send_term_imm_notif(struct scsi_qla_host *vha, static struct fc_port *qlt_create_sess(struct scsi_qla_host *vha, fc_port_t *fcport, bool local); void qlt_unreg_sess(struct fc_port *sess); +static void qlt_24xx_handle_abts(struct scsi_qla_host *, + struct abts_recv_from_24xx *); + /* * Global Variables */ @@ -389,6 +392,8 @@ static bool qlt_24xx_atio_pkt_all_vps(struct scsi_qla_host *vha, (struct abts_recv_from_24xx *)atio; struct scsi_qla_host *host = qlt_find_host_by_vp_idx(vha, entry->vp_index); + unsigned long flags; + if (unlikely(!host)) { ql_dbg(ql_dbg_tgt, vha, 0xffff, "qla_target(%d): Response pkt (ABTS_RECV_24XX) " @@ -396,9 +401,12 @@ static bool qlt_24xx_atio_pkt_all_vps(struct scsi_qla_host *vha, vha->vp_idx, entry->vp_index); break; } - qlt_response_pkt(host, (response_t *)atio); + if (!ha_locked) + spin_lock_irqsave(&host->hw->hardware_lock, flags); + qlt_24xx_handle_abts(host, (struct abts_recv_from_24xx *)atio); + if (!ha_locked) + spin_unlock_irqrestore(&host->hw->hardware_lock, flags); break; - } /* case PUREX_IOCB_TYPE: ql2xmvasynctoatio */