Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp13000imm; Tue, 31 Jul 2018 12:54:31 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfvAfz8iFXMn679wdQ3LsLWDMv5/cO1XN+tm7xhfKG6XCtLaTqs3g90q+OQ+VcC7f844kT+ X-Received: by 2002:a17:902:6802:: with SMTP id h2-v6mr21504869plk.113.1533066871189; Tue, 31 Jul 2018 12:54:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533066871; cv=none; d=google.com; s=arc-20160816; b=xVWdEP3H7hluFjD+Pbr4sv4VSuLji+nWaj+LrHWua8JJ3vzgekNxYhuEkc+W7yRgt2 gCL/1UoTJYhe7SL+mwgw2ULD4qjTAVuzksht+Tg2pqNfY+e0aB/6i/TjTopzn4lmXUB1 cYE1HzPplj0GBdCATnsf9eUJEuhAvAIWw/9cI2rmYvCSc+O4+kSAcbK3QZSCe5o8+yii Rigorfp6AZrfjD93mGBwyi8roh825r15cKt9+dq5hQTM11QW2+0cxZqgqRg2bPX8cRpN gkLmTxTnK/YXkdwxR/Yb99/jmvTMdWUMQ7zw1PAn8kSD5ixBtd1UrZlM5bOkpottEAgv hkqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=24hZXZaYjkBN7Mhw98yp1L0z0cLuLy+pImRF9czCj3g=; b=uUP4GgDJg2TTC3EuyM1FL3/mL8bN+RHm0/1teuzDn5Lk4iuysCTaxFit7/AgyK5165 /9JDhqyjmhYPGB0aKjcgRfkKCYyOep8hA39TCGo13CKC3bPflf8dQ+ljs2X+/pnLcPAU uSCoEuCp8nIcy+h+w2Qb4m93fetrS1sPEVwRIShae7CUG/oMt4pUxe0XoV3AJY6m2Srv U7usyk6LnSOv2lwVBUS2to1B47jQLNRPno7ZkUePdJO+5VTrhJgX10gsX9s2+nqNvZCN D1oM9kIMEnGw/++jI/oaWV7W75xC3GcnuwwnmTE+DyUVG1VU3jcR1EJAiCLPn0yaihJw Ls5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=LRHJG5+d; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n1-v6si14019894pge.57.2018.07.31.12.54.12; Tue, 31 Jul 2018 12:54:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=LRHJG5+d; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732566AbeGaVeD (ORCPT + 99 others); Tue, 31 Jul 2018 17:34:03 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:46600 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732541AbeGaVeC (ORCPT ); Tue, 31 Jul 2018 17:34:02 -0400 Received: by mail-pf1-f195.google.com with SMTP id u24-v6so6599017pfn.13 for ; Tue, 31 Jul 2018 12:52:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=24hZXZaYjkBN7Mhw98yp1L0z0cLuLy+pImRF9czCj3g=; b=LRHJG5+dUthNvaTssITiGXrhVq67Uc2hLz9U5lGiVKe7K4gvHKd+1tKsYIS0KkHeUh 68+eP18my0QjNjWuFvA9fHkCPRm+0enDupu83c/IL60CZeGx2CTUUUFsh1TioStOG0QM Xn9AkZTZCCGhDr12kE+Hj7dbKw4VTnLG6aTYw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=24hZXZaYjkBN7Mhw98yp1L0z0cLuLy+pImRF9czCj3g=; b=E0OFz73kvfOcbrPFRDtiBtpVxywiybWcKJ6JNth/hd54jLIwbUcyTE6UQ58cEz8St5 lbSaNEMCNi5nEcJ9iP4MirdAvO8gXIixWn/XkFieVS6P97RmbnX+9tRR8Ur98jdAd+SO QRHp82zi8bP5kxtZz1An79TAUbzynaaQRqBdy9kHCzm3JvQmMz4CNq1O6a1TT5vni9yH 6dcZLjIvweEjbM8toULieq9syqAZP9NbylSxXlD37SPYrbZN/K2gFU1wQmrKrvIwTbx5 wNZh6an1g1x72YFyCA+Sm/mZuXKAsSkQGLWw07+U0DFXT34AZfhc/VuuOUs+KV/m9UHr LHoQ== X-Gm-Message-State: AOUpUlFqNcyt6pvMmOstZLK7RL6Wr0aoqBnG36BQj2yC0ylx4uIdyDFT viIUe3ZprvJzmn/mBXzGUjeg4A== X-Received: by 2002:a63:6d8b:: with SMTP id i133-v6mr22059745pgc.215.1533066729234; Tue, 31 Jul 2018 12:52:09 -0700 (PDT) Received: from www.outflux.net (173-164-112-133-Oregon.hfc.comcastbusiness.net. [173.164.112.133]) by smtp.gmail.com with ESMTPSA id y27-v6sm34108464pff.181.2018.07.31.12.52.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 31 Jul 2018 12:52:07 -0700 (PDT) From: Kees Cook To: Jens Axboe Cc: Kees Cook , Christoph Hellwig , "Martin K. Petersen" , "James E.J. Bottomley" , Tejun Heo , Borislav Petkov , "David S. Miller" , "Manoj N. Kumar" , "Matthew R. Ochs" , Uma Krishnan , "Nicholas A. Bellinger" , Thomas Gleixner , Philippe Ombredanne , Stephen Boyd , Cyrille Pitchen , Juergen Gross , Viresh Kumar , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Sagar Dharia , Randy Dunlap , Vinod Koul , David Kershner , linux-block@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, target-devel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/9] ide-cd: Remove redundant sense buffer Date: Tue, 31 Jul 2018 12:51:51 -0700 Message-Id: <20180731195155.46664-7-keescook@chromium.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180731195155.46664-1-keescook@chromium.org> References: <20180731195155.46664-1-keescook@chromium.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is already able to process the sense buffer, so remove the redundant parsing during the failure path. This also fixes any possible stale values since the prior code did not check the sense length. Signed-off-by: Kees Cook --- drivers/ide/ide-cd.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index cb90560acf6e..023a7d94eb08 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -423,6 +423,7 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd, req_flags_t rq_flags) { struct cdrom_info *info = drive->driver_data; + struct scsi_sense_hdr local_sshdr; int retries = 10; bool failed; @@ -430,6 +431,9 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd, "rq_flags: 0x%x", cmd[0], write, timeout, rq_flags); + if (!sshdr) + sshdr = &local_sshdr; + /* start of retry loop */ do { struct request *rq; @@ -456,9 +460,8 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd, if (buffer) *bufflen = scsi_req(rq)->resid_len; - if (sshdr) - scsi_normalize_sense(scsi_req(rq)->sense, - scsi_req(rq)->sense_len, sshdr); + scsi_normalize_sense(scsi_req(rq)->sense, + scsi_req(rq)->sense_len, sshdr); /* * FIXME: we should probably abort/retry or something in case of @@ -470,12 +473,10 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd, * The request failed. Retry if it was due to a unit * attention status (usually means media was changed). */ - struct request_sense *reqbuf = scsi_req(rq)->sense; - - if (reqbuf->sense_key == UNIT_ATTENTION) + if (sshdr->sense_key == UNIT_ATTENTION) cdrom_saw_media_change(drive); - else if (reqbuf->sense_key == NOT_READY && - reqbuf->asc == 4 && reqbuf->ascq != 4) { + else if (sshdr->sense_key == NOT_READY && + sshdr->asc == 4 && sshdr->ascq != 4) { /* * The drive is in the process of loading * a disk. Retry, but wait a little to give -- 2.17.1