On Wed, Dec 16, 2015 at 2:29 AM, Martin K. Petersen <martin.petersen@xxxxxxxxxx> wrote: >>>>>> "Eryu" == Eryu Guan <guaneryu@xxxxxxxxx> writes: > > Eryu, > > Does the patch below fix the issue? No, it can't. As the debug log shows, it is because you use 'OPTIMAL TRANSFER LENGTH' to set queue's max_sectors. Thanks, > > -- > Martin K. Petersen Oracle Linux Engineering > > diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c > index 3d22fc3e3c1a..d1eb7aa78b8d 100644 > --- a/drivers/scsi/sd.c > +++ b/drivers/scsi/sd.c > @@ -2667,8 +2667,9 @@ static void sd_read_block_limits(struct scsi_disk *sdkp) > > if (buffer[3] == 0x3c) { > unsigned int lba_count, desc_count; > + u64 max_ws = get_unaligned_be64(&buffer[36]); > > - sdkp->max_ws_blocks = (u32)get_unaligned_be64(&buffer[36]); > + sdkp->max_ws_blocks = (u32)max_ws; > > if (!sdkp->lbpme) > goto out; -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html