All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tyler Erickson <tyler.erickson@seagate.com>
To: damien.lemoal@opensource.wdc.com, jejb@linux.ibm.com,
	martin.petersen@oracle.com
Cc: linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
	muhammad.ahmad@seagate.com, tyler.erickson@seagate.com,
	Michael English <michael.english@seagate.com>
Subject: [PATCH 2/2] [PATCH v1 2/2] sd: Fixing interpretation of VPD B9h length
Date: Tue, 31 May 2022 11:50:09 -0600	[thread overview]
Message-ID: <20220531175009.850-3-tyler.erickson@seagate.com> (raw)
In-Reply-To: <20220531175009.850-1-tyler.erickson@seagate.com>

Fixing the interpretation of the length of the B9h VPD page
(concurrent positioning ranges). Adding 4 is necessary as
the first 4 bytes of the page is the header with page number
and length information. Adding 3 was likely a misinterpretation
of the SBC-5 specification which sets all offsets starting at zero.

This fixes the error in dmesg:
[ 9.014456] sd 1:0:0:0: [sda] Invalid Concurrent Positioning Ranges VPD page

Signed-off-by: Tyler Erickson <tyler.erickson@seagate.com>
Reviewed-by: Muhammad Ahmad <muhammad.ahmad@seagate.com>
Tested-by: Michael English <michael.english@seagate.com>

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index dc6e55761fd1..14867e8cd687 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -3067,7 +3067,7 @@ static void sd_read_cpr(struct scsi_disk *sdkp)
 		goto out;
 
 	/* We must have at least a 64B header and one 32B range descriptor */
-	vpd_len = get_unaligned_be16(&buffer[2]) + 3;
+	vpd_len = get_unaligned_be16(&buffer[2]) + 4;
 	if (vpd_len > buf_len || vpd_len < 64 + 32 || (vpd_len & 31)) {
 		sd_printk(KERN_ERR, sdkp,
 			  "Invalid Concurrent Positioning Ranges VPD page\n");
-- 
2.25.1


  parent reply	other threads:[~2022-05-31 17:52 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-31 17:50 [PATCH 0/2] ata,sd: Fix reading concurrent positioning ranges Tyler Erickson
2022-05-31 17:50 ` [PATCH 1/2] [PATCH v1 1/2] libata: fix reading concurrent positioning ranges log Tyler Erickson
2022-05-31 21:28   ` Damien Le Moal
2022-06-01 10:29   ` Sergey Shtylyov
2022-06-02  6:35     ` Damien Le Moal
2022-05-31 17:50 ` Tyler Erickson [this message]
2022-05-31 21:30   ` [PATCH 2/2] [PATCH v1 2/2] sd: Fixing interpretation of VPD B9h length Damien Le Moal
2022-05-31 21:57     ` Tyler Erickson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220531175009.850-3-tyler.erickson@seagate.com \
    --to=tyler.erickson@seagate.com \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=jejb@linux.ibm.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=michael.english@seagate.com \
    --cc=muhammad.ahmad@seagate.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.