From patchwork Fri Jan 20 06:27:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9527483 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 DAF1B60113 for ; Fri, 20 Jan 2017 06:29:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C8A112867D for ; Fri, 20 Jan 2017 06:29:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BDC5E28616; Fri, 20 Jan 2017 06:29:01 +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 DF5F728616 for ; Fri, 20 Jan 2017 06:29:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751373AbdATG27 (ORCPT ); Fri, 20 Jan 2017 01:28:59 -0500 Received: from mail-sn1nam01on0066.outbound.protection.outlook.com ([104.47.32.66]:18783 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751273AbdATG2s (ORCPT ); Fri, 20 Jan 2017 01:28:48 -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=O1Rx5eAaLqYkUgrMhQGnUU2qyzWQhe41tjYp96NkLl6RiXDZR1GPT2rjW0zp2lwAFH4zh/aVE5bPx0Ijx4gBcQ5mWniQ4YTNJXFmS8cNgx3EXAPl6RoxNskb6nFT/JiGXixc8nZ3iaqhfwNxgmoOiJtlu4uLawD7CMmJ6MFq+a8= Received: from BN6PR07CA0044.namprd07.prod.outlook.com (10.172.104.30) by BLUPR0701MB2081.namprd07.prod.outlook.com (10.163.122.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Fri, 20 Jan 2017 06:28:15 +0000 Received: from BN1BFFO11FD032.protection.gbl (2a01:111:f400:7c10::1:121) by BN6PR07CA0044.outlook.office365.com (2603:10b6:404:a3::30) 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; Fri, 20 Jan 2017 06:28:15 +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 BN1BFFO11FD032.mail.protection.outlook.com (10.58.144.95) 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; Fri, 20 Jan 2017 06:28:14 +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; Thu, 19 Jan 2017 22:28:09 -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 v0K6S9KS001293; Thu, 19 Jan 2017 22:28:09 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v0K6S9Kq001292; Thu, 19 Jan 2017 22:28:09 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH v4 02/12] qla2xxx: Cleanup TMF code translation from qla_target. Date: Thu, 19 Jan 2017 22:27:54 -0800 Message-ID: <1484893684-1255-3-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1484893684-1255-1-git-send-email-himanshu.madhani@cavium.com> References: <1484893684-1255-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:CAL; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39450400003)(2980300002)(428002)(199003)(189002)(76176999)(48376002)(5660300001)(6666003)(50986999)(107886002)(50466002)(33646002)(4720700003)(5001770100001)(626004)(189998001)(101416001)(305945005)(5003940100001)(2950100002)(36756003)(26826002)(4001430100002)(69596002)(80596001)(42186005)(105586002)(81156014)(86362001)(106466001)(356003)(8936002)(81166006)(2201001)(38730400001)(8676002)(39060400001)(54906002)(4326007)(47776003)(92566002)(2906002)(50226002)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB2081; 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; BN1BFFO11FD032; 1:Kl1OB0KnLNGAxqThXAvHMPFETGh60ktAK0g4at69na84G6nlrI4XdkJG6gUDUhZArHkXWKKZpQDey3KqFiczqOrwjRh/g+tRJ86eXdll3GgGf2/lfpoXfXMy9+7WS5m5iNhzMOQQ8ODlRneFHHbxiGsYUN8wtFnsHm3KcVGMaGO42+hUkVPAbXmmNFIv3GtidF2twiwKNuKqflnrEyk60BbVO4qYYb7JAD32AVAOEIh3na4imWCu58YfcebmCC1lilboYt+50QGf/+iceroYgl90wTQ1t7WZJwnQeqMehDaTIBa64yRpxO70sj17jWEfhyw1+u96v/2aSJ0QbInr4f6itKhU9ruC5q5pt0mkqGzSWfZp7JHWFy3P3IV4QK7abmRJo9raNf59e5ZKWbmcIns/6l3jsTm+d8RaUKE+sXpL1nc3wxSEoAB+wz5Aud3A3vFp+1dfhG7TZwHFILClIiZAKOgnRpkW0S4M60bNx0CiYg/xNna22SFS+MVQFnP4 X-MS-Office365-Filtering-Correlation-Id: 52def9b8-def1-4675-3a34-08d440fd83e9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB2081; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 3:XYVhGSd51Nzx568/ZiK3S4NaQAri7oR9vx7Wc8Er5/YXwEu9SPeKxOo1EEDevjTP5mx7QvgRKiia77FuVhm9w14kdj/4x3Gp2lQ3l2hUxIuxK7E82y6G22M1p7yhRQYgdJWUQs27X+7chDEXCQ4T0XGguBb4n5/c7S+RWfJIJhX4ccdQZhUFxrK/lyjTX6Bxi0P8K21P3sut/8Ur19TyRqZr8PJCE7U6IzW1rmBQ2yz/+40BkbHVDnHDh6a0o2iLJE/4tQ665YbBg6+yUyAi5jfLorgJol/Zu/sSykPjye9ADNIYM3sJSu8oTrC6jVGQLVNUDtJ7N2K8z3WYheb8FZw7zjGqD/hwCEQ8dmKyR7Q=; 25:xaICwg78Ep1UQmW/JSwiVk5g9yl4jM/nOfeCfMKEojsg1+Fg/pPvnM6v4ufNC4jz0ENLhjgUXdukCMo5+kNACDGb14QUn/PDSQSobyR5Lj0Tdimpr+NKt6ZlCA6iYGk5RA6V7d2pVw3R1S2O2vHx0rnTNTJweKdMBCOYt+tpdA8tU0TapfFusGCoNUjVxabVKG6ngVBOSg50qC7TAW53CaEvJP8PV0YbCs5IrstyURA8ZwtSG23DB3aUH2Awny9noDBd8B2rKxhlrFc2MWvEA4gGHQEAskYqHH43ppEXh3UWbOiAt8G5d2Y0tGrewz+zyK0eTHke4kyKSobHvDYt+aRG9yhUyXNGxI0sC19ArOOdcAisEWSqpsl10k2u5XcS15I72z9fU/ObpD6OFgH/+R1TmEfvE3DqQtCyTnzAcAXElBxGmE03QH7snq911YwYVAUPmcCPcUTBwyIdgd44zw== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 31:Exff7W1tmqX/TJ+OHv+jybCky/jdzMC94BFh7Zm/IIi/MtpvAaavlI0XRmyzlHf/FHBlhTFTYHc9wQIvitDJnUM0+1iNud4z1QU5vhQv6pms9QntyFIVu4KHNsoLsKWpgMiIMEj+jc7YtGYsS6YON+MNlM+9szik/vse9eCZNJ+NRxOumW4rxwMEC8O/3wCcLdX87iUcW1Be0kESXXGsY3xiZH1p3d7qxmwIqgBr1lHGMNlIPdQ3nrG5mC3+3suNj23dMr7LLSQFSD7S5bsyaQ==; 20:wKARxLkxKRMMWlI1Jpg0KiKIqzxbXcELIPpf11+B+uSUGljDhsZjVDJsj+p85/w1fJB5fMkKo9orconWiXcXGB484BCLTWqWebInfjAp2rnjsSCXGH5/3XwbjNRLY4mq/oAhXVBE8v3dE1WOdT2BSMTJE/18WsRM9ALs2OOnEmVoa4BqTjNHxfFUBnxS/+V25OndbNf/ONYDkj3+t2S2hb7ozcgA5RYt43hf9G7h9F0rC5a2XcvA8POQvRTRBvwMZq905kFs7GT+xhL3UJuvRPciYRq5c+txZCuovSE/m1tio8yuvxYbiaQ+XnxiU8Tp6FtrPkHfEH7O0qK8Hh3ovnoTo19vgHaHVvmKm5T+ghXaUwmcCLPPuhaEvZ+UElRGy8Yjm6zPZGK+kiXtJjq33ShDbv5KhlSlyMmkG76/LrdNIriOY7O4n21e/cs/vxITvLrULLH4YHWQrtKhIkf8HsYndRIBDXi1Z/AGLEsVCiVijilaFvAFGFtEfe8ZgBlo 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)(13013025)(13021025)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(6072148); SRVR:BLUPR0701MB2081; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB2081; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 4:jr6K020vb0/eo4kWMgTlANTle2C6+AdC9Yf5yg5rCD67tKKbCqrgQECsrgrd+d+iUJ32FuyjPeuJE/Lo3nF9vWbar2OVNp1BfdBubebYITwBtDBsMA6h6FqWXnYSSrq+AyakeDIZKVy8/cDK4nMAWCAqDoJYMyNploBUcwU6UnaprNRvhhLKNReEokrUaatGsR86F5DoBRq/BqR1SN4mFKKFfIBAVxProdXeIv+4o1Gi3kmMUQT+m/tX5DEYciijDfTuRYFVl9uikuW7P0Gn/kpkqSjxrAtL63ODHk+pmhQybjpOAjaRDmA88ZAY11rEGDztZSPnB0VnKq1NE4zf1/dIbTlB0W3SX8qbgrfiNVMjK4IUFepXDJau0but9CHzwPGw3XY3Z+gzI4hLGswEe5FvtePwTb+qyk9/hIfv44CYRmPnBUOeti0Cyul+HOXgbH3USG9wc5gI19+nNHkMg88Uqm7ghciCiFw5klhqQus0uwqheACGm3+3Ni/h1E0dng65YQn1ntg25Lcw3DhlYMwnRDux0H2OJYBbuSbApH1dYcFCqV2CNDutGVysKWdOsTqVB+doR4h7AGHr5IV13gDg77LJbuOBpdVvFeEKo5/JqNgrBcxiQW1onGaFxiG+ X-Forefront-PRVS: 01930B2BA8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB2081; 23:iSUzPS1N+3ON1f+7V9qwBik/TzFq3ylpZLHq/ey?= =?us-ascii?Q?MNcHFFZwWMMzjn/HaY57oYGqdhgwGrqtALS1KLFJfoGxO70KLYthXESCfrjV?= =?us-ascii?Q?/8Nvl/mGYbnnejN9rdveBlhqyW6QDimDgUHsZI61o2vZ7jt5xcrGtZa0fRqg?= =?us-ascii?Q?rdXZUt3n/y2yBeps4BQYQbNMY8k4AYHrS6XjyuaIbcGRYKk7hyYKaz43MJkz?= =?us-ascii?Q?iq/Ky96ggogPibqr6G7q615iIzZkIUY1/IDB+Ch5KKEOCMPMGqnMEpU26TxI?= =?us-ascii?Q?HZfs+HeP8g0KUQN7I/26Pl0yP0XTjUbRjRGaZe9mf47Aloq8UcuwXoIwbsbz?= =?us-ascii?Q?7eP+Hi0YH0EhmA92nOQj/s3KgYc9VxZTxDY4ZQGG1PNBRP4AXSHvJoZraoNL?= =?us-ascii?Q?mIfkocNNY3wCqgBA+Z0g3DYLZ8GYgqbvqHwv/rHjZuH/1kzjrX1+e8/rX4Ze?= =?us-ascii?Q?RhM9goKu0GdlG5NmT/4rWelcqGT2tOVo0pL1oSCrnWfwAwWJJD8D1Ifw7jLt?= =?us-ascii?Q?4u7UcL6cDEvs6QJiTLDFvbwyr/4F9cvDudqXn9khyCiQUMvX25TS6RCbcodd?= =?us-ascii?Q?H5m2TuaxLtVkHQ/eGIvszEY8o4TUpBLY7CvfsQh/+xSDWc1oLaE4jaRtR/da?= =?us-ascii?Q?eKZBaFVhznRrrDpJ7d6c+qwTNQ5YXGMuUjZFikpv9jcGCCSL/iMZE+tDH3vy?= =?us-ascii?Q?l4l0XjYdZGNQ0maS+2gFSUOa6bqKeKOa/JR7mRMmaK2IrB9E+NgttuVQnXtY?= =?us-ascii?Q?gPvmAF8yQYEnbEwKkXBRZn1isgGf2gwkswq0eWhICnG8G4xpEw+l9tL2bmc3?= =?us-ascii?Q?bzrQ5m9phG70zQHBT2MgVI3BuNwEkGYK5ISXHdc5hVvZlhXWb5n3sWYIzxHv?= =?us-ascii?Q?l3Ly6X6MS93TXnjlrd1u9TGEiPLlGHJ+cjR1CfInR+P2SayQz7i6/2vWsgEV?= =?us-ascii?Q?Z0PKVIhnkpPOGbbCGgh94Dc8Ga+Ku4umwE0s1JOljVkPJcQPGHm7LPLBq6KN?= =?us-ascii?Q?SDTCV/HVquv1oAf0nc5AyzKq7UOs9dT7KYFib+U4F7eU9UImx3IonHQHv9nZ?= =?us-ascii?Q?wFwazSxfLHsEk9PURm+qRZmbLbahLsymhRJ9f92GzwYvXzq8SuYjsLMAor1b?= =?us-ascii?Q?+MIGji89jS0/ZlDo0MgGl8MdAFUZmxIdyBRcprRVwag1HTUZkvDs25A=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 6:8i9yL5ZsEe9SQEYBSDqrVJTgcSrBLm3mNjsT5Btb+jvqe3zETlXWQwWfzO4ZECSvPoEzmYzNuUrujOsCoVSGrbVIRTbPAFo36Aw1vSrCm2jHgdOVJJlFqjYdOzvHFuFE+oOcLinIHlkVQvQDFTIUpVJwm4IY/yluM0Js9C+FOQNtorVB4Yafse6/lIq6FzfW30LV04niBwiT4STVnayKqlSmfM1e1T1wh3JXz7RaHB2Rq9AgFaBOI/0Bwm/yAjWZbzp369JBq92QZvw2PC6yNlIxCbTxNKiUUOSosrupDn9KLjiWXT8Aa1h99fjdd0IYN73LLAzAqGZ4gtPQClX/uqtEQWWqmniFHnt/hyGon+6eGFZMCslSa1cvjcSWHjbyDGhWRFsRqFeEwE+Cwu/3MjgqNNvESvvTgsv4zr3a/QE=; 5:RS8G3N02EHutLcwx6gifV+0RqfMSnCb7EihiIuFZZsNaI1Ax5OrRzCaR2rteLDilifbTVlRQFy8Bfmy+BFYNYfSm3yUVS1orPGnS7eYk2uRWRFoycAGUID2oKi8dLGL7PXmZtbjmxKpGAOhBnyoJNSyj53+kiLEI7+xRfmFPYfM=; 24:kAkmrM8ErKeI2M1oCW4wkT8P4ldLiPTyEZ2eoFxbmoOu013rVnDN9tDO6GzCQdlu1xej6TTiUlTmxLCRtWaVNBk7ZON4mpGcZlCzrRVew5k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 7:/m7CKnePlcsj7f77/LhAi45BmtpX5ABI934C5AAaDpAZh8DJGDCjh7FJQOE4XyaXsDJr0NotAIfn0g6q0FmSQ0jm5cnJAieJDZblHi6e2iVc2zyAzuecXi3Jh3VWInIh9bjdjW3B5VPXlacct1vrcckIiDMhy9IzLcxyST3/iqQlXtf2v+R9lj82JmEFv+6VNzmDw9ztdiEErPCQBmQOdVvye5KMGaT2sufhKS6/zy7TNaDj3+olcElKnhT5txk57RQWviAz2Tw/rxCv3z8w/4DJHcJ5S6byHT/swmdVxJHY42YIhgEc3SDrds6B0McTaFZux5qjS2NNnyJIQfmeJAVhkp5SqMqLctCq8LKeIRtrTCSQNWvjvbYXghrDqJ6xAUdpTsmjDWXhLYckQ1paihN9CulgZkoUJCSxJPwdXSx4PtQIhTAHPJh2SkfcdE61cUndfnWwzk8xM2hLELwfxg== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2017 06:28:14.6654 (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: BLUPR0701MB2081 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)