From patchwork Sun Dec 18 09:02:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9479247 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 5319160237 for ; Sun, 18 Dec 2016 09:17:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2F0832843D for ; Sun, 18 Dec 2016 09:17:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 11469284A7; Sun, 18 Dec 2016 09:17:54 +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 532162843D for ; Sun, 18 Dec 2016 09:17:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755462AbcLRJRv (ORCPT ); Sun, 18 Dec 2016 04:17:51 -0500 Received: from mail-dm3nam03on0059.outbound.protection.outlook.com ([104.47.41.59]:58688 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752857AbcLRJRu (ORCPT ); Sun, 18 Dec 2016 04:17:50 -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=iaU0RCSfHV88cOI8ejIkhatpqkSJ9rqJP1n9n+yyl3A=; b=A8FgrzcOF1G3llsx3IeTlyKwygfYLAluGJlA6OcsWyJm52Sb4IAenULRqvykgw0XgiUvGitvColvC7J8YEGXVbph3TR6B5aVe6D+XGoZN7shzRfuLUs+Bh+VRE2yVJ0K3WH2qC4invwXaCNA2Ht7RvjsTviTgaGc24Vx2z+uF2Q= Received: from MWHPR07CA0038.namprd07.prod.outlook.com (10.169.230.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.789.14; Sun, 18 Dec 2016 09:03:29 +0000 Received: from BN1BFFO11FD038.protection.gbl (2a01:111:f400:7c10::1:171) by MWHPR07CA0038.outlook.office365.com (2603:10b6:300:1c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via Frontend Transport; Sun, 18 Dec 2016 09:03:28 +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 BN1BFFO11FD038.mail.protection.outlook.com (10.58.144.101) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.789.10 via Frontend Transport; Sun, 18 Dec 2016 09:03:27 +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; Sun, 18 Dec 2016 01:03:18 -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 uBI934eW022974; Sun, 18 Dec 2016 01:03:04 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uBI934pm022973; Sun, 18 Dec 2016 01:03:04 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH 1/9] qla2xxx: Move cmd search out of qla during ABTS Date: Sun, 18 Dec 2016 01:02:41 -0800 Message-ID: <1482051769-22941-2-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1482051769-22941-1-git-send-email-himanshu.madhani@cavium.com> References: <1482051769-22941-1-git-send-email-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)(7916002)(39450400003)(2980300002)(428002)(199003)(189002)(86362001)(69596002)(5660300001)(8676002)(356003)(36756003)(38730400001)(6666003)(2950100002)(8936002)(305945005)(2201001)(626004)(4720700003)(50226002)(81166006)(81156014)(39060400001)(106466001)(92566002)(48376002)(50466002)(80596001)(33646002)(5003940100001)(101416001)(47776003)(105586002)(5001770100001)(189998001)(4326007)(42186005)(2906002)(76176999)(50986999)(107886002)(4001430100002)(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; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD038; 1:4/k5uyDde9TJadmhaK8TU8ZEKZj3yGJGoN2JNmF+tEKY8NQdhqb92PYBkSf7XGX3K5QZOTuhLraieMfLzviIh3Gwk1KiZQ6XfLgPrOtya/3zfJd2vyGsXEoOEzeghrCGl898GvVUpMMQW7QJzYfU/8ddywZVoLOU7O3yo7IUiTb/ySz6u/OJH3H470VtOoBlWo6V2N4gs2kds40LRIfKwNRG+/t6hW/JiATOOwPKdn0pfCAdowSIexm4/Sv/PUjTgSVVvUbdrshwKEtKtkHLmNPOH9wGc6iOf3iv4tZdrr5gBHZCuHcmxBlMBsLddTHP/ck0p1n4bBzgxiY1K5HWT8iXzi3jRJtSYUb3Jcubvvu1PKM1smvQO1n+jsko7+O0r98dpUXIAJGsd6r59+P/EQLLHheG2NwR+SsCdYkkZA+a5AomoHrILNuhI9qtvqzvHRKfC6dNzuMYN60Zx3ci2HQTwrHB49ylaCYJ5mZjGL9vKWdWFPFLgnEKXxJQpHjNkBqTsBHBznMoTy1ltG5zVsp8kfU6nLXQ2sR8VXbEPfKr6oCMXPruEkKiPEnz8RkS X-MS-Office365-Filtering-Correlation-Id: a3e44d32-e5d2-4a36-9282-08d42724bb5e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:SN1PR0701MB2096; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 3:B66ZA8Wn2/9/ApH4I2lHUuDkNNJHpiQdueW2+km+4w2q/Ukj5ZbN7EZ80VZ9X+wlPSG/c7ojABDBYqBKh77A1Y94QnM5JL5iadTt2x3vEAkqs9qkl25uQG+YFpAcF+s4Dg38TdDjpy91ZWNf41IYGEOqc/55ZkDYapLeXuXP29xkKFRfD0tkPsxKK8MKj82+8iYpoeu8AaSxr74DBQwHatToHb8hXuirmff61jDx1xP6atN2s0t5F8m2jHhOYuoJ+TeaF/g03GW98S3vyNE1pfdoKwTVU/WhQSxfOcQ8KIGDqwtSC1ZVG1LKmfi33LgfkZ0jkEeccJXg+f2NPHJIfXWjLmJF52DgMFiWsKejj3qKHfcs70leB0yfWXmnoIY1; 25:b/KgaEaPi+CnXE1gz1gKB9GDXOWBiepAesJGGfLMQsj6GelTODTgMePEY8X7j3QibrinUhoj4GuJSDjPhgHQOgXNPGMLZSTxl/kJBlwB2EENueH3PBxlC50KUi6gQRdzuZXK+RvpTgEgm76ePJ1vDVBg+AaXSCA33ZPrzpIiHHrsV7S3B6u4LIs7MPhjaYERKmEoNVdiFg+2qMYsQdt/x8TgJwuquzfKTUTg4dwffQdWSC9KSkJnnl7h0x+uiPuYKAaLgxhDA4SKw3P2WJUzqkp4FYQ1rXVugft7nLVBHKDXS0p5gB6Els2lE0RHkUJFWlGzfeU/JJxwIyChVrNPW8dORtVd97uyIj6t0V7CZ48WTC02bPf62jhUZ2kuOSLTif0VUzS21mCZJCvYBPlhdp85MK5PrywgoRQWudE1ynk2qeU0YeM703IG9QwyW4EloK6h8pDbw1gslhHEdKFIQw== X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 31:/u/29bmeUURcNuQhneUXyV1FEkuDCf5eOItLr18Zc2NmdBP5rLzX3/9TN0532gGBJUYMgoSijT3eK6xVuiQsp1GQ8hKkga1gXPiVEa3ECpcAEVtKacMZhav//P1/wj8jVA7YnQDzyTTmiq8RInbVh9QQo/yZ5C27MrNJ3JatG5NiupmIBP/Bhn5W01Hsb/T3rfZyoeRUDH8bsCYVMwWs/gF3zRmxYggeYoYe5WEYB3u9zkHkHhx7xmhnMrnPBIOR/rluU/19zjQ9yi2kfOhJzKJ0RXSB32grsdSXxL85/R4=; 20:rY3CdAeEfJASnIQdNxkKDRBRt4Q4Gi5FbexX1vu77rUwpwhVTGquyXr7XP9UWsCNEVZ6PeuLS0+oqEbKks+mzkN/RmE3YIWid7QbtlG7KsDjVMY3r4JaRTYRLdfP+ZCvsvmua/ueilE5rHDhB1Cj3aGn3w3ZlFPIEJcAeFDzAOzXTCWO07MGNqJNqDZU4ZbJ6hzNvpG1lMzr8CxOkzcBiVgwEn2z2dQqssR+XEDY3mPsVg5B0Ff4Qku6DT9M5BzCIwDeUrkWQp30Q5szawtjsF4TjHwuYKKBxHd4tnYQ7GTqjc9N6PR8DnuakQoZ0w9CANBywRD7HhUHxlo0FBqH0FU6ngwDd9YlWpZXJvaSCEfJPo79SP3O9dWVOJ0HUTh40AGca/v4Bt7vyeZJxAL9xdRWu1KEyiT7ieZ/jBMfktyZ1hFRlL5KlvZ5FChFJoZXJMdPGSK379t4xyNNgk5mgFeIxg6Woh+RyCB18BAV+R0l1psRCKki6W/sMjuGPTsl X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13015025)(13024025)(13023025)(13017025)(5005006)(8121501046)(13018025)(10201501046)(3002001)(6041248)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(6072148); SRVR:SN1PR0701MB2096; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0701MB2096; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 4:4e3KvNLwkEbYPX9aRCGpKFsYgf7TOkqDe7YQMlWeBKXdCpEPhbEAr5LDxPEqETd97siXmWVnO4g6ZrMHLWuu0TIx3UULzjfWowuuEZPr85H9Yypf7ZsxtbNxLOH6Vupmaj5yWph7BEavpykrky9BR8pejAKRF+fKNg4yrl1g42JhWnPUU9VFdHkjuTitD8zomsv5iJCDXd8uMwE4s39TAR5hGLfxF3j0ykDesHGfwZD1UdrFcXrtLF4MCf7phh14OmF9/tfBuP+2BY4Dc9wl/vKwrlu9+6IswNlm6545UFQvspdoeLbKHERalNHMiPnCExIbLXWsaQ6ncYbW86mPyuI66YkAshfwnuO1ENw8H/tM0RtJM9BIlNBTR0ianupTip29vXyKhxF219hh72vxdfYxBHFJaLKr/Bth7HeSEO/c0ke05A9fnfsYn6nZ65oSvi3FxHNaOGlXpEvlcvBDFje33WOLQRX6C+IuCSKDNuPttwkZyRFh2Z/9kT7125CaaxIFMjziDOGDU9fmNhPVwpsc7+ZW3lwNxrEr+Z+ZeL88VuSYHnjBusRtrBIV83FCh437tStT0h/vsT23+uRskNgny18bOiY3+005JabQSu3uuBSUkgFuEDvygtrNuT5WDeNzJUnVwrg/yOtk3O5LiqzPmd7CXPIufNG8fQAYgvE= X-Forefront-PRVS: 01604FB62B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0701MB2096; 23:C2HXMl7f1mo8T9hSsNs/LTlphU+SXaGKEWtsYBr?= =?us-ascii?Q?7xxh640wXF7zDnEqxKnK/vCJAvT8sMwBghxf+56zdVkdIwvpJ6KPSdys11wB?= =?us-ascii?Q?ryYesYwuDOLlTlYIMqVf8or60nByViXQG/gBslUbSC3ktFA3E1HzXxAYt9B8?= =?us-ascii?Q?yFizrigSlSdnMA2Ixbumjer9I9ewDaT7sz9HXP5vk0SYhicUxZQragdvm8Dw?= =?us-ascii?Q?DUJLRzI/hlqwcRLjM9QD2rjGPdlqzOixS6FZzAqv4Q1YenzMnRrdh3m/v258?= =?us-ascii?Q?pBjyHP+kmhE3OyiE6S7zzzxlQpHaY1pfFNXTqLraqGhjWnNWo2cUjpsVjT3B?= =?us-ascii?Q?agUvcLC3Bq946hHt/Z6Mk/A6XpNOFiXX899QCfj9FcFYo3Lp5PgzaZn+G4oH?= =?us-ascii?Q?TY2OcWAUCybGxSId9QqMBuLHmYRXx0WEprcxs3L/x2VO5m5t2Eitgb59nEEa?= =?us-ascii?Q?gOwWDIpMelHH2FmxPX+PQ7wrROxzEgoEYUsR291XfKcY5FHFEXLXYREbTV5/?= =?us-ascii?Q?F6/AP3LkVI6m8yuegODlLoBb3LFYBFbpLGoMji2WVloZdhUr0SdTJiu+48LB?= =?us-ascii?Q?PGSKmQv8Egq5cwIslQI3r/o/DsFxbS1a8uSwPKpW4ZIMyku+E6exFLmP2mTB?= =?us-ascii?Q?moaY7tNEmjQh4GofmeNotb1SyUc49K/sjDBAE5ncGbVc/lDDvlNfR1JG+aWL?= =?us-ascii?Q?Azvd+NAcNaMZYrJUnpQnWumfj3bve3RP2gzBYDRuIqTyQnY1wW85Bko5EXHN?= =?us-ascii?Q?CZNq8T7/aPMi+322ATfbGefHDZ7/0FpBWhV0/oAa1gE2gaEcEoPJVlGjPPfV?= =?us-ascii?Q?PkZPs4Th6rUHiQ3SjqMIZRPu7BBwNF8eMXiEynUm6AaNfI0i4uV6FaXexWDJ?= =?us-ascii?Q?YtZS9WOQ1SbRShLOrO5T96jDHsMO6VbdHv6L8t1AmiV+onzA/C3CQuJ1RXuD?= =?us-ascii?Q?h/cb4fMCY+w+i2O1JocjvSbdabWwoI5Md6/Pl6tNB9XxwbVpVpZF5gd49SHC?= =?us-ascii?Q?TKK1n+IvayL+bIvRxlRa3s/Iz1qfMdmbhQuspjKjJ9G6D19lFcEl6d88vnTc?= =?us-ascii?Q?FQqTVdVHuwhbmt+xvdkLVqivt+MLzuj+HHq1WxXYtCqRCtAtESRODrhhf4Du?= =?us-ascii?Q?qnAcAt0a5dVM=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 6:NLhjaS9t7XefpooxXT1XeeD0kHKLjuuky+6huLIJbW/DBFfcWPS9NpduxNdHbh0BA6UEcqQaL7hzUC0XUqHthszuSekPz9ToWHcfHtPUDErr6QSWOGrmlTgGJZ0tHBySPcEYA7/q4i7ujlbJEGfnnYAASeePiCOq/FvJ+nB1zfxH4THFnS8YzrlyldyDDoYSCtVJRw3KhYRIp4UmJqbbI+61MAAVryN54JAzhfbtpdFtw/Xvrt1fVUJ+FfvnO24bz/XcliTINkKlvA44tD+0eVSnuXItaATq0cDuvQy3YzE6muno7jGWtYLQTo8OIYQB/jqh3SJudLFvWBRxEj9pVFmJfWt4WfLtPuK72fsCp3c2++zD4SVqErUle42AgT3suM7WoJeQbAi9yczI6720ZzpUIMutq5lnBrkNOy11Z0s=; 5:lPU07OEO+MkWYi7Zje+ExiAgbd6jTZcv5Ji/lJULuBhKR/o2DX9enIaAVq/ScZ1h/d41eP4NBuJhDc+IWpuuO691YZfJ6Gm2HS1cSDDcObdbxCdGrlR7OGhhNcXKWX2YCkMRuRF9iuyKJbfSfhjRAg==; 24:DC+ZuQxRhgzMfnxGHiKDfw3QrimDC1+Z4lVTpWtSXFujLzbJdZdifp3LT6r2SANcF2nTseixzORs7s2ZobTWQDQxbXrqwNCfKsyy5XSabDc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0701MB2096; 7:OtQqR+yz9I5IgP701awdCUyxHOGFdgsXPDdMpXFd53Muf2Dmx1Sf0yi0FcDsUBR2LLubj5Ci7xPEC6OtMbKZ1RthV+FVX85vvtBssoun8B7n9sygIJioPiRFV1Kpqh14QFhquNdDgXgoTloxpnwlT6GgvvGY7avov/oRBUAhCIFV4+MTYR3LU+hoytsjzNVsx4buGyz526AX0sAvfdYnhdrMLjjnE7KGdIuBzwmS5+aHtwGSzA5JmkFRhXIibp4bwieFUNh3doBSWla9BGZqD+xqGifg5kEb9jlhwx2kKbmHrWxQlA7fBapIH/yA85g/QOOscHikpZm7RPXTCSFWhdYdjv3yWAtKm+Pm5KungmFIGPmksHSArlolIptnJc4AMh+iOxKLHKDUDWLKM8oincejrT8j9tOFGPxFRpCpoIhwVrIB06kXEG4uV8iriZugjQEEZHJSglGwfKbrtFA71Q== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2016 09:03:27.8337 (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 From: Quinn Tran move cmd search out of qla to remove symbol dependency. The command list is held in se_session struct. This knowledege should be in tcm_qla2xxx. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_target.c | 45 +++++++++++--------------------------- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 24 ++++++++++++++++++++ 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index bff9689..9b92a74 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -1549,38 +1549,8 @@ static int __qlt_24xx_handle_abts(struct scsi_qla_host *vha, struct abts_recv_from_24xx *abts, struct qla_tgt_sess *sess) { struct qla_hw_data *ha = vha->hw; - struct se_session *se_sess = sess->se_sess; struct qla_tgt_mgmt_cmd *mcmd; - struct se_cmd *se_cmd; - u32 lun = 0; int rc; - bool found_lun = false; - - spin_lock(&se_sess->sess_cmd_lock); - list_for_each_entry(se_cmd, &se_sess->sess_cmd_list, se_cmd_list) { - struct qla_tgt_cmd *cmd = - container_of(se_cmd, struct qla_tgt_cmd, se_cmd); - if (se_cmd->tag == abts->exchange_addr_to_abort) { - lun = cmd->unpacked_lun; - found_lun = true; - break; - } - } - spin_unlock(&se_sess->sess_cmd_lock); - - /* cmd not in LIO lists, look in qla list */ - if (!found_lun) { - if (abort_cmd_for_tag(vha, abts->exchange_addr_to_abort)) { - /* send TASK_ABORT response immediately */ - qlt_24xx_send_abts_resp(vha, abts, FCP_TMF_CMPL, false); - return 0; - } else { - ql_dbg(ql_dbg_tgt_mgt, vha, 0xf081, - "unable to find cmd in driver or LIO for tag 0x%x\n", - abts->exchange_addr_to_abort); - return -ENOENT; - } - } ql_dbg(ql_dbg_tgt_mgt, vha, 0xf00f, "qla_target(%d): task abort (tag=%d)\n", @@ -1599,14 +1569,25 @@ static int __qlt_24xx_handle_abts(struct scsi_qla_host *vha, memcpy(&mcmd->orig_iocb.abts, abts, sizeof(mcmd->orig_iocb.abts)); mcmd->reset_count = vha->hw->chip_reset; - rc = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, TMR_ABORT_TASK, + /* handle_tmr will search for LUN id based on exchange addr*/ + rc = ha->tgt.tgt_ops->handle_tmr(mcmd, 0, TMR_ABORT_TASK, abts->exchange_addr_to_abort); if (rc != 0) { ql_dbg(ql_dbg_tgt_mgt, vha, 0xf052, "qla_target(%d): tgt_ops->handle_tmr()" " failed: %d", vha->vp_idx, rc); mempool_free(mcmd, qla_tgt_mgmt_cmd_mempool); - return -EFAULT; + + if (abort_cmd_for_tag(vha, abts->exchange_addr_to_abort)) { + /* send TASK_ABORT response immediately */ + qlt_24xx_send_abts_resp(vha, abts, FCP_TMF_CMPL, false); + return 0; + } else { + ql_dbg(ql_dbg_tgt_mgt, vha, 0xf081, + "unable to find cmd in driver or LIO for tag 0x%x\n", + abts->exchange_addr_to_abort); + return -ENOENT; + } } return 0; diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c index 6643f6f..9275f36 100644 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -567,6 +567,30 @@ static int tcm_qla2xxx_handle_tmr(struct qla_tgt_mgmt_cmd *mcmd, uint32_t lun, { struct qla_tgt_sess *sess = mcmd->sess; struct se_cmd *se_cmd = &mcmd->se_cmd; + struct se_session *se_sess = sess->se_sess; + bool found_lun = false; + + switch (tmr_func) { + case TMR_ABORT_TASK: + spin_lock(&se_sess->sess_cmd_lock); + list_for_each_entry(se_cmd, &se_sess->sess_cmd_list, se_cmd_list) { + struct qla_tgt_cmd *cmd = + container_of(se_cmd, struct qla_tgt_cmd, se_cmd); + struct abts_recv_from_24xx *abts = &mcmd->orig_iocb.abts; + + if (se_cmd->tag == abts->exchange_addr_to_abort) { + lun = cmd->unpacked_lun; + found_lun = true; + break; + } + } + spin_unlock(&se_sess->sess_cmd_lock); + if (!found_lun) + return -ENOBUFS; + break; + default: + break; + } return target_submit_tmr(se_cmd, sess->se_sess, NULL, lun, mcmd, tmr_func, GFP_ATOMIC, tag, TARGET_SCF_ACK_KREF);