From patchwork Mon Jan 16 20:35:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9519401 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 A1A0F60209 for ; Mon, 16 Jan 2017 20:36:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 90C1626D08 for ; Mon, 16 Jan 2017 20:36:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8470A2818B; Mon, 16 Jan 2017 20:36:11 +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 BDCBE26D08 for ; Mon, 16 Jan 2017 20:36:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751236AbdAPUgK (ORCPT ); Mon, 16 Jan 2017 15:36:10 -0500 Received: from mail-by2nam01on0075.outbound.protection.outlook.com ([104.47.34.75]:36350 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750841AbdAPUgH (ORCPT ); Mon, 16 Jan 2017 15:36:07 -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=hEC0TSLDYwZWnmQA07d/zD1WpTZ+Z9RZygnPHzMH4U4a8NZS6OUlobBjqGPNguP5DmjvbtSzucwy4U4SyLfU89TUPtayShhDyeSJCPOaIkhj0N8KQTsQQWFi8VeNAXY+ditJKXIFFLH1oBn+a5M38m5IzqXQ72d6psYaUEI9gZE= Received: from CO2PR07CA0019.namprd07.prod.outlook.com (10.141.194.157) by CY1PR0701MB2091.namprd07.prod.outlook.com (10.163.142.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Mon, 16 Jan 2017 20:36:04 +0000 Received: from BL2FFO11FD041.protection.gbl (2a01:111:f400:7c09::189) by CO2PR07CA0019.outlook.office365.com (2a01:111:e400:1414::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12 via Frontend Transport; Mon, 16 Jan 2017 20:36:04 +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 BL2FFO11FD041.mail.protection.outlook.com (10.173.161.137) 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; Mon, 16 Jan 2017 20:36:03 +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; Mon, 16 Jan 2017 12:35:53 -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 v0GKZdEp029103; Mon, 16 Jan 2017 12:35:39 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v0GKZdfs029102; Mon, 16 Jan 2017 12:35:39 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH v2 02/12] qla2xxx: Cleanup TMF code translation from qla_target. Date: Mon, 16 Jan 2017 12:35:14 -0800 Message-ID: <1484598924-29066-3-git-send-email-himanshu.madhani@cavium.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1484598924-29066-1-git-send-email-himanshu.madhani@cavium.com> References: <1484598924-29066-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)(189002)(199003)(107886002)(189998001)(39060400001)(626004)(5001770100001)(86362001)(2201001)(5003940100001)(5660300001)(20001)(6666003)(33646002)(69596002)(80596001)(54906002)(2950100002)(4720700003)(81156014)(4326007)(8936002)(50226002)(50466002)(81166006)(105586002)(8676002)(47776003)(50986999)(101416001)(106466001)(92566002)(48376002)(36756003)(76176999)(305945005)(356003)(38730400001)(42186005)(4001430100002)(2906002)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB2091; 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; BL2FFO11FD041; 1:DW+zFZLwHE4xRCilB9sVvCID7PMFy4PMz88aS3D0cYZaeAuc3MhwjXcnWec6Ta/bFVy3db1NKMhJTFL2LxbNZg++qoN31Pi+ofla3w8ZH7N5rZdHbf2VeZQ7tzuFYMTcEJj6CdVpSZ1bTQwG7eb/aabU+kHG8yE5mk8osDidaygld0ocTG2bzJNhQ0Qcm3ajg5SyyrwnUu1/Dh2BAqtEgfFhmYR0rsuUbfbMPLcAoj7O+Cu3cn07E1lO2DpLlCqjyq+x7zB5zNwN31+khQoAHwZrCaaLDDkR6Y3akdn6lQYVEiwyEPYgKfJW7VPmI3gx7ANXaO3cbkZMQyNKqRUwgMdW3yKZkDahtRUrXwndZsXgA7McUfZvYqPJNYIapk4f3uMjZZnmoS8Hw7g6WyEUf7Zwm+kAsyu6PJz37dsheb0EZQWU7MXc4/9uRGrCuZTXupPWCBrPUPokqo4EuAjMgljs6nd1o10AgT56vqRrV9V3g16vcGJQcZ5rqcUc2H2r6eOXzkBwFojH7b0VHSt7Eg== X-MS-Office365-Filtering-Correlation-Id: ef9fb077-1d32-4c0f-b4a8-08d43e4f4a9a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0701MB2091; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2091; 3:3tAD0HKviUkzsPfEh64Pxz8z0IS4UsNclqNxI2f3Nt5BSn4aFW3N5a23p1+N60mQqwDgmOsyfEw2PrLycITKVh0kYK9GESzT3rUnt3NZLtzFKNCOz8uEGJHYPN33NvQrelTEg3Th4xWPROK00A1vb0zv3zPWYVM0H5PLy9ZTuJmZiUcIPH6w0mAWv7c5P4tSIoACncf2IhPN0mbtMk3+lfhA4cbxe0uRgYnpzCJ+uH18ynw6klOVXxcT8HOUDi1r/Jg5MkvPs2c/sOmvqC+WuU5HSDyYf9udKEoUfa/lvkv2GAuC6li5+PzNYKxpvJb4qh51bdWAp04jKTbqMmYjONdMP0ANxC0eMfC2YER3h3ElhaEG/66SBdmHBNqkhaPx X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2091; 25:GBlE3I9USb4Kku28K7K8v2bZneJpO6VBc5ogvpCayAqRbbh/kpPPdQOiS2/SqEBSBTFG3Y7zmqcAB+wFBf+4wm+kmUOPdXoKdpD5PsMsuOPOLSFYyyLQ6z1ezTJnqorhFSeIU4w0tMExe81NS9G6HDeyrGn0YsB/NyA6R+gaiS/ppfakQF/S2m3SSCFLph3ohW12bcjkthdR9poNb0Im33YDK7ZsMls0LwT0Jv2eutTiCfMpXblukOgvjaer3zL/yA/o9r61NaAEMP8PnVaF5cqZWXB2HOaFkBTMZegEGf4O55tL+5FChdFU5QH3pL+NE4i82Gf3fGEF6ZXRDDFxgwgPOX095bUHqtICsilyd4o68iIp7le+ASlIH99WrAXQ2WSCY8XUz1wklIDszNzzif/kfankrKslRHhm1CBy4rjmDWW/9pLpuUc7NUPV7AHj9eXeFvlSMLeXv3e3xVYyv+zG7IVE4rDYu7PcO444i/QXHeMJ7XjH/fychBVAuU6y0Udztr+IRwLjPu4OawB4VOacuI0RTRorq18tlFJP9tRUcZPtvGmtizfWGyFp4cKMkL9dI8sqVNY3EQWbOoeEqESZVLpW6UNGkB9qsjg2A8PkqDVXyL29hsWzHHRIjI1v/VM0qGMWsAjGeh8Fg6wdRtZ1qjtoYsxyzy6SmZkMY5vqltVRvVlNJa8iEbm0vF3vbQLBSTN4oPZkfIkKLPQpOEESk6jTDGDQOaPUGGd9Dn3f111VwM/Z7vSDHkr267kIgy7EGYLOwfbnZRp9uWt1FZzfYIAxpnAh9Bf+MKiYNM5aSRH3GBLQCVNIxK5d1146yV9fEUyVk5E22ArGOSiAkRxIkTyiOlD2R+QJuYv1oa3DbTM8EnwHiwDZ6rmJQsk7 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2091; 31:M4ww2jmiB6kz9NlOPJHkb1snicv+rhX/j6GMjsXV+azlpLfkxghZKCZYF1JYhGXcdbnlgh/WyRHJ3+iL+8daqMaRX/uTusJHOoIQnuJbg6Kq7Mz8YIAsoQRNV/d2TESLgUPrz9UoIfekiOJooOuJ2BBLTBZ2ieYwYknQuQRFQAK/i38Iz5ozjaH3g39EaeU03s+XP0oZYB11TykgNwTTuZfpAzf/DHSa3w0f5zHRHSgMVjsImOxxU76g2lNbFYJ7aukSM1Yav3djTilF/R/vew==; 20:FdLSyoaGOGvULGU5j2+ypYSh3MhelztPE5Ygl8WeFqZvH7lXLNkka4STcKmq6zPPfFAdrRdBYQyFvpjuhLXgRv1J1YlR8ws6NsNszWcM9Fzohyl0KT1IAysgBlfdz0gCRk4J+RbC8LUddMZFwNC+llbyc6SXJ5aE1pK7sU4weT0MRmfbG/Wlkh1JZPVirEkxHPG70VXs475CBw7AvlDtOaH5mbkBtxqQDoIhN6owUC//ucyvlAT9ThJj/0fcfYYwaEvpdHFvI884DgRrWWZJ1M4FXxgO5FjMQDTGf9y4ClauySGaEhI7qOuzd7xtBGZkFRUoYSl8ZqC1khXXTK3KqtfUYoaQ0ChrRc65YgB8L21N2lfQz2TMtakE0TYlY7WooktTcieFuldFiftJKn2c2wKgTZvs4licnB52bo3U9OH0vE5yID2F+cIoTNuu0OmJ4WawtmB4DU0vylgcMB5aOkDgDUPyoZ2kRveRQ2gnQew+DQa8bln/FalLj9UEj1d6 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(13017025)(13023025)(13024025)(13015025)(13018025)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(6072148); SRVR:CY1PR0701MB2091; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0701MB2091; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2091; 4:J3oFaovFaJsJGoeqTJLqdoqMABh8VCbpNL9E6H/gtSbI/NJybpTkrpW5GmUANTr+HgnTx5F+XQ21lccCGYvd0XNfszow/6gpMhzp1lDHI2fESGIFhyznMDkXcGHabpamgC/Ux0EoJ4h4iEOjTbg7jtwUf4LQsQycKi6g34f9urCnetwPV8Tgylt5J8p/VQnA675Ml8hZ4DAcNPEymwd8lpULa7+gLHX8kHwaGaQ3Z87QA6RwXmBRPz7eqW334guX5wtbn01dIQy7l+zWEuxALB4ne7W/ZyTSdcOzBOd5QjWjtl89y376Zyc6FG/bAdrBAq+rB1mI5aEiqsx4d0eM/x86+NNp0t0s50PCAf6wnRt6IpC0FescWcXxQX3au1eGEc9mj13Ik8ikwdh4uhRgIGZMSECqP23z3pLyQDvv45d5HlnT9oJtZpJsVQ80CesOsqX/Ca4fmi1Uf/E2rUvg2NmbFwQXXL9vTODVJAsK+fxGeZiUWG4ViZrP1D+aawXba7BGYtzP4aIXu+F5LnuDfkkAElYyZsYorg8FEf2ewplH2f1/JiVPWqtYB/cTTuYEuYbhFKopUyVPt/qE46/C8Qs734p+b64N+vZhW28TeR3HsG3LzpUmLFXh1pTOlfGqtDJTOLhSyN5xrrUox/VZUxY2N714j04kvTpQFOvzMWo= X-Forefront-PRVS: 01894AD3B8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB2091; 23:wSqyEs22vXbh2+drAYMwAn4HnV0a+NoZzs3zXqF?= =?us-ascii?Q?bLLPo+2ULQClE/yQ/5hElusNeUPSBhokjqz98Zw1wi43oUxkKuO3Pa7CCBUq?= =?us-ascii?Q?Ft3Vb7+lCR/X6UfJagEkEOip69x0MKsnwMYtcPMbJuK1sTY4mzEqx7Vsm40N?= =?us-ascii?Q?sEWi8l6WYRnF78xqExlPRUPa/pnAD+6gezN0rey0ayzM+1JlD9TqpxcKKohH?= =?us-ascii?Q?XED2TttMuT7OJLl8sqFvMYreVW8meMyiYNNXUDmtPYtR7sX5Fx+a4pi2X/Dl?= =?us-ascii?Q?QsBfxpZ/FHYJgNFNQLOJYCqoaJnbafAPIHwZBqMyxbPTnAnIRNmt44soi9Ma?= =?us-ascii?Q?ycg4C2SSvGF353/pbx0N7CnewcZpDSxpK7gogC9995GD6MrQ2b8dDcvDfBqm?= =?us-ascii?Q?kO7B7OE8nQVxAmvXa6NtjqlIMbDrqWteodVDBvUvbV5D7VrEvALa+B4jJO2v?= =?us-ascii?Q?RMME8pqCgzGeQvUcpCjgI0xc3k2G1e9f43Rfy8fLSTe6pxWfxkBCbZyK1P0b?= =?us-ascii?Q?LXk4xN3WTRcmvBSnilmxgW7FwNN2obHRRL+mrueb0wwb/b++IkqUKDvtr8zj?= =?us-ascii?Q?hKWYSiYgk1P1r1iyRGwKq531F7HdEHBsH3QwIsWV+TvLFdxU527NXmOHUN5x?= =?us-ascii?Q?+9h1UnMV0H4NoMa06UB5gRKli2QCd7c9uwd7EZD+iPzy5Zk9qkY6QfD7N8oX?= =?us-ascii?Q?W+JEwZD1a54QgUPcBsXCYWM7j6JDT2IqG1d4u6IlqXODZ/iHYBAYsFvli2gQ?= =?us-ascii?Q?n6pYf+p6lt9zwECM3YID5ZVFXZTuavaCNdRPWzEMgqwEIIxMgG++Nag16h+v?= =?us-ascii?Q?c2Y4mopnDIuYA7wi/UmbVlPMozNkTlEqN60bQX6apoVdvRyW/e63deUQJGwq?= =?us-ascii?Q?meWFpxJ+Sy5JeBNgGKokmzs6TeqtQARoma9dMygpKUNMsA7fwRbfPiAovy3p?= =?us-ascii?Q?HZpEcG9orVxWzRd1Snydue7KV2ixhnSrVNsM48aQQxf0CHCyuv1Xey0hME7Q?= =?us-ascii?Q?edmpV6p+FWJky7gGXFyZjTMEwNCeybgQs+21G5byxZ8v6JSm1dSS4yUqrsc4?= =?us-ascii?Q?W7MtJAHHUOTJ6WXsBGmNRBWrT/HeBrTcaRn0+G9oLNnvBi4teKyG1DqcOAHS?= =?us-ascii?Q?iHsfjO7POfr8HPKh+f6meqdN6Brra9P1J2upG+agdmokCh//VDSXTwA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2091; 6:NBVrVmGiYA456Xg4oY9V4Ps5NEtJkjEW3Y9LWltUfBzjoHL4C2GIWoMTFscgaOX8aeIOXHBkhRKFnQ/ZCbrkbpA9XoUamIxGQeRvKSSKJn6JZPX3B1+rrbkKI0LBgCTDlOVksqq/A+MjtoyFKL7PGc0uhupcXyjceD41sbFo94WlQKeVxmp6xfqwVa9PNm+fygOLUR0BBcxIHd15WdAzSsceu4BJtymq6yE3wjnUcAL9OnG+MCf28ItLl1ysvYSUUAihDHw4sxEj986HGWrkWw4s4f+JvG+Jqymxdh7akwd4vz3wpebuM+HULfrPo3K1rYUHb/2+UuZKxxI/OBu1cQhQE4k+vVdp1WD0XdmjMCMPCZzUQruj42x0C6zQ8vxgzQDj8yxK23LYhgm2xevEEnV+Q/G/RIVWP9co7GLpYak=; 5:sk7D4bWlWVbTB4T61ajdMF4qoV/F9H1GSuBnuhndceAV/01nnZ6Db8E56+jboZYyJNfBN0RyEucLig53MIBXhkqCHGz8TQ0PB4jEabtpcnIbXkjIOlwQuMfDX9h300Gqd7rVjAkyDJaaCy9J8pccgP9o6YzCGO7wLzLRRXYP0K4=; 24:ptzK1XPFKiJAle462LtwPydpFeawULh5E/crKcoxVx7anXt8jDnQtTsfz5Ng2NxiSPl9qiQDDHZ0bfRsExs3BPlx/OOyQqnI9NweEssuSRE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB2091; 7:zSAta3nG+LXesI0mEtYu9g5G15pBe5ZDJ+ikhVqQOqMYTzKhg4qNUVd57u1YhM9ZytW/8vIb+dTEDeYPwRNtGNRc2sI+BLnagbwGeYOGQZ+iYiv9M0humMKkomzyXgAn1GCCOibrJUkCzyngR+gLXvVYrUp6wI+DeUKgrATKkK8kbD5+NNrmFI92t3K6e62KtlPeHWePNRzjurBgPn7KlRtHmzj5P4O4ghY/jhLnKZm3eQwv88Uj8uAtnfD55odpZkWKQr3a5SBhJIHBe+qjwkgn4tBsslDG7XYLnwkakOK7SHlXV29aX7Eohr1KK3PvIBqKVjO30rZnvOWbWBW2+x3fcMjKl30cJ7TeEe4TN5rGQVJp0+F8i88lpMxZo7W8E5uoIv7txogrYSZAaT8xXeBL8HcW3tG/jr5UDGWqaMRWmovUicEgqQadw47I8S30BAdU48BfezQO/v7DSUHPNw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2017 20:36:03.7329 (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: CY1PR0701MB2091 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)