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,
	stable@vger.kernel.org
Subject: [PATCH v2 3/3] scsi: sd: Fix interpretation of VPD B9h length
Date: Thu,  2 Jun 2022 16:51:13 -0600	[thread overview]
Message-ID: <20220602225113.10218-4-tyler.erickson@seagate.com> (raw)
In-Reply-To: <20220602225113.10218-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

Cc: stable@vger.kernel.org
Fixes: e815d36548f0 ("scsi: sd: add concurrent positioning ranges support")
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>
---
 drivers/scsi/sd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 749316462075..f25b0cc5dd21 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -3072,7 +3072,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.17.1


  parent reply	other threads:[~2022-06-02 22:46 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-02 22:51 [PATCH v2 0/3] ata,sd: Fix reading concurrent positioning ranges Tyler Erickson
2022-06-02 22:51 ` [PATCH v2 1/3] libata: fix reading concurrent positioning ranges log Tyler Erickson
2022-06-03  6:17   ` Hannes Reinecke
2022-06-03  7:07     ` Damien Le Moal
2022-06-03  7:42       ` Hannes Reinecke
2022-06-03  8:18         ` Damien Le Moal
2022-06-02 22:51 ` [PATCH v2 2/3] libata: fix translation of concurrent positioning ranges Tyler Erickson
2022-06-03  6:18   ` Hannes Reinecke
2022-06-02 22:51 ` Tyler Erickson [this message]
2022-06-03  1:30   ` [PATCH v2 3/3] scsi: sd: Fix interpretation of VPD B9h length Damien Le Moal
2022-06-07  0:44     ` Damien Le Moal
2022-06-03  6:18   ` Hannes Reinecke
2022-06-03  1:30 ` [PATCH v2 0/3] ata,sd: Fix reading concurrent positioning ranges Damien Le Moal
2022-06-03  5:23   ` Christoph Hellwig
2022-06-03  5:29     ` Damien Le Moal
2022-06-08  2:27 ` Martin K. Petersen
2022-06-08  3:20 ` Damien Le Moal

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=20220602225113.10218-4-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=muhammad.ahmad@seagate.com \
    --cc=stable@vger.kernel.org \
    /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.