From patchwork Wed Jan 18 23:19:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9524945 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 352A66043A for ; Wed, 18 Jan 2017 23:20:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 27FE828633 for ; Wed, 18 Jan 2017 23:20:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1CDBC2863E; Wed, 18 Jan 2017 23:20:30 +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 6A29028633 for ; Wed, 18 Jan 2017 23:20:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751433AbdARXU1 (ORCPT ); Wed, 18 Jan 2017 18:20:27 -0500 Received: from mail-bl2nam02on0061.outbound.protection.outlook.com ([104.47.38.61]:14429 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751124AbdARXUX (ORCPT ); Wed, 18 Jan 2017 18:20:23 -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=HgNBvachcJLzSqAKgv4RlegMK2tpPFjzUfEEb6tSYZw=; b=Cgf05aFzdSFqfZ2iHxcsWJBA3euSNcf4JIy55oUpxX8DS4qIrYmEeUor4r+gxBaOW9SOrkHjIQWrZxdqkLoWdiVnwm7DLj8igSWRIDUhpo2WsiN80Fhq7nR6zoHGb62mWYU/xPg2jrmxQkh5esFpYd3BtpIz46uA3wEQO110P2g= Received: from BN6PR07CA0027.namprd07.prod.outlook.com (10.172.104.13) by BY2PR07MB203.namprd07.prod.outlook.com (10.242.46.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Wed, 18 Jan 2017 23:20:21 +0000 Received: from BN1BFFO11FD009.protection.gbl (2a01:111:f400:7c10::1:126) by BN6PR07CA0027.outlook.office365.com (2603:10b6:404:a3::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13 via Frontend Transport; Wed, 18 Jan 2017 23:20:21 +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 BN1BFFO11FD009.mail.protection.outlook.com (10.58.144.72) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.803.8 via Frontend Transport; Wed, 18 Jan 2017 23:20:20 +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, 18 Jan 2017 15:20:14 -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 v0INK0hd027289; Wed, 18 Jan 2017 15:20:00 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v0INK0lb027288; Wed, 18 Jan 2017 15:20:00 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH v3 02/12] qla2xxx: Cleanup TMF code translation from qla_target. Date: Wed, 18 Jan 2017 15:19:35 -0800 Message-ID: <1484781585-27252-3-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1484781585-27252-1-git-send-email-himanshu.madhani@cavium.com> References: <1484781585-27252-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)(8676002)(86362001)(2201001)(101416001)(5660300001)(4326007)(39060400001)(107886002)(4001430100002)(8936002)(36756003)(47776003)(5003940100001)(626004)(356003)(92566002)(80596001)(48376002)(189998001)(69596002)(106466001)(33646002)(5001770100001)(50226002)(6666003)(105586002)(38730400001)(42186005)(305945005)(2950100002)(81156014)(50986999)(4720700003)(76176999)(54906002)(2906002)(81166006)(50466002)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR07MB203; 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; BN1BFFO11FD009; 1:WBBZX/JOi5c/HhiJ6nMtF/Xx7l+2tFKLnufPqj5ya8IZT/NTwolEKMUnMa0dz0B+yy33TundK4ws8L2aLz0kbeZAUQZBVRwHrIVCQCqhVKjvfc5z0q3/Dm4rP74bI34W7SaX/ufYdt5nPu+buadsRNTrmZYDUd1er0O0/o9H7bjgt5JITyUAj6UR2D7DA+2mHg9wCRSRA8UzuXsbIFl7xWBXzcPIbv/RkjYFKvBlqopnL/igW/Hyo6wlimM2W8b7bJ4Df+DfR7/j2eOYQCjrnIOZHB4eAsCMDLsqdJydoEqW4HOZmIs0RzJY4IhI0J3w+X+jLzdV4dvOmhs5hwvvOB+mTbwyfTDV+Du5+A6c0XC1i6/nHTX1/p8/RZX9EfSme50k6YXI2rpOgm7OYdiWvd0ojTlUh5Ub3ag7EwnALmtShy7At96GyEwLPR6qgp1q3rkh83QTPxg85YK35yZMeKKOS5p68QpQhV2cNGbTQ8vaRLxpKtvyrqrwAS1//VhcOpnm7PwCuRJdRsGGmxVT7Q== X-MS-Office365-Filtering-Correlation-Id: 80d35234-d0ee-4ffb-c6f7-08d43ff89256 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY2PR07MB203; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB203; 3:QnEMr3xSv9oS8SvKbilG9UHqvmhf1+CaJZa7YSQG0SdUJXAwX86EaqACcjZH54ztaPBaGKiH/cjJqyrN0hQ9s4hf1WbQCOH1KX4OBfxPONv9SMHNzxqH/Ib7g88SyPz0h+drOrr0DFwnX1x+UTazedGvO9Y4qpkl5s0IdQM+SBavyTqva6Z7lXekXrSGw/VrYgP5WaOrm8IXSjqpo14PynWCR1mCx/G/fX2StIyaH5rr3piNYP9JNg82S1+TV8mFhzZ6SNYkwvtNlGfgozzZx/7a+yGX3n0vxplLjmtRNUsgYSbKAQPvDepdZ4Lyi7DpdNE7fEIXw6Phtnm67ghbRAVfcrPWqfMZGbLMosWOEV7UOoIr2iVQQ6W9S1yrigOz; 25:KnIbN7QBaTu/MUKFCd682QPpauDU+DSK9YqDO75wIJAh2MFYWRxpiD7nteD7FJb2gMCmgHDxbKIMFF7jfrjmqKQtxpWRFq+/IGdtDzbS1mGByoEEIJ0/c3cuUNT6czVvaWe/+oJu1VMA8nG2o7+XTADapB5F+sIRcsyvVKNCtfYgxxJbEpqSc/4u+S+N5Mp6aY8pblrwsbTw+/UFDYTMsz58TDyGtLjDbDg/Rd4Nn1Hb/NKmi685hUMgJRHvDxAzJrqGHXO7T/e+mhDG6mq193Qg1qmzZtpM5psJjuP1nJHcBCgN0oeI2R0fMPNSpim4xxjAAwUVOuElHJR8bZYBAjGrmazF5lLcrsixdy5nUMeWPondrYm4Ar/YW/ClwAu4eRwfgTARfYam6xibxsWLoppE3G1vAxzxBgArzHU65GTgPnlCyoOowttMVCT6yE2IKV6XGWVPQkLFL8rBZaMf3Q== X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB203; 31:QW5tMFDyN2j6ylsDOVeQo/xEmKac74YtYDnpY/TLqdYANczBxBombItu2ap9SEXA/6qfifz/0TT0IH52M6kdCr8+Z4ETn5yij5eZHdd5fub6C2i9aIPhfkevmNA+M6gSG1un92QpoRfhqP81Nwz0kUKUOMx2J9AsVmWyxQdpxHFYCLbsuoaPZVyzBKMZCkIO+snzRJmkE6WY8JrDt92Yn8a8nAetkH37F2mDP8832MrtesHl2k+h3kxtgdC7mxu2SqEO8pmrVnnoqrVtYAc8OQ==; 20:2I/3IrGWAPyjkhRlxFM4N9eipIJDq4T09aST/m7Ph/UkRzafS2vshBC4JrRxoHOQItX8WQLWJ4H96GdDl4XB1JMARNN8RTOikN0vT9HMmGpikU/RSEAIbqnLX7ezB+fH2wka6uI9Wxxn/Ne/xJx/6u4aW7pgp9Ck/DKtk/KFZaP2pZPwn/d6TH0COtO33G21XoGH9vuIfsiOkFGpmPF9tu+tcugVVBgsLX9ZJ3JAzWpBdFGtNDyMR+ku8ThE8LH30lTYqvO53zrcQpzF3+HbPfhIxap2aafy28xIGMgIb6p/quHh/EfEqaPXV18AqOta5Qj4OmJxQmv7kzfGblSjQv3orMOPpNmX/U9HipTkCch7Jd8FbaCPxI3E8RWtmEN3J8PDhWbsLvpphBJaeICKJrQvy3hBbi0ih3Pl2iBEGi/T+I+HrmpdbLJ8qiSRD/AOmwV45eAtbyNlOuP+VaCTrrtdj9uvR6Rtbk8NVQZEGweG1I5Vje1ii1NJafoEkVtp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13023025)(13015025)(13017025)(13018025)(13024025)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148); SRVR:BY2PR07MB203; BCL:0; PCL:0; RULEID:; SRVR:BY2PR07MB203; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB203; 4:15LehBpNuT8Xd547rtswX/HKZYOa0LwLuYGFj5XxJKwW3XgGyhgJRw9E4Y8ROqxZZeXUTJNMaztu1q+8bysey29dBusm5ZLiLTNQluLZfh9IgxxXknsgZSuLdzfDjNMqRaCMyvrurpoRWX5pFY5Ip8ytF58I9R+TRW3YJ5lypwfxWPVPuNyT0Vd7Hqb8kAh+RRrzcuexcbRN4Ho0gxj/5zmI9dzgy6Uyivyss/lzvdgHMxciDAmqudfnGR0IfIQJ3MA6b1ikaW9S5uNYkCkTmAEWAAfFI2ov21Nb4ROYzNTXL4UmMC+A56qJOrhlYrc/AkJc5Ord028pZ59MaKDNUfB5Yxd/hW2RzPAYHjDSW2RSalit8cIlSNH3Q5uJCjCVwG+TUkViXe+eXTB6m3LQkgCyT2HxsokpbHf+CWMwsffw4syQBMdH3h/ToxbhZy3IvYrI48Q3WY4v3HDnr79d5qkj5/xClSjRJNLocHaIX39SdXx7+PnuTms2AgkZefphvPcrx7JbYNBvGSID0y7iyPXCV6otAtzVlQTiQIzhJNlcn1qvyUAjy9rU5302H2IplkCvCa5lO5yTMEda/gXPC0Vlyo3phgmhtssqvrU4xz/9r0CGEH69ECLt9A1y2u8CttHpDTC88w6vU2pX9cYqlQ6grQwARMOzhmKJ7g2CJrM= X-Forefront-PRVS: 01917B1794 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR07MB203; 23:9bU7XQ4OnJ38SKNEHzvpNJ7qQO1FUSGI7YejrL/P0h?= =?us-ascii?Q?GkmR4kh5neXD9IfXsY1qF+jyI6yuYjZiiHl/oY4eGX1LVGpTtuGD4+pDCQNX?= =?us-ascii?Q?kN6adeLNiP+B986TEriHdPDevrkgmirC9hUJnVIfh7HXFiPe431ULPcK6IOz?= =?us-ascii?Q?lsOUxkM/KY4K9uXouRQqWlO6sy8tvIpMrhUZfJCcXdw8WtLSr253LX/qCaKn?= =?us-ascii?Q?TONQf6Uon0wUJHvVfIDIW5WJ6wyhN4sm2uQCKDbMCakrbfjpHxfJJl1Xfvon?= =?us-ascii?Q?8RfQsun59iOf3zBf7K9SSLaF0fs583CPQ6VYMUicipbvRuHiS8TVk0UfXISX?= =?us-ascii?Q?ndp3ziW1SiW53uaRlptj9w6UxiPIblji9gNQe15pm0hBJ/JHHD1hclUHI0U+?= =?us-ascii?Q?vcFpJtuKeWMgElKq2WIuaCmaxqQgyt030y+k80AeZyf9TSkRjMr/ySNeiTjL?= =?us-ascii?Q?Dwb5tmOHluCvkXnBvvWGfkXBgFOLRXVtJycVEwY+K3n0XwzKis3M/FtClOuP?= =?us-ascii?Q?yykzGGApKW/r22WNpkMtZOm4sCrOvLeLRJwjYjNhsaeuckI1djof2YzzGGrr?= =?us-ascii?Q?Uy6dzAThodZIhND4BCzAHSDmp8QUehnwW4BOjJYBlKQD0jC7Y8nhqhPJcu6U?= =?us-ascii?Q?BaPKWqVdeSK6dAcBHX1HqW2C9fs/0st9vp/PS2whvCf+x4WddHw10ZZHLv8U?= =?us-ascii?Q?VF1cMQoaQEUwO+NvRLDeTx4+Jw93gr1Fat7ueFgjZzvyo/roJGc7kTmq1sl9?= =?us-ascii?Q?ezdc8nHzYENIRHUaEyBw7k3ZQAcCATlTGjz+NrsgdxIkvdHVirJEkOJLDMD5?= =?us-ascii?Q?6S8ZZZl6KZxPcO3/Hn139rm7Cz1lXFuzqceeFHSp1B6SiGDiYixOq1SGIgRB?= =?us-ascii?Q?Y/xv7ofpZVeJGaJSFCeVHVzY3RPmgL9k2U4+CX4s5OQGO7YI0I/tzilzh1EP?= =?us-ascii?Q?zFNlAnzq4ALXmBqGyltqQzJCUmV2dv62MoDpe/JxDjBUNHTdTagyKaooRSuP?= =?us-ascii?Q?v9QJYimnVbex4rvlJHBknUqCE1ufU/DySiUeAVEUdtjoEqeAKKpd6Tqj13AW?= =?us-ascii?Q?0TsimfLErrSGI7t8c5zh+DOqMMxAm5XBOItWIUwLk51tgpe6kHGAX7KFPUMT?= =?us-ascii?Q?5ctMmUJwa2lr4BHriwd8R2zPj7F/gF?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB203; 6:+dz1UoN6cv8QlOw/wmX4/YG9AHaQxIr4OUSZ2NT7YSj0D/5a711+2DfiW3RzeiIfD8HSqgtzmGTG4lyKjFi6M4IOGvtbsM5tjwDdDJKt7SHhNtzFehL8kfGp5abW0m45o4bRECix6k0j+vpqAlKpx1a7BEYHJF1lRqtcNm6baNjpM8sOjNv7G2ZMkkmqY36ZUIE+K0QscRL+5zvSOLs0ouBg0OMyWkH8c2Vr9BGrWherou+6pSq97tB/7Uq/WT72PQAXcjAvc1sxeLT7gZfXyHA7YXwDT2jo3184TJ37oOmSTZ7oq17s0lePhuDBNR1o6Y/8dssP0j6fOHWUxMG99KUa0gOfE9/ELb+dpUzxhtdETUEl81OBcGYgUU9uC4S+b6Ltb6FOq7A6pUQD3Lzltp90zFKeQ2rAOCRkq0DoNSw=; 5:vuRAXDauXvhCOqZ8+YM+NEuT4U9bMQSPaT8Dxm1jxtKL71UBvtqidDEhQ3szefPhrSmksSWtGXCjHUC/gVfRrxqKdBDXHvu5o5vt4rpcZH4v2cBeXIkcybUtym8Zxm5KGEbFa82Su2T4yUJqGMNCvzR8RbmawNVsTmWon+GE2Xs=; 24:s7mZ1RR383CYVuBi0tLMKYsSAbvlhx7tZF+966dY999gv1aNHPiN83m5OvLiat4jOuZNqKD0f7Rlev5GUcbrYgmISq8i+sOFY+DIig0GSos= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB203; 7:990lEUPV6sgvqlV076v6vRloBnFaP/HVCDhieMmRfRHSfWUmej9VxjI7X4uvhc1qfw3jEPAraTRMxICEPiw30drgQKBb8g6Gdn3shqFz59SUbVCSnGEBxfXTi/YGUZngp6s2IfUgeNR1rYVQRXnJL/c/3dZuCBJWl0zItmienJWdZmsHs+KqbRqNR2JjJm14S1x8KwX2h6ImpEFmr9vXaOh0Cpaf5gQNTiH+vqNVvGNR8Kcmxg66sm9LU1S0yUGpbP2FEZKlTNEGWqHsAKbSXqjwNVIvf+8OSvnnlpDsi+XkLzjjsvTME3S5CxuSvi6EL7lxmyftL8o0ZuRhdbTpkgFUOvf4MOgzN3mB57jz1/4V2QoYGVO3GbAhUf79WGrGdnJy/Bocn15i4sb8gH3x6tk6EwgK/yq1gWSwx+fUCELHweoX9qdxbZAD4dDsCIxlOftJSyQ4nVCT6MmBz/SRPA== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 23:20:20.2250 (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: BY2PR07MB203 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 code code which converts Task Mgmt Command flags for ATIO to TCM #defines, from qla2xxx driver to tcm_qla2xxx driver. Reviewed-by: Christoph Hellwig Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_target.c | 75 ++++---------------------------------- drivers/scsi/qla2xxx/qla_target.h | 6 ++- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 40 +++++++++++++++++++- 3 files changed, 49 insertions(+), 72 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 47acc26..39e6a02 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -1592,8 +1592,9 @@ static int __qlt_24xx_handle_abts(struct scsi_qla_host *vha, mcmd->sess = sess; memcpy(&mcmd->orig_iocb.abts, abts, sizeof(mcmd->orig_iocb.abts)); mcmd->reset_count = vha->hw->chip_reset; + mcmd->tmr_func = QLA_TGT_ABTS; - rc = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, TMR_ABORT_TASK, + rc = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, mcmd->tmr_func, abts->exchange_addr_to_abort); if (rc != 0) { ql_dbg(ql_dbg_tgt_mgt, vha, 0xf052, @@ -4048,7 +4049,6 @@ static int qlt_issue_task_mgmt(struct qla_tgt_sess *sess, uint32_t lun, struct qla_tgt_mgmt_cmd *mcmd; struct atio_from_isp *a = (struct atio_from_isp *)iocb; int res; - uint8_t tmr_func; mcmd = mempool_alloc(qla_tgt_mgmt_cmd_mempool, GFP_ATOMIC); if (!mcmd) { @@ -4070,74 +4070,12 @@ static int qlt_issue_task_mgmt(struct qla_tgt_sess *sess, uint32_t lun, mcmd->reset_count = vha->hw->chip_reset; switch (fn) { - case QLA_TGT_CLEAR_ACA: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10000, - "qla_target(%d): CLEAR_ACA received\n", sess->vha->vp_idx); - tmr_func = TMR_CLEAR_ACA; - break; - - case QLA_TGT_TARGET_RESET: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10001, - "qla_target(%d): TARGET_RESET received\n", - sess->vha->vp_idx); - tmr_func = TMR_TARGET_WARM_RESET; - break; - case QLA_TGT_LUN_RESET: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10002, - "qla_target(%d): LUN_RESET received\n", sess->vha->vp_idx); - tmr_func = TMR_LUN_RESET; - abort_cmds_for_lun(vha, lun, a->u.isp24.fcp_hdr.s_id); - break; - - case QLA_TGT_CLEAR_TS: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10003, - "qla_target(%d): CLEAR_TS received\n", sess->vha->vp_idx); - tmr_func = TMR_CLEAR_TASK_SET; - break; - - case QLA_TGT_ABORT_TS: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10004, - "qla_target(%d): ABORT_TS received\n", sess->vha->vp_idx); - tmr_func = TMR_ABORT_TASK_SET; - break; -#if 0 - case QLA_TGT_ABORT_ALL: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10005, - "qla_target(%d): Doing ABORT_ALL_TASKS\n", - sess->vha->vp_idx); - tmr_func = 0; - break; - - case QLA_TGT_ABORT_ALL_SESS: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10006, - "qla_target(%d): Doing ABORT_ALL_TASKS_SESS\n", - sess->vha->vp_idx); - tmr_func = 0; - break; - - case QLA_TGT_NEXUS_LOSS_SESS: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10007, - "qla_target(%d): Doing NEXUS_LOSS_SESS\n", - sess->vha->vp_idx); - tmr_func = 0; - break; - - case QLA_TGT_NEXUS_LOSS: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x10008, - "qla_target(%d): Doing NEXUS_LOSS\n", sess->vha->vp_idx); - tmr_func = 0; - break; -#endif - default: - ql_dbg(ql_dbg_tgt_tmr, vha, 0x1000a, - "qla_target(%d): Unknown task mgmt fn 0x%x\n", - sess->vha->vp_idx, fn); - mempool_free(mcmd, qla_tgt_mgmt_cmd_mempool); - return -ENOSYS; + abort_cmds_for_lun(vha, lun, a->u.isp24.fcp_hdr.s_id); + break; } - res = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, tmr_func, 0); + res = ha->tgt.tgt_ops->handle_tmr(mcmd, lun, mcmd->tmr_func, 0); if (res != 0) { ql_dbg(ql_dbg_tgt_tmr, vha, 0x1000b, "qla_target(%d): tgt.tgt_ops->handle_tmr() failed: %d\n", @@ -4212,8 +4150,9 @@ static int __qlt_abort_task(struct scsi_qla_host *vha, lun = a->u.isp24.fcp_cmnd.lun; unpacked_lun = scsilun_to_int((struct scsi_lun *)&lun); mcmd->reset_count = vha->hw->chip_reset; + mcmd->tmr_func = QLA_TGT_2G_ABORT_TASK; - rc = ha->tgt.tgt_ops->handle_tmr(mcmd, unpacked_lun, TMR_ABORT_TASK, + rc = ha->tgt.tgt_ops->handle_tmr(mcmd, unpacked_lun, mcmd->tmr_func, le16_to_cpu(iocb->u.isp2x.seq_id)); if (rc != 0) { ql_dbg(ql_dbg_tgt_mgt, vha, 0xf060, diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h index 0824a81..14f2e24 100644 --- a/drivers/scsi/qla2xxx/qla_target.h +++ b/drivers/scsi/qla2xxx/qla_target.h @@ -744,7 +744,7 @@ struct qla_tgt_func_tmpl { unsigned char *, uint32_t, int, int, int); void (*handle_data)(struct qla_tgt_cmd *); void (*handle_dif_err)(struct qla_tgt_cmd *); - int (*handle_tmr)(struct qla_tgt_mgmt_cmd *, uint32_t, uint8_t, + int (*handle_tmr)(struct qla_tgt_mgmt_cmd *, uint32_t, uint16_t, uint32_t); void (*free_cmd)(struct qla_tgt_cmd *); void (*free_mcmd)(struct qla_tgt_mgmt_cmd *); @@ -795,6 +795,8 @@ struct qla_tgt_func_tmpl { #define QLA_TGT_ABORT_ALL 0xFFFE #define QLA_TGT_NEXUS_LOSS_SESS 0xFFFD #define QLA_TGT_NEXUS_LOSS 0xFFFC +#define QLA_TGT_ABTS 0xFFFB +#define QLA_TGT_2G_ABORT_TASK 0xFFFA /* Notify Acknowledge flags */ #define NOTIFY_ACK_RES_COUNT BIT_8 @@ -1056,7 +1058,7 @@ struct qla_tgt_sess_work_param { }; struct qla_tgt_mgmt_cmd { - uint8_t tmr_func; + uint16_t tmr_func; uint8_t fc_tm_rsp; struct qla_tgt_sess *sess; struct se_cmd se_cmd; diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c index d925910..1bec6ab 100644 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -563,13 +563,49 @@ static void tcm_qla2xxx_handle_dif_err(struct qla_tgt_cmd *cmd) * Called from qla_target.c:qlt_issue_task_mgmt() */ static int tcm_qla2xxx_handle_tmr(struct qla_tgt_mgmt_cmd *mcmd, uint32_t lun, - uint8_t tmr_func, uint32_t tag) + uint16_t tmr_func, uint32_t tag) { struct qla_tgt_sess *sess = mcmd->sess; struct se_cmd *se_cmd = &mcmd->se_cmd; + int transl_tmr_func = 0; + + switch (tmr_func) { + case QLA_TGT_ABTS: + pr_debug("%ld: ABTS received\n", sess->vha->host_no); + transl_tmr_func = TMR_ABORT_TASK; + break; + case QLA_TGT_2G_ABORT_TASK: + pr_debug("%ld: 2G Abort Task received\n", sess->vha->host_no); + transl_tmr_func = TMR_ABORT_TASK; + break; + case QLA_TGT_CLEAR_ACA: + pr_debug("%ld: CLEAR_ACA received\n", sess->vha->host_no); + transl_tmr_func = TMR_CLEAR_ACA; + break; + case QLA_TGT_TARGET_RESET: + pr_debug("%ld: TARGET_RESET received\n", sess->vha->host_no); + transl_tmr_func = TMR_TARGET_WARM_RESET; + break; + case QLA_TGT_LUN_RESET: + pr_debug("%ld: LUN_RESET received\n", sess->vha->host_no); + transl_tmr_func = TMR_LUN_RESET; + break; + case QLA_TGT_CLEAR_TS: + pr_debug("%ld: CLEAR_TS received\n", sess->vha->host_no); + transl_tmr_func = TMR_CLEAR_TASK_SET; + break; + case QLA_TGT_ABORT_TS: + pr_debug("%ld: ABORT_TS received\n", sess->vha->host_no); + transl_tmr_func = TMR_ABORT_TASK_SET; + break; + default: + pr_debug("%ld: Unknown task mgmt fn 0x%x\n", + sess->vha->host_no, tmr_func); + return -ENOSYS; + } return target_submit_tmr(se_cmd, sess->se_sess, NULL, lun, mcmd, - tmr_func, GFP_ATOMIC, tag, TARGET_SCF_ACK_KREF); + transl_tmr_func, GFP_ATOMIC, tag, TARGET_SCF_ACK_KREF); } static int tcm_qla2xxx_queue_data_in(struct se_cmd *se_cmd)