From patchwork Tue May 23 23:48:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9744471 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 EE5DD6037F for ; Tue, 23 May 2017 23:49:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E15CA28818 for ; Tue, 23 May 2017 23:49:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D632F28854; Tue, 23 May 2017 23:49:54 +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 2BF4628818 for ; Tue, 23 May 2017 23:49:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031788AbdEWXtx (ORCPT ); Tue, 23 May 2017 19:49:53 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:46459 "EHLO esa1.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S968841AbdEWXtd (ORCPT ); Tue, 23 May 2017 19:49:33 -0400 X-IronPort-AV: E=Sophos;i="5.38,383,1491235200"; d="scan'208";a="122509170" Received: from mail-bn3nam01lp0183.outbound.protection.outlook.com (HELO NAM01-BN3-obe.outbound.protection.outlook.com) ([216.32.180.183]) by ob1.hgst.iphmx.com with ESMTP; 24 May 2017 07:49:04 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KD3ledqboMODMsjyYgnSYcxATUsX43MgX5oAPQu7TcM=; b=SXtRUps3ZYY2uXifw2uM/J2XRSjSInaxm8UFjNF/WyTrBWa42NTHZUWNJIDcyBUu0NAaK2rFoKHyllEuR0OxPHLmJi2HUx8IqcbLOstYLir5NCEDRg5MmsPi3J+mNCYRE+SF9WLEHayaG4wWcA9QhKju9hmAeyFLGHacyzYRTVI= Received: from MWHPR04CA0035.namprd04.prod.outlook.com (10.172.163.21) by DM5PR04MB0507.namprd04.prod.outlook.com (10.173.170.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Tue, 23 May 2017 23:49:03 +0000 Received: from BN3NAM04FT036.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4e::208) by MWHPR04CA0035.outlook.office365.com (2603:10b6:300:ee::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9 via Frontend Transport; Tue, 23 May 2017 23:49:03 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.225 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.225; helo=milsmgep14.sandisk.com; Received: from milsmgep14.sandisk.com (63.163.107.225) by BN3NAM04FT036.mail.protection.outlook.com (10.152.93.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1075.5 via Frontend Transport; Tue, 23 May 2017 23:49:01 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 6A.64.19026.C6AC4295; Tue, 23 May 2017 16:49:01 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.8.100) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 23 May 2017 16:48:58 -0700 X-AuditID: 0ac94371-41ba798000004a52-00-5924ca6cdaa7 Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 78.F2.18148.A6AC4295; Tue, 23 May 2017 16:48:58 -0700 (PDT) From: Bart Van Assche To: Nicholas Bellinger CC: , Bart Van Assche , Hannes Reinecke , "Christoph Hellwig" , Andy Grover , David Disseldorp , Subject: [PATCH 04/33] target: Fix BYTCHK=0 handling for VERIFY and WRITE AND VERIFY commands Date: Tue, 23 May 2017 16:48:25 -0700 Message-ID: <20170523234854.21452-5-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170523234854.21452-1-bart.vanassche@sandisk.com> References: <20170523234854.21452-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHLMWRmVeSWpSXmKPExsXCddJ5kW7uKZVIgzWnmSz2z3rGZPH1/3QW iwVv9rJZrFx9lMmibfUZRosFGx8xWrQufcvkwO5xf/sRJo/dNxvYPN7vu8rmsX7LVRaPzaer PT5vkgtgi+KySUnNySxLLdK3S+DKmDv5H2PBdvWK/qUTmBsY38t3MXJySAiYSBw40cXcxcjF ISSwlEli5qaJjBDODkaJd70b2GGqZnXMZwOxhQQ2MkrceBYAYrMJGEl8ez+TBcQWEdCRmHX3 BTtIM7PAV0aJxr1/mUASwgKxEo2vO1hBbBYBVYlN7+8zg9i8AvYSUzZ8ZYFYIC9xdstOsDin gIPEyj3bgGwOoGX2Epe/K4PMlBBYxyoxe/4OVoheQYmTM5+A9TILSEgcfPGCGeI4dYmTS+Yz TWAUmoWkbBaSsgWMTKsYxXIzc4pz01MLDE30ihPzUjKLs/WS83M3MUJioXAH4+vb3ocYBTgY lXh4ExxUIoVYE8uKK3MPMUpwMCuJ8C7fABTiTUmsrEotyo8vKs1JLT7EKM3BoiTOmyU7NUJI ID2xJDU7NbUgtQgmy8TBKdXAqBE0N/+2rrlnfxeXyHUjzj8yhX8WXHXwcuNMYU+T29yjNtd6 VvrNF2W6U2bLvdU8Fue+W7Hqq0zS3dCyoLC/kxN+Sm72PXj0Qs2fnW5Kb6JfF7z4m7lv8luj XD8n7pod7FstPvGIlzMcVGvcGe6m5BETceKizJRvModepE9OnrqlsCE/+sw/JZbijERDLeai 4kQAfP/FxIECAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHJMWRmVeSWpSXmKPExsXCtZGTTTfrlEqkwfOpIhb7Zz1jsjj4s43R 4uv/6SwWC97sZbNYufook0Xb6jOMFgs2PmK0aF36lsmBw+P+9iNMHrtvNrB5vN93lc1j2prz TB7rt1xl8dh8utrj8ya5APYoLpuU1JzMstQifbsEroy5k/8xFmxXr+hfOoG5gfG9fBcjJ4eE gInErI75bF2MXBxCAusZJfbcOs8IkmATMJL49n4mC4gtIqAjMevuC3aQImaB74wS1+btYQJJ CAvESjS+7mAFsVkEVCU2vb/PDGLzCthLbPt6hBFig7zE2S07weKcAg4SK/dsA7I5gLbZS1z+ rjyBkXsBI8MqRrHczJzi3PTMAkMjveLEvJTM4my95PzcTYyQEIrawXh9ovkhRiYOTqkGxuVd 2ReV6xRb9m97/rFD5Nvjv6fX7WX0sW5KSb0keY53ZZOb/SP7vAfPvp+4YFL8S5JtJ8eZyV52 gnlfXmwybZOpmPn5i3yX7a+pNxxMg1r+PBRIvpa09Op1hdaUPcvnvFX+PH/eJWGlR6lsT0zj FTi+rVQNCc6/xXb0J9d0B8k3G7j1ZsnPMFViKc5INNRiLipOBADq/hdm0QEAAA== MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.225; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39850400002)(39840400002)(39450400003)(39400400002)(39860400002)(2980300002)(438002)(199003)(189002)(9170700003)(36756003)(478600001)(50466002)(356003)(4326008)(1076002)(5660300001)(50986999)(6666003)(48376002)(77096006)(50226002)(5003940100001)(2906002)(15650500001)(305945005)(106466001)(33646002)(110136004)(38730400002)(54906002)(53936002)(6916009)(47776003)(76176999)(2950100002)(72206003)(86362001)(81166006)(189998001)(8936002)(8676002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR04MB0507; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3NAM04FT036; 1:tre/CTWDIucCG5XT9hjajQ48vGRxR57FFoZvdCuaD7UjuFTf692t+lIAXsNUMmdDI48E2vsgRiX1a9N5Hh3dyaQ78dQRQMiyyTjHPl6hLJXBsqr3L/DZfZ88Vu9fw9uooQeehODhcGN5S3V9jL3exflnarN7ux9NjqhNBvowRSQ+e5jePXjyds6Zf1n5wDcN5WhUue61N5rcno3nhy1DCP3rCXFqlDh8fS1Eakc5hCO1yiYH5SnPGlw9dkAMY9PwqZ4uLNLatOgyGWcCOM0VDa2ByXu3h6irMpZ1ycYltF6LLVBw9n3A4du4KbT4/9Xh+AmCNYBctBJiFTv4f+4eh7qXr1I2uOoV51ecORdEtT3SelhZyTJxzMrgV+Ckkr0twiLus/Fkh/zj3gupSqNfDG1YVhYC6GsoWTB/wf9MKXGal5GlI8AAXHEeUR6Vqi/ssiBRJCk0Xa6nS3/dqUn/sRijqv17lHCJ3xmZDMfSV0mFa9TmhXaYyM4ApXy9kvTy/+k4VprnPxG2bi0P+qZPEpRPEDgRiYWEPrLX1DH1IoU= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR04MB0507: X-MS-Office365-Filtering-Correlation-Id: 0f603e81-cc27-4ddb-3767-08d4a2364a38 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:DM5PR04MB0507; X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0507; 3:+W9L7dE8AYTKP/ciWbkIyhLdPIeZ4CZuJsOJxuXffJG4VpCCDr+f6+GwWAuteTkdqEIQVULj5IebTYhVNDoGPls2q0pAEn31AFU8y282A7PtcV7IwvzYGLZ5YoM9WBxYnksmc9SSS6gX23Ti5vBMLmlfin+qzN/fbiufAoH325nNC8JycWjwdLBWEJzmxXBqJImBI2gudSYc4bfAJIeD5DK5fi+n31rsqRlNNTAKY+poYOXbVr7x9mno7uJAdgRygY4rE1yHroRmvGLcxM3G50+AdTessguDJZnCeZ+JS6Rq8AD1SQ169fVfxrTurzgF+ebv1XxMJgKpelj65qi55HY8RUJsgBc+JaAm0+oPsf4jXishyfBgie6QTNU3/IncLbEurMEbH2+QohodvklrvYIBadfBEe0jhWsS6C7O1IS5bnTos0JbnwhVKcKmmLId84noeWw0lum671uqb0QO71ISjoYPg42g6ZqV2dVW6sfzSTcZg5IbzKAUc4vtV5fx X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0507; 25:nuxg8DY2iox01Ux5GEkvJbqb37sKynle8rcgugfoI8o87yXYplySeXs+UuHreJ0maZLXpK/VJDqd1GMVxA5v2r3dZbYHL4sOVzGDPp9hNoxOyxBTWpvT4QRVefY7wOLUxj1YdPsJ5xPQaW9ZqnVVUXAdyakuatIAucg61uzpsrG05AThJTD0GKF0Ggit/E7943SPOnM9wnyIRYqFzbekRZFPdOLt80vUE0lvLGYnbf47OYPjGSVC6gbOx6VH/GC7/C9GlqynFdfDYHPmzaYmOsSgndh0jDssV2FssmiYsxDpCH4S7NH1eCNpbLEIyPdVHDaCr4t/Dhutjm/lA0mo3OQSJUHY8lHYU6/xbSvl+O0RlQZazsBIw2aGbpfezr0TGtnJVQJZd4ieGNgY4f8IrYUW4O9Qj4+VPmTqOYESUO48nriYW+B4wilJZ9um8jLanvpqoQZneTfGhQPOaRF/IXuIkxzzKrXx7RdgHgsPws8=; 31:PnpMi1GcMC6XjGZgPPN+1sCeA/vASOx+tirx4hqtrn0DFAp39Wi3urrckW1VVt7uJnomqhIeqwvjrI8qF+Lk7zs0s7Tyr3x3H9iUyyKo1y7gdG8JbiPdLcUcnvOA65k93EznNZ9rAyImHgX/hx5zmMN9XHQI001HRDU2EHogTXivETJUgcZUcu631pfweJmBZkleYVb7vF+ghmQ1KQn2vNbH0/fef6DnKI+roBfDzJJumcsJfAWo+5DuWdOIHHdgDOluhFN/F7mUdZISlkPPag== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0507; 20:dsDtsSSv9xcNWK6/o24k3c1KKpWcJqsfFYqkVXgAkoYUaLvvuEAMfiNNZ0I0saDs0ixBX7MMY0mj1mtVYB3Tl10EVxsJGMTDYZIRPK2VwFCEMtWuedHtdKJwevBx1riE9OBTPUF0fAN3ipeI+oN5W74e9nUQT3/UGIu6Pk3lvRPymQmT9uxkE4kBSIkuWfn8sl2jQxxu/9L8p9j4lt4525RamwPkFbUOtJNCJoLR6y2oSWJbz9Od6az1zfXIyQN2q4B6Jcc7JPTlPewbMtaz4CrGKgx6jlKpcOaoVoluLfpz2p25DX96u/dEZ1wXAT7o641zbV8cCsaGup9UvBdAzM4nrydOQCUHaYgllAn6KO31FN666d5tTQI+iuAEOonmb0T8ovCrSfDOYeQtmSfeIp2/e56Anq2nrQYJIU891excujzKxj7ap2HzoNKJgIUGSvQK1TPuL4uXgdFC+WB0NpcWoQ2ks9qZ7eWyjbVCoBTVfMxpazkjS8FO0hp/c9Bq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700051)(100105000095)(100000701051)(100105300095)(100000702051)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(3002001)(93006095)(93004095)(10201501046)(100000703051)(100105400095)(6055026)(6041248)(20161123558100)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(6072148)(100000704051)(100105200095)(100000705051)(100105500095); SRVR:DM5PR04MB0507; BCL:0; PCL:0; RULEID:(100000800051)(100110000095)(100000801051)(100110300095)(100000802051)(100110100095)(100000803051)(100110400095)(100000804051)(100110200095); SRVR:DM5PR04MB0507; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR04MB0507; 4:DEtz2yj2sdiPJWx4VZIEfMrOSQV8u4O9c7FcxLi5jv?= =?us-ascii?Q?DPE4Y4r2RvJ+nhbUgeckQshhqOrabr7sF5DkkNchWNbgMKwZssYgJYeiS4DZ?= =?us-ascii?Q?kAmPlaZwYj6i37FmjL2ZeQS7w47DvT619ieYeGFFxgaU/ED141ddI57NmkG6?= =?us-ascii?Q?9PrXyO0FEc0r38Zs3l8gs7zaOUyZbSAFvMvM15w59Ip0CjAPEquTldVLSIHi?= =?us-ascii?Q?vi13k70XiwLtSsj1oHJzx+HEND+RHPJ1/iO2s8MVoYHhRe6L7cgdfX8DpJVc?= =?us-ascii?Q?WiLPX0cVZWXJ1ZYMk0bGY4icysUqe35i400DVrXkTzvcrXlKdQ3EaRwmrwQk?= =?us-ascii?Q?g/IhXCy8CaaUhKy02hD0Zj5/fuhFXyidCqVc6j9ARKehdqEvFVyIQb5sNM67?= =?us-ascii?Q?1zN8icKQ41WxgZ2NJyi0GSS5OiIvKUWiMTm3PKHlU1cra/JYM/v6oQWIRkd0?= =?us-ascii?Q?yszOFH0nxhU2hdaDN9cYBe3Axlfvcx+VjqvNu3DatuB7ZYvR+ctQSJTC7waQ?= =?us-ascii?Q?OxveHZeZCjienWxu52fQqHe1WAHlPAfn/g3NKqoYY6lhktTRidQQJQWl+udw?= =?us-ascii?Q?eO0zHMnIqgnkOPq7CjP8A4JegQs8rfuQdJZk+SGaY0SEspApIV6ZlHtWInPr?= =?us-ascii?Q?hEQHI87rI0KQWqjQ8q8163FVikYw86UzjiJS+1mjEnZOJRin7GT/ryvexU9h?= =?us-ascii?Q?pCm/oS58h55gx2z8GcRt5f8PrawbUxtTl3gkIntdctyYizkyBGrVP48pW2ZF?= =?us-ascii?Q?zVUvKD9qdMoq/ZgcR5o2mgVrR4yQNGAjVfS/mIbU1Pc6iaXCa++Rj1QeNkNV?= =?us-ascii?Q?pf2PU/LxQgzCSOf23uovYRmsQLyDrWFQLamMSaksBK+/9jQ1pFFlaIljNB7R?= =?us-ascii?Q?cYGEJwZ3OBtMkcdyOCLDbUOOqY5gS072wW71BBH5kGwahO5Ex2IsTz515J+x?= =?us-ascii?Q?Vd7P90dU+uLBgXNT3weB0LQf5eixKvW3zf6cufcsptz4mz3z248x5MKncFm5?= =?us-ascii?Q?fPdTP9GJ7mPUfIWQBAXccBH4xGcnwORDlgbP/QSQZMGgcZXcn6YGZi87OkJi?= =?us-ascii?Q?7PMoHMPS9hlbTaxS9dUA0jwCoAwf0Ph+fcVsJEPfII3u8T4UbVwksqYwDo0q?= =?us-ascii?Q?KEyi5tvNHaiKEu3n5DdU5zz0c7ytr9p+Bhgp2UE+12WPVXtSLWhLPmX3dMeP?= =?us-ascii?Q?4NkzRYOvi7d1VR2gkkbPx/u0yl2B9aMTiR5JZwNBgylVwPAi7mLHA+3rZPC7?= =?us-ascii?Q?mB1gePQMWmqmwlASNBBdv+lt3imEuHC6AJ3yWh?= X-Forefront-PRVS: 0316567485 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR04MB0507; 23:6coLNmd3Gx/AiGifXolU3hHXd9kr/U2niF0y7aKjO?= =?us-ascii?Q?T56P9Htq3IRxNddGrJp7hz+6JO+64j643DouotmSlWqUBGHe0L156jFWEeyr?= =?us-ascii?Q?9PnTJjC6YodzQfU30gLgH5hvokr5eUvxMzGVrPto8yznETZYelE75I+r5tUR?= =?us-ascii?Q?hZYd0KtVZn9LPdze4M61TQfw8xagy0brgYmL3FYYEzBlRR0SAPzql5zShiVt?= =?us-ascii?Q?Gry70+EFQUXLWHU99Xw3FZb5dEk2SfAobscPK23D+zOhzsywoehFES8vUSZi?= =?us-ascii?Q?2av4nWdzgkNqvglri+3nCxj5AKB9m1NT0CzPgS2aN0gSf1ySjdKJtZaV7AYx?= =?us-ascii?Q?WWPaSQ1OPkQ5thuI4TQTUxcfkejNGconOuElpiWPugSRUxziWlZFYbuJyKr1?= =?us-ascii?Q?wy2u7zkjfoNd4kyBzu2YcAGbQfPLWurniEVGrvauZu+hQIcnbdU9iMbJzKbl?= =?us-ascii?Q?AK2XflT6f6bHw4PidNF9SK7vS3eSvssEK7IcO/iDap3RhopIOZ6axBcXLLpa?= =?us-ascii?Q?4Fm5o5y7jNMvmMaLtIbL2PNCz4/q1o6rKXNM0A/KxI5Uko6HJkB7Lral91/T?= =?us-ascii?Q?qBm2v4xmDogFmyY8pscniRP6O6M3nd1fZNJ8fek18nl3aTpCT2mKZnK02/Gq?= =?us-ascii?Q?zIpLhuY25PhfQKpJQH8FQxkqmYgmsCm+0KiOTZWRrE7FQZu/nu6ti1ynA6A6?= =?us-ascii?Q?l0U8IEKB/t5iPhtvECG86a4cqBjRx4X0xYeELshhMNR+CcX0Jg2Y+p4mLJnv?= =?us-ascii?Q?Mt0BDYoE2p8vAfMjkH+56A4kYZD6GM3ToXRFbVn0PuXWw7BPJRM4iVjQOAKJ?= =?us-ascii?Q?fSKyc4sKcyMsdUR1geF00f/oDMEGvkI1Tv+xF66rROcCO3infp9MeHFIkhQs?= =?us-ascii?Q?+Cm0xnm0NBDmNqvVJi04JXAmm4uoCfHSp6cLl74ajmseHiBnnT6s9Aum3ij2?= =?us-ascii?Q?3Uj4QcjypZHfc1nGqg2+2wBns1otq7WlS9zer5tI2UsBDFPnA0lPuugtnlEW?= =?us-ascii?Q?pdGntY9TCFZuaucKPwoWUhivS242rXnHhk/vXHe4Ap8PGNOAZiBToZbRhoex?= =?us-ascii?Q?2/bPmIbFmYCJJMdlM84NNvLRVGXJ8H8k3Z3NeHD+1lW32ZKg4mUtQjdqI9Tu?= =?us-ascii?Q?6c1W+Jt8MH084XLmru0dqXIwUBnBqzG?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0507; 6:H3XhANNm2bKjY9wsbuk8ZUqmGSg8eQNwPupqRWAsEeiCs8H7PoNKSoZFI/4vpSzp6oXnGJtDUvyJyQSHCvg7EUQ9GgE7l8YKco8n1bcphz/uoJQXQDXUyOkYifpxKPGGJQbLYuvjXS3vcb22Co0OuEH9rB5fGWyHYaFxfxOFPTiFfwW+9vP15m9R1ON5DbhUOFZGjG5AeOW7YCgAgwkt6MwT5pVti9uKCruCh/lryJXtCRKqCCUSuJJiMAK2M4t9BVXUUV55a84tJ3tUGr+Mo35cIQcxJwyPXHcbuJ4JxcIjUx4SWxt0JuzhXiL2Q2D/hH5HlirfUsCltsLNJmuZC8JvPFf/10yflSCJC2F4xs2xAksOGD2jucMSRQTjz44sfdr7JRMW2F+SeJ/2q+P1MXccDrQ4RGhIQLPPnOTZFng3FEHsNnlmBKWL3fwAAidb+j5GG5N24wc+Fy5oSFJ1sFePoBUpcWWYE6g+8P89zKo8BEa7H2/eQ6Q9e+W/ifJ/CaIkCM5Xb5IoCZMQjvl5ldFLMHehtoRcSkwlKU78Ggo= X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0507; 5:ahtaJLQlkqvXayfbkZjjhwY1gnokiIdn/PUbZW9Rj2HNG8ZzhfOlwf57RQK9gst7eKj0Ifrd3BmMIBs3hEejItp14DIvGVe+d6CpoQ3DdKHCj3UzJGxmyRUZZpr8jW+DzAUI5hw6dTN33sLuMGXNlRHEpgYZdsxrehL3PR4d3iAYD0I/cVI3edJ9XNUgNjcIlR2Jv73AHrF27Zs7j96gAAgWiKBigTFF0JaFtbzgedVJWyYeLhE/usba9BkQBvxqa6uPm/flmRdf16/zR9lHAR3Srw+/fYG4faglM5YqSZtyteeylFOOjO7P+Ga+XUPdyIbiRS4t6RZ2UFcUhY9eo+LN0z+RtQBniex8MazSyFmE6vDqg3mo9HSXkEtKj3AYjQoJQPhw0sjj7ho/IdcF23TfXDr8FKDaDyCYdyx39VpUVds9Fb/qhgVjqshhd+ix+BPeuwhaIjxCbO3J2+zzgw==; 24:3CL/9FGWWnBv0ZqO/al8LTFkkr4CqMjanDe3B1Ta+IQqT4UCiJJ1TJCuI/VPPF7mgQJDbmGiGEtstNdrus3nykEAGn7t/P7pU1iZBShioow=; 7:6jHqy2yQbLDYFjB8JkYJn0FTnKAur8wULwYSBVUT2IdCilMqyqoj8nLKO/G2gYciv/Zs3R+WVPjiQBJbGUToPzqGYCoqFjXaraPDKSozyFq44TuXTOKMSSbvaqrnaO4uG3/w+XkTT2oSmC+riypLB9K3Po8TPnsOuUNmgokdCzrrIneqBFNeSt9v0BFGFG3fnz37Mqa0yGXh1d85/2ZyLMLbSZsq1J+KgO9UKyykNQ2FW2I1XmdV1KkKvVou7M6EkCbjhE3npBvtV33+3V8Qe8zIJEltziPU0jSANKECdZ/S6ZixdI0wujr1p/kbt3E2xz1DURwJY0fdqTzjCX+kSQ== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0507; 20:PwvR/UYZgG5iWPjuROzxJmM63GbO4R8n/r6sqPG8gishHx76D9jpGX4SAPcOiKpxSzG19gtNXsoSrQfO4FKynIgMqI0x8R/tJu6wElmuIZJDnAm1sRXPsbmM2SwI2RSOr83yBUb8LeamgTcgsQePsCrsrM8Je8O3/g2rdbkRcEc= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2017 23:49:01.6808 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[63.163.107.225]; Helo=[milsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR04MB0507 Sender: target-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: target-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP For VERIFY and WRITE AND VERIFY commands the size of the SCSI Data-Out buffer can differ from the size of the data area on the storage medium that is affected by the command. Make sure that the Data-Out buffer size is computed correctly if the BYTCHK field in the CDB is zero. This patch reverts commit 984a9d4c40be and thereby restores commit 0e2eb7d12eaa. Additionally, sbc_parse_cdb() is modified such that the data buffer size is computed correctly for the affected commands if BYTCHK == 0. This patch is the combination of two patches that got positive reviews. References: commit 984a9d4c40be ("Revert "target: Fix VERIFY and WRITE VERIFY command parsing"") References: commit 0e2eb7d12eaa ("target: Fix VERIFY and WRITE VERIFY command parsing") Signed-off-by: Bart Van Assche Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Andy Grover Cc: David Disseldorp Cc: --- drivers/target/target_core_sbc.c | 79 ++++++++++++++++++++++++++++++++++------ 1 file changed, 67 insertions(+), 12 deletions(-) diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c index 4316f7b65fb7..51489d96cb31 100644 --- a/drivers/target/target_core_sbc.c +++ b/drivers/target/target_core_sbc.c @@ -831,12 +831,67 @@ sbc_check_dpofua(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb) return 0; } +/** + * sbc_parse_verify - parse VERIFY, VERIFY_16 and WRITE VERIFY commands + * @cmd: (in) structure that describes the SCSI command to be parsed. + * @sectors: (out) Number of logical blocks on the storage medium that will be + * affected by the SCSI command. + * @bufflen: (out) Expected length of the SCSI Data-Out buffer. + */ +static sense_reason_t sbc_parse_verify(struct se_cmd *cmd, int *sectors, + u32 *bufflen) +{ + struct se_device *dev = cmd->se_dev; + u8 *cdb = cmd->t_task_cdb; + u8 bytchk = (cdb[1] >> 1) & 3; + sense_reason_t ret; + + switch (cdb[0]) { + case VERIFY: + case WRITE_VERIFY: + *sectors = transport_get_sectors_10(cdb); + cmd->t_task_lba = transport_lba_32(cdb); + break; + case VERIFY_16: + case WRITE_VERIFY_16: + *sectors = transport_get_sectors_16(cdb); + cmd->t_task_lba = transport_lba_64(cdb); + break; + default: + WARN_ON_ONCE(true); + return TCM_UNSUPPORTED_SCSI_OPCODE; + } + + if (sbc_check_dpofua(dev, cmd, cdb)) + return TCM_INVALID_CDB_FIELD; + + ret = sbc_check_prot(dev, cmd, cdb, *sectors, true); + if (ret) + return ret; + + switch (bytchk) { + case 0: + *bufflen = 0; + break; + case 1: + *bufflen = sbc_get_size(cmd, *sectors); + cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; + break; + default: + pr_err("Unsupported BYTCHK value %d for SCSI opcode %#x\n", + bytchk, cdb[0]); + return TCM_INVALID_CDB_FIELD; + } + return TCM_NO_SENSE; +} + sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) { + enum { INVALID_SIZE = 1 }; struct se_device *dev = cmd->se_dev; unsigned char *cdb = cmd->t_task_cdb; - unsigned int size; + unsigned int size = INVALID_SIZE; u32 sectors = 0; sense_reason_t ret; @@ -898,7 +953,6 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) cmd->execute_cmd = sbc_execute_rw; break; case WRITE_10: - case WRITE_VERIFY: sectors = transport_get_sectors_10(cdb); cmd->t_task_lba = transport_lba_32(cdb); @@ -912,6 +966,13 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; cmd->execute_cmd = sbc_execute_rw; break; + case WRITE_VERIFY: + case WRITE_VERIFY_16: + ret = sbc_parse_verify(cmd, §ors, &size); + if (ret) + return ret; + cmd->execute_cmd = sbc_execute_rw; + goto check_lba; case WRITE_12: sectors = transport_get_sectors_12(cdb); cmd->t_task_lba = transport_lba_32(cdb); @@ -927,7 +988,6 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) cmd->execute_cmd = sbc_execute_rw; break; case WRITE_16: - case WRITE_VERIFY_16: sectors = transport_get_sectors_16(cdb); cmd->t_task_lba = transport_lba_64(cdb); @@ -1110,14 +1170,9 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) break; case VERIFY: case VERIFY_16: - size = 0; - if (cdb[0] == VERIFY) { - sectors = transport_get_sectors_10(cdb); - cmd->t_task_lba = transport_lba_32(cdb); - } else { - sectors = transport_get_sectors_16(cdb); - cmd->t_task_lba = transport_lba_64(cdb); - } + ret = sbc_parse_verify(cmd, §ors, &size); + if (ret) + return ret; cmd->execute_cmd = sbc_emulate_noop; goto check_lba; case REZERO_UNIT: @@ -1158,7 +1213,7 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) return TCM_ADDRESS_OUT_OF_RANGE; } - if (!(cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE)) + if (size == INVALID_SIZE) size = sbc_get_size(cmd, sectors); }