From patchwork Sun Dec 18 09:02:45 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9479241 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 6362F60830 for ; Sun, 18 Dec 2016 09:03:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4F6662845B for ; Sun, 18 Dec 2016 09:03:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 43F7D2847D; Sun, 18 Dec 2016 09:03:56 +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 C921B2845B for ; Sun, 18 Dec 2016 09:03:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759923AbcLRJDy (ORCPT ); Sun, 18 Dec 2016 04:03:54 -0500 Received: from mail-by2nam03on0074.outbound.protection.outlook.com ([104.47.42.74]:64976 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1759748AbcLRJDt (ORCPT ); Sun, 18 Dec 2016 04:03:49 -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=1PdWWB7Xo1055860ROHGGoM7QvzGl1Una7J49exjFRk=; b=nlid39X1QqUCO2njSjz2fs4PA5GjzDKkQbiVm+RTpazUFf5fcw4E/piZ4ma9S4LmRFOmRWWmQhtFyYMa8f48UBxeaflfIpS6d50kFegdZXFzQyEAzbdPFb4mZuyNswxSthvgSKULVFwCBSaEbzfXioCS0vYFFeXKuo7tojS8pCU= Received: from MWHPR07CA0038.namprd07.prod.outlook.com (10.169.230.24) by CO1PR07MB208.namprd07.prod.outlook.com (10.242.167.149) 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:46 +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:46 +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:45 +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:19 -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 uBI935FV022990; Sun, 18 Dec 2016 01:03:05 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id uBI93498022989; Sun, 18 Dec 2016 01:03:04 -0800 From: Himanshu Madhani To: , , , CC: , , Subject: [PATCH 5/9] qla2xxx: Move Command residual check from qla2xxx to tcm_qla2xxx Date: Sun, 18 Dec 2016 01:02:45 -0800 Message-ID: <1482051769-22941-6-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)(189002)(199003)(81156014)(69596002)(80596001)(38730400001)(2906002)(5003940100001)(4720700003)(5001770100001)(6666003)(48376002)(50466002)(356003)(2950100002)(106466001)(305945005)(42186005)(8676002)(105586002)(92566002)(81166006)(626004)(50986999)(76176999)(107886002)(4326007)(101416001)(86362001)(8936002)(50226002)(36756003)(39060400001)(4001430100002)(5660300001)(47776003)(189998001)(33646002)(2201001)(87636001); DIR:OUT; SFP:1101; SCL:1; SRVR:CO1PR07MB208; 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; BN1BFFO11FD038; 1:0tfol4rg/1L4zlkkVY/EhDzZ+zvqPniOE8976EkDHbC283TvTqEob9POKFyjcikPk3gYlA1JCGRp8/lTOoTCuuNvhzSraB8052c7zd1goDS4vfCdxeF13ZUlL/WcGXEznXcM3u8TbQpkWWuxScaeHRAiR5M63KbjWqjTrhCXwrxJ8RH/ZlhEGtdl4Rhjc38lqp/Jh7mq+nYR1CN60KTWeaPef3Csaply7XbQeSGy/JdVOdWPngpl02dzKxuWN92qVEI40IRHZ4zy0grJBKcENYSx+qiAxHwc4aDPh75pP/EET2B9I9wUYwZUEYIa+g4WQBlIqZKoTD6rlXh2YaEBTRy1vqA+BmeX5UGSregzgkoE/iSFDPld4rLO/7JGEU02tizHOsL4dZFASaYGZchJIDCdBW7tulyDf0cQfVaaG9t8hl2o5jDgFg5ZVbJa9PjJw1CP+2nk/QqeKZ/yAZ+SG844RsLrJtXdillGwJHpCMDfC2VXeWxPRwHfAqUTkYrxycU2bd+TmKYqs4qI51wNkmNEPx4lM27P6kD3HRhgdk0xy8NaZw8jE39NwntY9t2A X-MS-Office365-Filtering-Correlation-Id: cdc27e6e-7d08-4c64-ce78-08d42724c5e2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CO1PR07MB208; X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB208; 3:LLdOHBdkO3xIs9yzF4Dd7MxgwaCt7R2cDaajLnqsCod0eP2D4WISppCfyRR5GfYw6X2mdzEbzfFrOMbxWAGxy+3Hxd7R/eIl1vAo9eC9AMJ7LdIbAOMwT6mrcMLUK77xZQLp3drTgkMMY0IPsVoVf55mjMzxLEiKC15x+5oeo1Cw/3XxTBZPdR8HuM9gAwknXnmgdacQxiSW3RZ1g5Z+yNCo1hBs9mDh5UAUmhlewTC7dRk7GFqYMN9cfzCB2CFWM+qtAEUqIDXiGrFdyxHXenWhl4Wd3FnEcVrUYBae+85svc4LFFkkJ0vD5gvZ2/YdmYl7tGA+8kxaU8e763wcHTpRVJwo/TgdMXLkfdZicgRoxfisGZgcX5hS3iMtYHlS X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB208; 25:8+SJ0/8+OC5WymlZutK6/AvXEyuS0f5STvL7+7ENLIYNP1IBSpNRBHzMl9PyQ65fs9fWLO3iKjS+m5gEhC6he5w4kkbfd/KKDRT05y5uDIZRd8nEt39gS0lznymYfLKIvuXOcGDjntKlgSUxD9f3Q+9+lAaTfFL+tTfar6uVqYp2ycjwr81XfVhyLcQqQcEBowkNmJnZW3NDYH01tjEdkX8+zCfCbo+vmJTWhPfJ3hZZF1oV9cuENScohxyjIxR2I96dIOOWryUo8U+zP45Rw27GD1pmspS7/DUdTPa+iCd697+WKdc/x19+MxHlCid4taJQ84pi9LJ37EtDdQdjzs0gMsbor9Vnn6B1dUYe4JYQhCcryShkmNA6sTPfUb3vf2fzko6+CU9aYJka7u1WnBw+8ten8ZBD2s3yNnqghRmYhZrktf3svM/vqRQIBglCdf4i2NVS2s3afA8opVlNQpld1Vf37skVN3yLqZmU17SlCuxF/QgMNYLpVL+8gGGgmESMVtVPzt2rlICFIjagRTKiWsB2oZuNVvHSFvr9hd6u49FNCCu6f9SWJJ4U3RVCiYzHGvMByyG4ZbcK7yRwrH8hLKmXVnxHTu3iyNEtD2a7Sxv6OfjHibJTME2LaXeF4EJng1RGWU4qIPSv3uI+Xm2/F5CYUPq1WaCYHnyD+QoB6Q4kiD17eSKZEzAd7Ee5aaDjMRHcE70uodaxVvVzfwu2GLZpbN0bjgO8aj2TFIMTDnmjsvV80CIpt1/z+B4XQtUmsZYmNWuswt42hnIPt3ecS/JExMUUcbrkhxJUpJ+lHgP8PZo49UK96MORj4GWpf8BOsU+tzbNCFwxE8xWpzyDq7brsilb2Vx0+zvyynA= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB208; 31:5S3OFqTbwjz5Cu7IDCXuU+5DyBtfmlWrEtbsGOi8qLxKaGT4tzN0MGoWg1PYEb294QgYul1/jmMDx9CWaH5eiBaxj2q4gG6gYeOtnnpZL6OWQxjlCFnvq8p4v9q9A6bWXVslhqHkJhlvFb1GErKfVwUJGM/MUbIEmt3g1AUTJX04w/Y2+oW060ubN524bF9OfD+CqxKvaw7pqIuosn+v/JkWagL7dYBd6S8buO0JMr2joeNQJy8B5+yrJ+/bD4N97vWURQZ8jW5xHK0sLJZF6g==; 20:SazYgvwc8R1FZ+43nM+HnKfFiZ3JirubMakS+GuOC4ipisU9KQItYCLbHZVmGfeAVaKKl3WIrKV8/WMeSaK6vrAZO/INWWtxUbYmWtxjVJpvVeVMSn5dqvZJoNiG7BhyL9qpCFVmxWDgbefuu3hkcTyih/woKvrHaAcEaQrT9OGMlzU+CTEfs7quHD/fmK7H44VEApRGCMVBRGK8oJE5NUMVj3CLztJJudo/xrxLC0nwm/jyZsG8TUyWmmQE47QGPReLOltAfRDi5lOSgYKxsKfFVk0WXrTGxEFJylzK5uflFJc9DbxQCflROW6de10wX0vyoQ6RfztAhWUKCVqMEWGK4HYuxb2OSvCTHUg2TN2J/i7BZujbffolIAoAtJs6f77kW1HhhfF6azHOre29hhsiGNpb7u5ITzocdio1fhUKySArcKIOts/YswtiBFJen2TNwHsOM/CrMaq843c4A5UOjYTCi5NL1jnGUDEYSZVQs2pGR+keGwGw9n2MyaFY 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)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(6072148); SRVR:CO1PR07MB208; BCL:0; PCL:0; RULEID:; SRVR:CO1PR07MB208; X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB208; 4:Fzt4EVk8+FalLWU3kjL9v00NgQS509ct3/1MbYW/1hTjBzBr2JFWZiLbw2UHpe9LL859zNiQsT9mP2wfrykduYvU3DNcB42uTQA8PGa09pz2Z5fqtWmE4nu9cU79y9rbE7u1rNMDN7dHkZBQJeHuwU0gP7AHP2ganEgis4ag3upfevTwwNf//+eLEdcxBlcppBOmhWSQGr38zgiDwFl2zKf9UKtcAYpFG5effeJebXQWHN4F/sJUZo5Ha61bQgeVWo0w/gXZZUQUpDzea/nMlWMYfw9Fk4GX0DweV1joQtqSmrrOAVFmeB6AFssDvZt9V29zeHkTFpd1zCATo/nn5hkUxM3PL/2Z6cLB9WHiuHtIbjCMZMFhqPTTi3sEqHVVSSV02FdaN8NKYQeI+qPlG65BOzKEp1PXPYbxypgwJMxnNWNNlkl4Ke+tzbQM1haQnwjz57XpVh72O+Yk0IukYZAdP+c+vuWyAkVgTAklsCE0J+xZMu2C13AXz1ZEAeR5FuZPDwhpKB6RnLr7d9Y2/+x+simPy7jTUOsRkCwskkvzjyexO4xN4fHw+9C7pJFMvfq1fN4rB7R/l9FbWqbjQoSsjLm9qGzxrzvW95BLxJygaKNrAxcaArRBICB1sgRbwdoV10DBcN7OT33uR8W7R/ql8l6qJP8jtY834SbpE9I= X-Forefront-PRVS: 01604FB62B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO1PR07MB208; 23:IQ1qw7nuzYYPxL5ZDku1qnLztX4nIht0fqqbP+zRFy?= =?us-ascii?Q?qtQmTP/3NUl2/7lzrIIEMGd3RwMptwfKLd0f7EjWmQhwMXga3CxkCccUTVUh?= =?us-ascii?Q?ahwTdoyUqrthgJyZascfHi0Cfo34UHJN1ysDHLYJI4daLphtFk8bpnt9HlDG?= =?us-ascii?Q?Qx2kFubCAnrmwcmSQMSHWjxusG6r19V2v/iaQmyJZdMOYnUUZEicm0SNkr9R?= =?us-ascii?Q?rQ3//UFZqmJ1PiPJoKvM1aH0oxVr+hics4psDB8+DOrRgHH+ynQC/naSZ1Uo?= =?us-ascii?Q?39zeS6lBEIFrtHSDxsYXFap/yvBQmhkq8BHUS2r51r7SpVamtKGrJCUhqaKb?= =?us-ascii?Q?gZXMkllJ/vp3h7ZcTu1I33qBnqnEqzeC53bmvU41Z4WeKeQc7gqH8bRNPevv?= =?us-ascii?Q?fxuNmcv1S2K28QM2iGbWbJdH0Of+VdWQhXbkcqTKWUrHsUFRKsbaCQo8w4WU?= =?us-ascii?Q?NFRAC6UePhp8gNk5ToHrdA6S7hE2I3cSGfX73O7TXyATpOJXkDyyIoO1fUZa?= =?us-ascii?Q?trTMwkb7aWCBt/TaswSqKPohqkDuuyUW2ZqXO++4CTQFZ8lO5saFrXj+C5X5?= =?us-ascii?Q?v5K6GovI6daF4VLuZgGFydM2sjRLkLrDOCw0psmT+dydMDfvJ0QF+nG52S4W?= =?us-ascii?Q?mtnhrh8ZgXBz9A5GBNvf6y4QP6XzHUjEkoT8I91LUgCOlfg5UXFCeEiMyer2?= =?us-ascii?Q?iKDVjwkY2ZZPjymE8hKXNlJdH1zInxk0ySUS0HhyN2Ji6dR5rRuVSAyNKAjS?= =?us-ascii?Q?g4yL/ihMlwB+eR5OPMBlyAW1eP0tGirDskOsi7qXFKjPqahZEgWgKs+IpEij?= =?us-ascii?Q?8myQ7VPrWfxG/7qwzj/hB4ERF6cLZmoPfLta5Y9p6glzb8hnWHSLAWD0bS87?= =?us-ascii?Q?dlzWaXIOs88yMrMOiOXhjb2FGPTIrbIL9kO/T/6PpFdCsW/wIwen9Kgv0bg+?= =?us-ascii?Q?eaAWFFtWNRIR/yPfEKR4s6OZ8SUzLMzimfkBVejaQlW208yZBnKpBNHmuQfu?= =?us-ascii?Q?Ln8CJHmm1e2KPJcSD735KxXSdLXkfnI66ioNN3quMo2HLfVKW2SzsdmhhNSD?= =?us-ascii?Q?4WHTJh84mNnc7gSlJLtviz3sAsz4C5hccqEP5hP0NgOQQO9DNW+uQZWaNFcY?= =?us-ascii?Q?pfEQ1xkFM=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB208; 6:PhG+QjrahltYM/lkRV0U7t/WHr1K6ePPzg+deybih4eiCz1AzV92toIeQH/Gjrw0Jcx535kn1bNZD9QKXe3aYQQQk5wHN8V4o+Hq/6r1cgLkRX5kI6ddUe4zuxL0jxr9OTFNxDf3Z3ZPthPJ/JGrzRoW5Q8ieUBRMPY6gIZ+pvjztYwH2ieTnWLsUHLnrkpA6Vb0o3r4t4bcn4LVCuQbdp1cJwjvqXl1SOkgfAPO0TNXAlIE7/+efs3ZtSAynuaB0vHT67/jZGDdlBmqGpyf4UtJinwh6q7WIcfuZfgmeMY604R08lSFrm1PmHOq+3J+/EIZKflH/rRfRFQcXa60lf8y0vaaLFnpuVuOadIGAnMxMYoe9VKawtQ8bpOs7RCgRfpH3Fw/UC3xDho/HJVfaZcudo2xbLmql1tEB7TB+F8=; 5:BQxcphjJXy/vrRiJTlTNG8bBeRlKen71kv/UmRJLhF8EI4uKossNI6PKfYEV8ngxtHUDpzOufZnsu/407PmHSNGUaM61tLiImedoA/dHxwZc/mckzCTfVqAJQL3kSaq3J4+iba1y8mCbGaRXP1rTzA==; 24:2UBcC1H/Aqeexx5pADMqjb6gHpt16v7LuDRsBPHmNU6gQ5OJchPixWxV9zMTCihu4PZg59dc0FgwNvq/7aNbBnORyJlfMyjg0MSOfZs9Guc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO1PR07MB208; 7:ixq2RX0Uy5X87IFwJpRmp4wtzefqgolelbbMZTscprhoHzhdunwHB+WbiqEbe4gsj3UMJZh2356jLnZOVMvtZ7o3jQxYl7lqjBIkEpuRJu7W6RUvTsAtN6jbKCnCd4TBAn3ToL08Kg2lp72z/XwimnsIqRW+XxVtYqm2tcz90ETRpIqBOu6tpxqfz92VB1tYkQjRhvNI6AMXpMg2YJcsEWznS7xBJEUEttEcZWIki6rZF+rj5EewP7RMU4dCwyqsW5qxDCDXKzq03Chkzr56/SwqbNcORHV43m7mb8VTq+Yrsx4s/F8pSjOntNFDtx9grHmaQwzhOTMbTG+iwB4KgaGTWByGgtHO6HGVQwyFMKZ9Fa8RULrKw5XfEimmquG+PKvLzQiKcxDBhRihJ+hBnfpsi5lYUazlPpqNmFDPgAzHVilQ/uV+M0gS2GuKJVXF3cSomMSneOL0XGcxK2ypfw== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2016 09:03:45.4931 (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: CO1PR07MB208 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 Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_target.c | 8 ++++---- drivers/scsi/qla2xxx/qla_target.h | 1 + drivers/scsi/qla2xxx/tcm_qla2xxx.c | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 8640561..20f1b50 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -2123,16 +2123,16 @@ static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, *full_req_cnt = prm->req_cnt; - if (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) { - prm->residual = se_cmd->residual_count; + if (cmd->residual < 0) { + prm->residual = -(cmd->residual); ql_dbg(ql_dbg_io + ql_dbg_verbose, vha, 0x305c, "Residual underflow: %d (tag %lld, op %x, bufflen %d, rq_result %x)\n", prm->residual, se_cmd->tag, se_cmd->t_task_cdb ? se_cmd->t_task_cdb[0] : 0, cmd->bufflen, prm->rq_result); prm->rq_result |= SS_RESIDUAL_UNDER; - } else if (se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) { - prm->residual = se_cmd->residual_count; + } else if (cmd->residual > 0) { + prm->residual = cmd->residual; ql_dbg(ql_dbg_io, vha, 0x305d, "Residual overflow: %d (tag %lld, op %x, bufflen %d, rq_result %x)\n", prm->residual, se_cmd->tag, se_cmd->t_task_cdb ? diff --git a/drivers/scsi/qla2xxx/qla_target.h b/drivers/scsi/qla2xxx/qla_target.h index 027bed3..305b798 100644 --- a/drivers/scsi/qla2xxx/qla_target.h +++ b/drivers/scsi/qla2xxx/qla_target.h @@ -1007,6 +1007,7 @@ struct qla_tgt_cmd { uint32_t unpacked_lun; enum dma_data_direction dma_data_direction; uint32_t reset_count; + int residual; /* + = over, - = under */ uint16_t loop_id; /* to save extra sess dereferences */ struct qla_tgt *tgt; /* to save extra sess dereferences */ diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c index 7026f3e..ecb4067 100644 --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -265,6 +265,15 @@ static void tcm_qla2xxx_complete_mcmd(struct work_struct *work) transport_generic_free_cmd(&mcmd->se_cmd, 0); } +static void tcm_qla2xxx_check_resid(struct se_cmd *se_cmd, + struct qla_tgt_cmd *cmd) +{ + if (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) + cmd->residual = -(se_cmd->residual_count); + else if (se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) + cmd->residual = se_cmd->residual_count; +} + /* * Called from qla_target_template->free_mcmd(), and will call * tcm_qla2xxx_release_cmd() via normal struct target_core_fabric_ops @@ -701,6 +710,8 @@ static int tcm_qla2xxx_queue_data_in(struct se_cmd *se_cmd) cmd->blk_sz = se_cmd->se_dev->dev_attrib.block_size; se_cmd->pi_err = 0; + tcm_qla2xxx_check_resid(se_cmd, cmd); + /* * Now queue completed DATA_IN the qla2xxx LLD and response ring */ @@ -739,6 +750,9 @@ static int tcm_qla2xxx_queue_status(struct se_cmd *se_cmd) cmd->bufflen = 0; } + + tcm_qla2xxx_check_resid(se_cmd, cmd); + /* * Now queue status response to qla2xxx LLD code and response ring */