From patchwork Mon Apr 24 07:51:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damien Le Moal X-Patchwork-Id: 9695777 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 4F6FC601E9 for ; Mon, 24 Apr 2017 07:51:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C023267EC for ; Mon, 24 Apr 2017 07:51:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 30E2526E16; Mon, 24 Apr 2017 07:51:42 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI 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 429B026CFF for ; Mon, 24 Apr 2017 07:51:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1166259AbdDXHvj (ORCPT ); Mon, 24 Apr 2017 03:51:39 -0400 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:8132 "EHLO esa4.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1166253AbdDXHvh (ORCPT ); Mon, 24 Apr 2017 03:51:37 -0400 X-IronPort-AV: E=Sophos;i="5.37,243,1488816000"; d="scan'208";a="13405419" Received: from mail-dm3nam03lp0023.outbound.protection.outlook.com (HELO NAM03-DM3-obe.outbound.protection.outlook.com) ([207.46.163.23]) by ob1.hgst.iphmx.com with ESMTP; 24 Apr 2017 15:51:36 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-wdc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=35aARrcIA4h50cOTphH/vHB+Caqneqn2SddW5lyNpTk=; b=GrTRBTyAJVQDap9V7zpl980+2PkTXbyvMblupAU0OATb6xeNMFkYzD5/xg2ZREigUIobTouEm48RcL6BxXNPVV6YLBDM1Ee5Uv+xxhXqM0fgjr0lK6nFYJxwRJKkUKQ5LJ0g+MDBoR9euhvJuBQgDZumRTngchXlVWW7RLZS8T4= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=wdc.com; Received: from washi.fujisawa.hgst.com (199.255.44.173) by CY1PR04MB1980.namprd04.prod.outlook.com (10.166.191.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Mon, 24 Apr 2017 07:51:32 +0000 From: damien.lemoal@wdc.com To: linux-scsi@vger.kernel.org, "Martin K . Petersen" Cc: Bart Van Assche , Hannes Reinecke , Christoph Hellwig , Damien Le Moal Subject: [PATCH v2 3/7] sd: Cleanup sd_done sense data handling Date: Mon, 24 Apr 2017 16:51:11 +0900 Message-Id: <20170424075115.30337-4-damien.lemoal@wdc.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170424075115.30337-1-damien.lemoal@wdc.com> References: <20170424075115.30337-1-damien.lemoal@wdc.com> MIME-Version: 1.0 X-Originating-IP: [199.255.44.173] X-ClientProxiedBy: BN6PR1401CA0004.namprd14.prod.outlook.com (10.174.237.142) To CY1PR04MB1980.namprd04.prod.outlook.com (10.166.191.16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 59903bb5-c0b7-4bd6-80b0-08d48ae6ba92 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:CY1PR04MB1980; X-Microsoft-Exchange-Diagnostics: 1; CY1PR04MB1980; 3:zESqaMQmrP+flQCqSp6Pieh/VgvvseR/iZDvyoaYHEDyfa+bqQCKwDmbkNYkWUsKMtUKLp9KzXjO2qiJs6r1c1gdOnfw0cia2aMRyXM/hvo/W91S0FlLiiRKrfvIv8WNwCnjbDwFzDIQ6yrxGHPlIXWfPdPfxYkqF/rpiIu9K0t5kAQYgvFcuYziLrCjeRQU+naSyMrKloy40Yf2xnHUEph56f5bdzp/C2zapAw/BjGKYYaImFkbT6R7HHyHaymt0ATlaCG7NLxZZE9g2jnjlqq3udfzwt9wThLiC3SrZu9zidVstskO47UdSbHMj1umsZbHHeyHjyHeLYYsZR6IxRiQJH1UnMHREDfXKTxtcx4=; 25:zNoWTIDh4ZB82edsQYQ/A2jgFONHftu64rfe2qWdS2LtId0zBhfd//EQ40f6IqBIac2dJcKebVM6NpwEzid37SOiFL4+Br6IfpOkgzXnLNbmSZfjhk/cyID5MpVkinMVdi4Mt7OpncPUfgJaRM7HL0E6HTh+6LHtrz1PArpXLFT7olkbX/lTQMCZGuk8UWXv5nKy5hSc1/pmiE4iEfGfCbY4u8ejXBFjIecWlAAlkAmSXITcfgs9KcaIyFRVtqQyRFYWglzR4I67LKPWCl7PlRbuAi6+r9eaZpU0OQuPC20+hlLNID1lCzjUib22DWqkihlsU5y73H/NQg5K09ScL9vyTzO5A2AOTgDMqxBSo19w0jOYMTVHiSFLiwDQHtHhVNhS2nBUodoVWdkFPMJF8sNAaZENnr1yzRqk/zT5/PKpk0ZiwbvaZxG28tiKiX98SbqCSYwvQzXIB6H6TOeqQg== X-Microsoft-Exchange-Diagnostics: 1; CY1PR04MB1980; 31:gAYKrgG03miltOxTM3e7FlJuDqFVDGe8Xc3egiqaa+T+UIZFujCvRYcTLprt2ctfKm1iiDm8gh+B9biDfIKbLXQp7Ne5BlSzRUD2p/An7ZEGE5wVLd4tbpCY8wVegcUTNJqaCML4FK0aVz1nvXebITvgHtusgnJxtQL76MeukHaqgWM6/7D7TJ4SwQ8NJoY+x0aqtXosvUdszMipj3UjYo6yJ/2ndzK1iiyG3JBMzno=; 20:EDXeL3oUNL2frnLbpw0R7gR6cofRowU4nGw6yRp291IlI4F3/tba/KVuN1t/H0yPlifM9ClUJERBsDnCLbrZtVJcFk0zph/RHToQVLR/rRW5axZZoSVjuo2n9wkITRFP6sLLUFVbJX+A5fNRBrQMhoqFj5N3wfaYWc3O8SRdeDArb1Skbnw9Be3t3ywbylj9Esv2aAd8xo64EAprW9IAvibUtbZBjvk96NJoB9kgEDJ4ZT0b59lLqlLTXrN5QV3+wmIYmf6s8L4/x0OvEVRkTu7gmbZSnLa52MnBWlWTir5jv9zl4laEaY248WGLKEcyoB7C8AvBu9oWtok1RjoLEAlfeZW+J3PaNxr7/SSJz+6qiFNTv1LfaQcwo1Mh0D6B1A4MSo/7AXHKw994kYiCwWge2JxDbMFT6fUEWbMZo96ttnze9XFZqMKORviy5zZK9yKy8Q41+XZCPeFDMhmst6NLGeMA5FJXS1tyQMMFQnNAaxTgZjWv9bfvltIbTEjT WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:CY1PR04MB1980; BCL:0; PCL:0; RULEID:; SRVR:CY1PR04MB1980; X-Microsoft-Exchange-Diagnostics: 1; CY1PR04MB1980; 4:LsZGDLAly3Y0CUY1h+X1t28hpX/oUjZ/r1uX36wSyLBrflQSG+m0wq2Y2MXfNYnM6HdV15NWOb6/8AIDptyWdvHrMFxmyog4VE0a2sy9yUIJUD7cQLjQsgUsIAUWtg1ZkIX91t/ImDU1GQhQ3HJYgcqSGRWzBjJ0I7vEO+aC9GyLdvF3K3dYvoVUcEBZ41r1cPGM13arzDOGvdwy6Rngx+EpK51Bn4a8nSVbg+tlrycBYrbJTnGW90KitWSKhguUbCBsjZWuYB0XhFZq4L33nTZubvkSoYsAZe1N96dpx1H7QYuu5n1PiHun7kG7z7Tfx4MFflWAZfwe2oHbSZrky+ViYzUBpoVIHjCrj+V8nrxU4Q+M6nnPnqLs3AyLF5mlz6W5bLPh5+O0J9ADCSr+NUybeP1+C7WwmU5RhOL9egEcDsCK/VCKbxX3DJ9xOQqj8MgiVwKm6UmvZayYuND2K5JXBjv7tnVd0OAIge7km5CxctDdqCxGjjKvd1FvQw/NCnlqoZUQOwrkW0GIW+mbYmq+O1phbUQDKIs1fjwD+TPvtt42LpR/OzRzWEgXYQlcbz9L/ldUyqDyEg6YX4CYFdXc25nVjFIl70stvYVrlDgLJWyueWuSdr7hCkIbw9QH2fffgjdRbvntSiLbuBm3xmd6vnJ9QjKtlLMhkC7QYaAoHEYT0cAO8ZYPabll09tppOPeoTxaxyMjqr3FgGZkcox+xqUMA4ACOLeQINb6yuY7kyP/FIrK8ugmsHQsEHqJ3ihazZpF7xXMxvATPYS6nQ== X-Forefront-PRVS: 0287BBA78D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39450400003)(39840400002)(39410400002)(39850400002)(39400400002)(39860400002)(33646002)(6512007)(9686003)(6666003)(81166006)(66066001)(8676002)(76176999)(7736002)(50986999)(305945005)(189998001)(50466002)(42186005)(6486002)(2950100002)(6916009)(47776003)(48376002)(54906002)(4326008)(2906002)(38730400002)(110136004)(5003940100001)(53936002)(25786009)(36756003)(86362001)(50226002)(1076002)(6116002)(3846002)(5660300001)(85782001)(85772001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR04MB1980; H:washi.fujisawa.hgst.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR04MB1980; 23:y7BIwfzqzQ5Ay+7lPwBt4q635clRZ24Envy20TT4j?= =?us-ascii?Q?x3UheuuhYpEavZF5MHqIF1DF9X0g+R8tNEUGyLNMjCZjuVBybv6fsJKB7hcx?= =?us-ascii?Q?biqwef/031YUspHcqcZWCZA6NxU+OwOU/eIl9xFI69RrhNP/08z1bv8AwLP4?= =?us-ascii?Q?aQrIyJ6nbeTve+kSH5Ny+TqaR0d+cRt6Vxse6QPlVyd+N2PJHoyN1FHZMXtO?= =?us-ascii?Q?5dakQPltjh5S/vF94CzconLQr43FMfg/eV/ctqpmojbfCEgAJYsNIHlWY5vM?= =?us-ascii?Q?Cn8V21PdmMtDcVLOePvIMAccMJDds6iDUHc9UfbICHX75siA7g1022sfA2Gn?= =?us-ascii?Q?svYhb8n6Vo0NhnbA2qNE8XXAXp33EqFRYYrJO1/JGe/+K2AEvMPqBE19tXZv?= =?us-ascii?Q?9b6yqTgUlPo1liq2H1x/P3el3tRc8mK1xxdui7ZEXWipnfh49uLb+yTfswTM?= =?us-ascii?Q?BwFtC8FzN9sRVKYxRSCj6868UaEkT9U8iysENh//+89TDEgqikyo6Pcmt3eV?= =?us-ascii?Q?x3VuqDwRVaGXL7xwFQFku9yEEpFPRIls6uU8suZWE1qN5hC1p18Fjxs4ruez?= =?us-ascii?Q?ZKVlVY5+OxZM8/FJU1LQh0fwLqj8pOGPkpF81TlgDXG4rYll6z8uB7lsdKce?= =?us-ascii?Q?O02iOz/8LUQd6FBgLlJg7EFdkMJ++wmfw8NFu1/U/cj4XQCYNDfwn5wn5IQO?= =?us-ascii?Q?ks2gppr3kPpP6iJjdJYbXGgzNRHjtbJZ9w+d9v1crUS4JNkQHGTIoDTvpmKh?= =?us-ascii?Q?/F5oOLhcyfGV3b/DtvgvFnwnyT5/EWxWlSjBiRL/2rU6bwPjg2HWgPDQ9/gP?= =?us-ascii?Q?wTksLpV2CtFgE/s8h5CI/tkzRU8J246cmPFp3wGUhy1favabP23iE1tq1yCr?= =?us-ascii?Q?j8qQwhH6hVBeWXTfQ3COQh8tN2MRkydpHKkHynL4PELfWLYmca48mbv42Th5?= =?us-ascii?Q?ii+iDK9qj05AlHTbvxQ1tAjZ4vRobxrf7rV00eUp6jz3mwqQRAv8776ySeBW?= =?us-ascii?Q?S5EVIAGxHlOlVU274whmklqmqSTzDuvhst9/voKqnnp+QPTB0KRi6toDRxLb?= =?us-ascii?Q?bL4OuGGuXU/UHtN7WrAVmgnRwr+8w/SMjflQ14VasRyT8v64ab+hSi2KY/0V?= =?us-ascii?Q?M4Vhxo77KU=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR04MB1980; 6:xNnXCRZCE/J97qpZqgkqHpgpLi80xccIBtjWr+ts7HV5yhZoYG4wFy3EuRpfzVNaCY8DiKa4EaNtI4tSAxYX/QO6CZiCo+qVcWw95mTxMiH7lGwsVziGdwgfnswTbBsPBMQzKB5zyrjwE8X1/TMLlCqZy/Arp9dSWfrPFJZGmXhMYvZM8sfP3uBibTjA3Tgt2lQJX0HYuFOYF4I8kvq8A8HzoYzH1x/YMUkl2lyxvjkfWbE2DobTBZm9uD6MIIKnYRyn+oEu0DJtDw9mx3IeiOoxQEPYMlvkC5+kGYh8ZVMCBWK1gjdBShuJ1FDBOzrmsgasmjjdXje/D7j80b7fzSwQsM0t88W1lTxoyvqBr9VPyp6s7IHSnFcXFmCWT2wZLwr2GOuScxgt3zEpN2AdrW8KtZ+xCCCKLh5ml6Xq3Nu7NU0Y3vP+YXCsad2Qo+V/r6zFjdbVifDlOqpZ3/x2CrvKKoq50ENwNLwehC1luL/R7QFkPyI3lmzgyh5nn1p6fsVfFObm7Wl7bvKntFpFBO+Wg3BHb/BMLNt4WUaNBFo=; 5:R/WLW8UrJT5qRf75yNv8ZrYbxKw8OBO/hPT8/5fUg7+4tNvoRiZKWQpe5mj5zGmT9yMSLddZSiI6W9jud5n+/viGyZ+lWceXofshuvgg814+Myu21jv0Cv/y0Qvweb0DW2dPM4Acj+WC4EajMomKpw==; 24:IoRxi+DOTwO60ue0bbiOPg+aha7yN7Q7xnhw5G9LcSRFKcwRDkY2OEhusFg3qCfoQ4WawCaJ6mzp8b0WaQgNkqW35ptiUbq7rvN6T/XNFQE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR04MB1980; 7:v2S4d9fiBFfogmNrjItjtvqtK9Mlvy8MthvlpLhZHqmpI9MvOrH4t2tzACeD/4tTsCqoGZaC6kUPebAFr50aDP50UDho4fZIeahGDot1I/lPfNeg9PGUSXBBfSolHT8MSUzjuT7p+ZQxh2Eb20GqjufAuuaFE0lYTCXEj7ALFrVdr7/u+tL1+UYFRk/td4Ewy0qUw0qglgsaZoFEEpSB5uh75c1slgRKUqoVF7No9eJ2HZ+ZYm1fcr2ORl+yzuaNhOgGxgcHldJdma46bZbB8JqqlTlHorJkkSgxElq8mUCJgnVADQjVYt7z20zJiCH65GA703m2feteRTl/PH/MuQ==; 20:TSHU39R33Dv27+kVJtps5vP63o2hF6Ys7jY1+z9lcVtrki7G9Gjzg9W5iG9/QRSe8yInqgYbPL0qZoPCQkzBKnjLuVnKt2uPmugeFZ9Gis9KmorBaiYOW0yRnFYUeA8KfG+5lSgN26uVbgt+3Y30mh2XWcYLHGcQqzMaoWXRKGg= X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 07:51:32.2460 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR04MB1980 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: Damien Le Moal In sd_done(), for the ILLEGAL REQUEST sense key case, add an 'else if' after the first 'if (sshdr.asc == 0x10)' test to avoid the second test (the values tested are different). Still for the same ILLEGAL REQUEST case, move the declarations of the variables 'op' and 'unmap' within the scope of the 'else if' case since these variables are only used there. At the same time, remove the unnecessary good_bytes 0 assignment as this code can only be executed with result != 0 and good_bytes is already set to 0 in that case. Signed-off-by: Damien Le Moal Reviewed-by: Bart Van Assche --- drivers/scsi/sd.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 10c7657..2d1ac5c 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1816,8 +1816,6 @@ static int sd_done(struct scsi_cmnd *SCpnt) struct request *req = SCpnt->request; int sense_valid = 0; int sense_deferred = 0; - unsigned char op = SCpnt->cmnd[0]; - unsigned char unmap = SCpnt->cmnd[1] & 8; switch (req_op(req)) { case REQ_OP_DISCARD: @@ -1875,10 +1873,14 @@ static int sd_done(struct scsi_cmnd *SCpnt) good_bytes = sd_completed_bytes(SCpnt); break; case ILLEGAL_REQUEST: - if (sshdr.asc == 0x10) /* DIX: Host detected corruption */ + if (sshdr.asc == 0x10) { + /* DIX: Host detected corruption */ good_bytes = sd_completed_bytes(SCpnt); - /* INVALID COMMAND OPCODE or INVALID FIELD IN CDB */ - if (sshdr.asc == 0x20 || sshdr.asc == 0x24) { + } else if (sshdr.asc == 0x20 || sshdr.asc == 0x24) { + /* INVALID COMMAND OPCODE or INVALID FIELD IN CDB */ + unsigned char op = SCpnt->cmnd[0]; + unsigned char unmap = SCpnt->cmnd[1] & 8; + switch (op) { case UNMAP: sd_config_discard(sdkp, SD_LBP_DISABLE); @@ -1890,8 +1892,6 @@ static int sd_done(struct scsi_cmnd *SCpnt) else { sdkp->device->no_write_same = 1; sd_config_write_same(sdkp); - - good_bytes = 0; req->__data_len = blk_rq_bytes(req); req->rq_flags |= RQF_QUIET; }