On Wed, Dec 16, 2015 at 2:29 AM, Martin K. Petersen
<martin.peter...@oracle.com> wrote:
>>>>>> "Eryu" == Eryu Guan <guane...@gmail.com> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to