From patchwork Wed Jan 18 23:19:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9524947 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 51E3F6043A for ; Wed, 18 Jan 2017 23:20:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4407428633 for ; Wed, 18 Jan 2017 23:20:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 38F302863E; Wed, 18 Jan 2017 23:20:32 +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 5915A28633 for ; Wed, 18 Jan 2017 23:20:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751436AbdARXU3 (ORCPT ); Wed, 18 Jan 2017 18:20:29 -0500 Received: from mail-dm3nam03on0078.outbound.protection.outlook.com ([104.47.41.78]:31633 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751394AbdARXUY (ORCPT ); Wed, 18 Jan 2017 18:20:24 -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=7+DHN7tZo15LAs8+GHZB6TL0bn6G/0AIk3XQ/o+PqoI=; b=Dk3quUqxADp6OLghrUzq8jYkZKjUEgFzVFByS/JNAYIVy6cR3uvjBbsJOaichmM+Q1IOrmUqbxdt6AuL620Sjf1/bSfOVkoUM5A8tpLqRaL1y8R1iBkoI8KELWzFGUzEqGoTZdwoUDSDAi+1J1VUNy+XXLm9zAy6/yxtlE9z9n8= Received: from BN6PR07CA0046.namprd07.prod.outlook.com (10.172.104.32) 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; Wed, 18 Jan 2017 23:20:22 +0000 Received: from BN1BFFO11FD009.protection.gbl (2a01:111:f400:7c10::1:180) by BN6PR07CA0046.outlook.office365.com (2603:10b6:404:a3::32) 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:22 +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:21 +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:15 -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 v0INK1Qs027293; Wed, 18 Jan 2017 15:20:01 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v0INK1ZL027292; Wed, 18 Jan 2017 15:20:01 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH v3 03/12] qla2xxx: Make trace flags more readable. Date: Wed, 18 Jan 2017 15:19:36 -0800 Message-ID: <1484781585-27252-4-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)(189002)(199003)(81166006)(69596002)(54906002)(189998001)(107886002)(50226002)(8936002)(47776003)(626004)(5001770100001)(4001430100002)(5660300001)(80596001)(6666003)(81156014)(4720700003)(8676002)(2201001)(5003940100001)(2950100002)(33646002)(86362001)(36756003)(38730400001)(106466001)(101416001)(50466002)(356003)(48376002)(105586002)(92566002)(42186005)(4326007)(39060400001)(76176999)(2906002)(50986999)(305945005)(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; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD009; 1:sYKth1EfByO70o6u8BLVRsrxX1/x63OpgElDqYrAhLmWGrUvJTJgdwyzh/9kFq1VH1sro+R2iDPsk34EPoH5n1E4VNk+SR7JwL1Z+vfMGHUcYiATDi+QwfSepxbwmaUurg8fSGN5XXnxGgcefc1HUQa+E6D1E3ojs1RohuGSUKe+IyzWbxN/UytagQ7vN6OlAu6b3flCiLyFrcUPHkbKPxcYLo1/3eMEjZMkDxx52w658Zb/qdZEQUvJRpB2LYgDTkVYQ+LoCbXL8JpjZfyf9MyTFwCoNlSdrkWExFc209/k8D9z/WLALpDyrBBdV0v0ZTGO1sn2Ll4cadQWAByL7kLdxySeCxfbniSCj0gMMW/dfCXJhf49Z6+Nfilygl8BketJEVxZRXfYixjDpninSXzyVRWGOmg7tMaA6z4nB9QV/uPp6Z69MBKtYzMrGNqvjFFf0ccdn6FcT+U3q9wmJrKR9b1AKs2I17REcOSUJ0YcRiSLq6xzPzyl221E+k8uUkVNsrD1JC+rv8YwaWqHHw== X-MS-Office365-Filtering-Correlation-Id: abed93ad-8ec4-441e-4ceb-08d43ff89309 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB2081; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 3:tGElmPi48WcMkcqq1FlxiZJOB/6kUPRde+q4JsX2OI0fSotUt9DeHrnnR+igc0Rx4vu+UpsZPZDASZ6OWirp2HPiOgdZrJ+VgcIcD9eIRbjwjlyh+cIyho7Bq21kFYmJDEpTGbDlSk8fQ7W1mFYUIxXhA/W2tqorualefCwspvdksANSa0OWHhboTGMLZr2DLCdxATfK66nLQylIGzsLeMBthITjQUYNlVgZR+dUu/gIWo0J26d5LFSArLob12vcMMrFefWiBYTITG4S2AnxghaSMCzySXU29cjBxdhqgRTXxRqZB4UaQJEnO79sW1WAwkRGYokD59O8KshW0XPt9FpkmLEvnFT0gd4K37LDBobxF7mhLfv86x/ntHGgL+BK X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 25:6x6g0t+MZKQZdW0kOVoUcCKkkf828O/0gQghaKv6NSHEJXm+Vyy3BLESjGKu6EhlineGE87Vsj6dac35os48rGyjgxWO1d64ua1l41kZP+K994WglXmTxug9tjVFc9YLT8TEKPXP69Zjss4sf1CTxdg03m65MnmHcJIY82H9l7zWiwZqcpLgCPgArfEAeeSDygI+h4J29ylk9kwnqv8J04VO9gPHVHlBLQxRhoOFrr3FknXHUtMnRk30eLL7vW28aukSuWhzfdck8Rk3wxgm7kXpxun1S4QYYvgy/S8OJTRLl+NuRjP5piEx6dd0zVoS7yBqAe/O6tyetQL6pu9MVVtt3O0e5X/EOu08GES7ospQ82B64GUhfEBrL/99PMxqSvGa+p6XxCLM1vrF5vfyy5Z11frTUD+S5LTg6Zu0g2bdksXgsBV5PNblpYXR67/Pt7cbHudjGNYilM2Ai04zHBuh0Qu9wC6RZwQUz4If9hGdreBxVCfpsYeYwUp8cyM7EIiE8Ub2kgKITqWjsl/dS0Tyj5ErFwvOi5CHJeOoNrYBa57Db1pHII//bkiF7ua3/vIbbOhgrBhYGI4aD2ym2wUdCe92M/nL/+DDcdBewDyUpAkW1RBOObbVrbIkgPbMm3hDUQMHXWd5Rb+3Lej3CccrfUUAdZOb/vmsrRWFl+VH769Z5pL9QJ/We3YF7B6rWinOU3qxTTAHSwf5fWbeeEtMMYTRXv0HNeXZ/yBUIzsVTpADt6zLHB9S+1EpYez8cZ4vDJFoKHcHRyp7zSuFs9LsOicCUa+AUAFLnxwImIXU/hqn/kDn3Z8FoNMuhJaS7ECUjEvEox3cCl67kZOdZyyxsXLHXlw1DWenpKgkRcA= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 31:nfgs5XcC6vaMKfNMpyAIOOxtVTwSyGVp5c8Ow6Wg//rKpGs+kqw+bQS44lx+Ao576mR7xcrG9JvdGw++n1Rr4uPbsDQNDBwfJSXyscx+mBZgIts0Onn2v5NuQHs4Ool6De0Y0ezuV8VoIsTcSZwRf6Ye9LZY+mnpNNYXerRtRONJeIltI8FbucZ4JxK1Uzv9hxcIQPJix33XTvRtUH3VyslmuWl7SfNxinYDB4/K8qSqInuifTneQXwu2twKrL33SyXXIvbO6R1Vo+CMyrl/OZzqTVxOxqeYHG7mkmDUXwQ=; 20:SF4s3TnxNDuubhwRph5juVLeKDYhhSR1XZQaIVgk2o3USQU8Fho4u4CKNIWbQGVLX9nxXWsqf9BOJmddNr2lz7+yo2vDNMBQIPQgyMqN1oXFD8fuzY6fWhU7dXgiTqrxsrygnHOUhXDKDumWQi4UXKBtPzBWmoUd7z7jSmnDQCBe8fqdpIUtW4OCARpD709MMupezDYHe4HICbd3Kx4R09EmUdYiNf7wPh/COb+GyU3faOCRbgBCY9eQBwgCUuh3qC6hRZhVY1o1D/5biMOb9GGTYvwcdXd//mGui9/YYQ/06RBI82HKrqxpLS+IlyQfIXZGEDt7JjaZyf95ua5JzC6Ok9DUZCK2zsOjYuae++Gx2I49/n368PvNISpJld6QfEjMAqC242UJo/82A34oHSB9Yu2hPJUGZKHkdbk5xcK++CyR/lH8Gvke2orL1qk0D/babuxeRPEBeYRp8yT8JfGgqbkyonLBrzKWCf9t8RqScjtGethhX1KhETBBGD4K 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)(13015025)(13024025)(13023025)(13018025)(10201501046)(3002001)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(6072148); SRVR:BLUPR0701MB2081; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB2081; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 4:AGlBgG0sCTbrtqyWSmxIkuNEpCV/BsIB2RjTnHleyiAkT3KA/3pGpoOivKomLLVLqFPctkk7zKgAA1gUPNBC3d0KolLAjKa9niMDPa5BiA14JQcA4N7FYr84PzYD8VIFPh8hDcntfexXW9jKY6poE1ZVuQ7PKOoIahJ2Om0Z5psh/57UvKN6oJPjwTLWA37tHnEI9OZy/T087aE6UQYFdGyleRzyhJrd0K7X9pIJ7ZnFjUIisYfJQE1bkoszvRExFnmyq6a2l5J9nut1824MzbilwSV/gFkgZYznRK4caUT38c0jE8a9Q3gWuH5XigYQQUV+MruNxDphu9s4RqAYBQsK2Xa+Ga2hGMMDfbgOOUxX/YpRkZ5JIw8OCYtX4x96DngfaFqky4D2YEiTzD8yxkvXEi++AVbV+YhGhnThMjoILPo/ZF2fo971pbdocK0yPuhi6amOFoIilYELzYMZUSv/wYmvjD1r0of2Xq6TRQRmLhYGITbejfS72m+zGMDk/GUZylwClGkBhDXNxkG3IfmO5A98EikxDqn4kAJDxzgUbMA9zCnj695a1R7R9ChqTaDissCOwm2Lu79XGbNhe1Wb8ALm9Js6RQfiGIOusZXcPrdd6VMnB0Zf2mlriQJHmKvUWH3CHDhq4IMZTlLweAnPhY/SHL0hRxel1xVtjzU= X-Forefront-PRVS: 01917B1794 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB2081; 23:HbRpRwKehRNbmGBxDCd9xLYuFZssheiYgHqDnGI?= =?us-ascii?Q?lMLk4dGU865OhGtGW8UdPPziaVQXgGhwqHC37C+kJXw0u/GGvxIAH5qRWFxB?= =?us-ascii?Q?uXJ9Dm+HV/Ezo62MowHTNri2LLQm55aOmOgc/tjcUVvfVjhkS86c9HvDJAzK?= =?us-ascii?Q?rQf1QkuhJZ4dwmj2RWRz8TlNiTSDC8sb9bHUUJcdFgcsYXAYCUzpLe6FWDCd?= =?us-ascii?Q?wh7ft11R5dJ9klrvRb4rAHf/kgyfhTy//uADpPfp3Q6W4Trw8FBt7G/Xnt0j?= =?us-ascii?Q?fT9R2WAclq2SsW2eT+S4uq6BSGJReOL+pB3P3cYsNIIZTt8sCTRhNuXM+erp?= =?us-ascii?Q?WsNiucDBcwDpLaRYkFdY/SZtaI6WQV+MHmoD3dIRKoyEhZlf7POTqxIBsopM?= =?us-ascii?Q?ZFpEZXPs/GXr50P+jUzU5JXtzWaWNy5+8LNt7C4FjMzepHs8480pUy+CwRZ6?= =?us-ascii?Q?CyqJdJIR54gHKd96Vj+Tk9oJyXJG1hSw7gY7o8BD/nZR+2iz1hUpgTt7joaj?= =?us-ascii?Q?b6u4zxFyZ+knurOo95hjYkVJr93Gx8C9QbtRHSEbMPi69imhhny9QbeTt+Om?= =?us-ascii?Q?/oJ/7OHbZOoQ1eHjIvP6zo3LSZ08Z1LTwhVIpU2r86QMF1u/wQPGxVcRiW6D?= =?us-ascii?Q?6OVUbIKzSR/L7ZTDvQuDT9n3z8/d5SJ1XMALjj8woULw7WVm5JTwLZ6a4AD9?= =?us-ascii?Q?asIpFXdjVHnNR6D5HtGUclYOqYM5NKNPrZoPoMuZTKMqbW6a0vEklU7tIXiH?= =?us-ascii?Q?g31Oz/W4g+nf7Kd8x4q0y8CEIdlHbRctKDi7PsIImlFo9UNUY7s39Qc0WYAK?= =?us-ascii?Q?XiRWC4buumcDXvA4RiXSVYU0D6ugj8J7Wy6QAZVrM2m8W82tZRCI1tkYfjgW?= =?us-ascii?Q?GWt3yjZd0BsA+dVAoZo65TpcdfBplVe1oAC5m450E+jShm99mJ6CWYMDaJB7?= =?us-ascii?Q?qtXIU62FHaxPIBSPuGaY435mqhiJSvFkJ6drkPWewBhGRizBMSPGZVLNYldZ?= =?us-ascii?Q?dtsCIIHQbBVRNVY+GKoBg7NrZym1ysJgVMC8RmKkfQ68h+DaHOFDQ89g0E5F?= =?us-ascii?Q?/Wln6odaev7ignkN5DT9xv9g7iD+pkZfJzJrfCeePbDUeNna9ygLcYO116un?= =?us-ascii?Q?Tygz+RvW7nK67amiU2Go6nOtEnqAE9O7X?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 6:6Z6yUtMm6clnVXf290wa2g6n4hLufjhsEl9UXRhQkLJ+4FC3h5SR6loGP5VAhWy09dKcS19ebo7YQ5WsAJKRBQUdqwKnTef0njxOhKOBCtSiIoBWKC114vqI6wnjxyPcExXOLfAr1GDeXdZwI2nS0Ve7cjqxFrnxorNP8ICSV3t1c76yJEGBcgVEZTcGRTLBJrK88Y8e9/8g4t1ZfaabZS2yjO0fxyoyfU0K4YgL9GGQ5dsyBdl9RgB3n8Ml1L1sKhKVD/Z0cn9GX/EZVlNLr1Vdk+2CZZ7kgDBOj0QvZooZrWiqrw54sL5/o0rjNkWUf5wIOEekgCCXuKqOoBadLHErn0c+t7MQE+usFMgV3Z3l6RuwqgeuDliMFQE8V/2bvZZBtd2FFWJUVdZT6dYXgjOT9XL31T0yCgPnkDSUUYU=; 5:Vy07Qumsv5Bn5XdvqA4ySRKK5T2b3fi/P8iMvfTRxAye1c5Opmw5Idpt5lZfP7BVtnf2qmuOAbvTZpVqPmZSuk4vGLKoXnvDXXwlCbO/pORI0fQ5zxbao2CRe2ks3F2Na8DoJOIXGMdozAqS8/BCG4rEPxTpP9GEijSR/S9o2FY=; 24:tryPuFlcm0FOwj2C+C05oUAOaNAoSYq0kj3eheync+fHAUTrRhK+4fCyhcXmdY2KtKBytGeDm5TmvlR9F8bPA8mYMddvUcMM5gtJxic74pk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB2081; 7:s52qovGf9du1IjFPJ6kp5/S9h/Bv67oMygWZe/IkXMsHQg3nK2a31xqVAX77v1mz08goBhapG4JbiOiiqOwauwkF8eoYHhJgr44LZGrrb0NWaigLxZKLWOQVaBnIwrhk/MrmCW29Pe14IVAKmoRfEr4zwY4WOWUC/7GstGErX3bIJ7D04dMrj7Jh6Mj2DaFQXBNAht2ZOl6+7FQG0Y5WcAgGoGiHBqJXtmMf0qwTU1BB4g4HGGY+P58naGjU2eKPk97Bp7MuySLyp02B7dIdIzK0RqFmEZ1qxCxuPsoPMRlP0uHJhfw02p0HgY228/m0uq0WGBfW8Wd2tYS9/40I8nN8qaKFBRcJxUTJl8AYi33/ApGoe1hzqdqivMQnP0wJncKSQ/9GpUNAuMUeQcyrUyhRazfy9osFq1+XoJ5Tq5kkh1HP/OZTWpdJvd0P9dyR/FoI41AZbNNrprQBpXWNOQ== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 23:20:21.3794 (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 Trace flags are useful during debugging crash dumps using crash utility. These trace flags makes it easier to understand various states a command has successfully completed. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_target.c | 28 +++++++++---------- drivers/scsi/qla2xxx/qla_target.h | 55 +++++++++++++++++--------------------- drivers/scsi/qla2xxx/tcm_qla2xxx.c | 43 ++++++++++++++--------------- 3 files changed, 59 insertions(+), 67 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 39e6a02..1bd9cac 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -3294,7 +3294,7 @@ int qlt_abort_cmd(struct qla_tgt_cmd *cmd) return EIO; } cmd->aborted = 1; - cmd->cmd_flags |= BIT_6; + cmd->trc_flags |= TRC_ABORT; spin_unlock_irqrestore(&cmd->cmd_lock, flags); qlt_send_term_exchange(vha, cmd, &cmd->atio, 0, 1); @@ -3342,7 +3342,7 @@ static int qlt_prepare_srr_ctio(struct scsi_qla_host *vha, struct qla_tgt_srr_imm *imm; tgt->ctio_srr_id++; - cmd->cmd_flags |= BIT_15; + cmd->trc_flags |= TRC_SRR_CTIO; ql_dbg(ql_dbg_tgt_mgt, vha, 0xf019, "qla_target(%d): CTIO with SRR status received\n", vha->vp_idx); @@ -3525,7 +3525,7 @@ static struct qla_tgt_cmd *qlt_ctio_to_cmd(struct scsi_qla_host *vha, dump_stack(); } - cmd->cmd_flags |= BIT_17; + cmd->trc_flags |= TRC_FLUSH; ha->tgt.tgt_ops->free_cmd(cmd); } @@ -3691,7 +3691,7 @@ static void qlt_do_ctio_completion(struct scsi_qla_host *vha, uint32_t handle, */ if ((cmd->state != QLA_TGT_STATE_NEED_DATA) && (!cmd->aborted)) { - cmd->cmd_flags |= BIT_13; + cmd->trc_flags |= TRC_CTIO_ERR; if (qlt_term_ctio_exchange(vha, ctio, cmd, status)) return; } @@ -3699,7 +3699,7 @@ static void qlt_do_ctio_completion(struct scsi_qla_host *vha, uint32_t handle, skip_term: if (cmd->state == QLA_TGT_STATE_PROCESSED) { - cmd->cmd_flags |= BIT_12; + cmd->trc_flags |= TRC_CTIO_DONE; } else if (cmd->state == QLA_TGT_STATE_NEED_DATA) { cmd->state = QLA_TGT_STATE_DATA_IN; @@ -3709,11 +3709,11 @@ static void qlt_do_ctio_completion(struct scsi_qla_host *vha, uint32_t handle, ha->tgt.tgt_ops->handle_data(cmd); return; } else if (cmd->aborted) { - cmd->cmd_flags |= BIT_18; + cmd->trc_flags |= TRC_CTIO_ABORTED; ql_dbg(ql_dbg_tgt_mgt, vha, 0xf01e, "Aborted command %p (tag %lld) finished\n", cmd, se_cmd->tag); } else { - cmd->cmd_flags |= BIT_19; + cmd->trc_flags |= TRC_CTIO_STRANGE; ql_dbg(ql_dbg_tgt_mgt, vha, 0xf05c, "qla_target(%d): A command in state (%d) should " "not return a CTIO complete\n", vha->vp_idx, cmd->state); @@ -3778,7 +3778,7 @@ static void __qlt_do_work(struct qla_tgt_cmd *cmd) int ret, fcp_task_attr, data_dir, bidi = 0; cmd->cmd_in_wq = 0; - cmd->cmd_flags |= BIT_1; + cmd->trc_flags |= TRC_DO_WORK; if (tgt->tgt_stop) goto out_term; @@ -3830,7 +3830,7 @@ static void __qlt_do_work(struct qla_tgt_cmd *cmd) * cmd has not sent to target yet, so pass NULL as the second * argument to qlt_send_term_exchange() and free the memory here. */ - cmd->cmd_flags |= BIT_2; + cmd->trc_flags |= TRC_DO_WORK_ERR; spin_lock_irqsave(&ha->hardware_lock, flags); qlt_send_term_exchange(vha, NULL, &cmd->atio, 1, 0); @@ -3881,7 +3881,7 @@ static struct qla_tgt_cmd *qlt_get_tag(scsi_qla_host_t *vha, cmd->loop_id = sess->loop_id; cmd->conf_compl_supported = sess->conf_compl_supported; - cmd->cmd_flags = 0; + cmd->trc_flags = 0; cmd->jiffies_at_alloc = get_jiffies_64(); cmd->reset_count = vha->hw->chip_reset; @@ -4017,7 +4017,7 @@ static int qlt_handle_cmd_for_atio(struct scsi_qla_host *vha, } cmd->cmd_in_wq = 1; - cmd->cmd_flags |= BIT_0; + cmd->trc_flags |= TRC_NEW_CMD; cmd->se_cmd.cpuid = ha->msix_count ? ha->tgt.rspq_vector_cpuid : WORK_CPU_UNBOUND; @@ -4709,7 +4709,7 @@ static void qlt_handle_srr(struct scsi_qla_host *vha, 0, 0, 0, NOTIFY_ACK_SRR_FLAGS_ACCEPT, 0, 0); spin_unlock_irqrestore(&ha->hardware_lock, flags); if (xmit_type & QLA_TGT_XMIT_DATA) { - cmd->cmd_flags |= BIT_8; + cmd->trc_flags |= TRC_SRR_XRDY; qlt_rdy_to_xfer(cmd); } } else { @@ -4728,7 +4728,7 @@ static void qlt_handle_srr(struct scsi_qla_host *vha, /* Transmit response in case of status and data-in cases */ if (resp) { - cmd->cmd_flags |= BIT_7; + cmd->trc_flags |= TRC_SRR_RSP; qlt_xmit_response(cmd, xmit_type, se_cmd->scsi_status); } @@ -4744,7 +4744,7 @@ static void qlt_handle_srr(struct scsi_qla_host *vha, cmd->state = QLA_TGT_STATE_DATA_IN; dump_stack(); } else { - cmd->cmd_flags |= BIT_9; + cmd->trc_flags |= TRC_SRR_TERM; qlt_send_term_exchange(vha, cmd, &cmd->atio, 1, 0); } spin_unlock_irqrestore(&ha->hardware_lock, flags); diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h index 14f2e24..5d00529 100644 --- a/drivers/scsi/qla2xxx/qla_target.h +++ b/drivers/scsi/qla2xxx/qla_target.h @@ -965,35 +965,28 @@ struct qla_tgt_sess { qlt_plogi_ack_t *plogi_link[QLT_PLOGI_LINK_MAX]; }; -typedef enum { - /* - * BIT_0 - Atio Arrival / schedule to work - * BIT_1 - qlt_do_work - * BIT_2 - qlt_do work failed - * BIT_3 - xfer rdy/tcm_qla2xxx_write_pending - * BIT_4 - read respond/tcm_qla2xx_queue_data_in - * BIT_5 - status respond / tcm_qla2xx_queue_status - * BIT_6 - tcm request to abort/Term exchange. - * pre_xmit_response->qlt_send_term_exchange - * BIT_7 - SRR received (qlt_handle_srr->qlt_xmit_response) - * BIT_8 - SRR received (qlt_handle_srr->qlt_rdy_to_xfer) - * BIT_9 - SRR received (qla_handle_srr->qlt_send_term_exchange) - * BIT_10 - Data in - hanlde_data->tcm_qla2xxx_handle_data - - * BIT_12 - good completion - qlt_ctio_do_completion -->free_cmd - * BIT_13 - Bad completion - - * qlt_ctio_do_completion --> qlt_term_ctio_exchange - * BIT_14 - Back end data received/sent. - * BIT_15 - SRR prepare ctio - * BIT_16 - complete free - * BIT_17 - flush - qlt_abort_cmd_on_host_reset - * BIT_18 - completion w/abort status - * BIT_19 - completion w/unknown status - * BIT_20 - tcm_qla2xxx_free_cmd - */ - CMD_FLAG_DATA_WORK = BIT_11, - CMD_FLAG_DATA_WORK_FREE = BIT_21, -} cmd_flags_t; +enum trace_flags { + TRC_NEW_CMD = BIT_0, + TRC_DO_WORK = BIT_1, + TRC_DO_WORK_ERR = BIT_2, + TRC_XFR_RDY = BIT_3, + TRC_XMIT_DATA = BIT_4, + TRC_XMIT_STATUS = BIT_5, + TRC_SRR_RSP = BIT_6, + TRC_SRR_XRDY = BIT_7, + TRC_SRR_TERM = BIT_8, + TRC_SRR_CTIO = BIT_9, + TRC_FLUSH = BIT_10, + TRC_CTIO_ERR = BIT_11, + TRC_CTIO_DONE = BIT_12, + TRC_CTIO_ABORTED = BIT_13, + TRC_CTIO_STRANGE= BIT_14, + TRC_CMD_DONE = BIT_15, + TRC_CMD_CHK_STOP = BIT_16, + TRC_CMD_FREE = BIT_17, + TRC_DATA_IN = BIT_18, + TRC_ABORT = BIT_19, +}; struct qla_tgt_cmd { struct se_cmd se_cmd; @@ -1016,6 +1009,8 @@ struct qla_tgt_cmd { unsigned int cmd_sent_to_fw:1; unsigned int cmd_in_wq:1; unsigned int aborted:1; + unsigned int data_work:1; + unsigned int data_work_free:1; struct scatterlist *sg; /* cmd data buffer SG vector */ int sg_cnt; /* SG segments count */ @@ -1040,7 +1035,7 @@ struct qla_tgt_cmd { uint64_t jiffies_at_alloc; uint64_t jiffies_at_free; - cmd_flags_t cmd_flags; + enum trace_flags trc_flags; }; struct qla_tgt_sess_work_param { diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c index 1bec6ab..af4a198 100644 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -282,10 +282,10 @@ static void tcm_qla2xxx_complete_free(struct work_struct *work) cmd->cmd_in_wq = 0; - WARN_ON(cmd->cmd_flags & BIT_16); + WARN_ON(cmd->trc_flags & TRC_CMD_FREE); cmd->vha->tgt_counters.qla_core_ret_sta_ctio++; - cmd->cmd_flags |= BIT_16; + cmd->trc_flags |= TRC_CMD_FREE; transport_generic_free_cmd(&cmd->se_cmd, 0); } @@ -299,8 +299,8 @@ static void tcm_qla2xxx_free_cmd(struct qla_tgt_cmd *cmd) cmd->vha->tgt_counters.core_qla_free_cmd++; cmd->cmd_in_wq = 1; - BUG_ON(cmd->cmd_flags & BIT_20); - cmd->cmd_flags |= BIT_20; + WARN_ON(cmd->trc_flags & TRC_CMD_DONE); + cmd->trc_flags |= TRC_CMD_DONE; INIT_WORK(&cmd->work, tcm_qla2xxx_complete_free); queue_work_on(smp_processor_id(), tcm_qla2xxx_free_wq, &cmd->work); @@ -315,7 +315,7 @@ static int tcm_qla2xxx_check_stop_free(struct se_cmd *se_cmd) if ((se_cmd->se_cmd_flags & SCF_SCSI_TMR_CDB) == 0) { cmd = container_of(se_cmd, struct qla_tgt_cmd, se_cmd); - cmd->cmd_flags |= BIT_14; + cmd->trc_flags |= TRC_CMD_CHK_STOP; } return target_put_sess_cmd(se_cmd); @@ -377,7 +377,7 @@ static int tcm_qla2xxx_write_pending(struct se_cmd *se_cmd) cmd->se_cmd.se_cmd_flags); return 0; } - cmd->cmd_flags |= BIT_3; + cmd->trc_flags |= TRC_XFR_RDY; cmd->bufflen = se_cmd->data_length; cmd->dma_data_direction = target_reverse_dma_direction(se_cmd); @@ -493,9 +493,9 @@ static void tcm_qla2xxx_handle_data_work(struct work_struct *work) cmd->cmd_in_wq = 0; spin_lock_irqsave(&cmd->cmd_lock, flags); - cmd->cmd_flags |= CMD_FLAG_DATA_WORK; + cmd->data_work = 1; if (cmd->aborted) { - cmd->cmd_flags |= CMD_FLAG_DATA_WORK_FREE; + cmd->data_work_free = 1; spin_unlock_irqrestore(&cmd->cmd_lock, flags); tcm_qla2xxx_free_cmd(cmd); @@ -532,7 +532,7 @@ static void tcm_qla2xxx_handle_data_work(struct work_struct *work) */ static void tcm_qla2xxx_handle_data(struct qla_tgt_cmd *cmd) { - cmd->cmd_flags |= BIT_10; + cmd->trc_flags |= TRC_DATA_IN; cmd->cmd_in_wq = 1; INIT_WORK(&cmd->work, tcm_qla2xxx_handle_data_work); queue_work_on(smp_processor_id(), tcm_qla2xxx_free_wq, &cmd->work); @@ -627,7 +627,7 @@ static int tcm_qla2xxx_queue_data_in(struct se_cmd *se_cmd) return 0; } - cmd->cmd_flags |= BIT_4; + cmd->trc_flags |= TRC_XMIT_DATA; cmd->bufflen = se_cmd->data_length; cmd->dma_data_direction = target_reverse_dma_direction(se_cmd); @@ -658,11 +658,11 @@ static int tcm_qla2xxx_queue_status(struct se_cmd *se_cmd) cmd->sg_cnt = 0; cmd->offset = 0; cmd->dma_data_direction = target_reverse_dma_direction(se_cmd); - if (cmd->cmd_flags & BIT_5) { - pr_crit("Bit_5 already set for cmd = %p.\n", cmd); + if (cmd->trc_flags & TRC_XMIT_STATUS) { + pr_crit("Multiple calls for status = %p.\n", cmd); dump_stack(); } - cmd->cmd_flags |= BIT_5; + cmd->trc_flags |= TRC_XMIT_STATUS; if (se_cmd->data_direction == DMA_FROM_DEVICE) { /* @@ -718,10 +718,7 @@ static void tcm_qla2xxx_queue_tm_rsp(struct se_cmd *se_cmd) qlt_xmit_tm_rsp(mcmd); } - -#define DATA_WORK_NOT_FREE(_flags) \ - (( _flags & (CMD_FLAG_DATA_WORK|CMD_FLAG_DATA_WORK_FREE)) == \ - CMD_FLAG_DATA_WORK) +#define DATA_WORK_NOT_FREE(_cmd) (_cmd->data_work && !_cmd->data_work_free) static void tcm_qla2xxx_aborted_task(struct se_cmd *se_cmd) { struct qla_tgt_cmd *cmd = container_of(se_cmd, @@ -733,13 +730,13 @@ static void tcm_qla2xxx_aborted_task(struct se_cmd *se_cmd) spin_lock_irqsave(&cmd->cmd_lock, flags); if ((cmd->state == QLA_TGT_STATE_NEW)|| - ((cmd->state == QLA_TGT_STATE_DATA_IN) && - DATA_WORK_NOT_FREE(cmd->cmd_flags)) ) { - - cmd->cmd_flags |= CMD_FLAG_DATA_WORK_FREE; + ((cmd->state == QLA_TGT_STATE_DATA_IN) && + DATA_WORK_NOT_FREE(cmd))) { + cmd->data_work_free = 1; spin_unlock_irqrestore(&cmd->cmd_lock, flags); - /* Cmd have not reached firmware. - * Use this trigger to free it. */ + /* + * cmd has not reached fw, Use this trigger to free it. + */ tcm_qla2xxx_free_cmd(cmd); return; }