Re: [PATCH 04/23] scsi: initialize scsi midlayer limits before allocating the queue

John Garry
2024-06-06T08:22:09Z

>
> diff --git a/drivers/ata/pata_macio.c b/drivers/ata/pata_macio.c
> index 817838e2f70e..3cb455a32d92 100644
> --- a/drivers/ata/pata_macio.c
> +++ b/drivers/ata/pata_macio.c
> @@ -915,10 +915,13 @@ static const struct scsi_host_template pata_macio_sht = {
> .sg_tablesize = MAX_DCMDS,
> /* We may not need that strict one */
> .dma_boundary = ATA_DMA_BOUNDARY,
> - /* Not sure what the real max is but we know it's less than 64K, let's
> - * use 64K minus 256
> + /*
> + * The SCSI core requires the segment size to cover at least a page, so
> + * for 64K page size kernels this must be at least 64K. However the
> + * hardware can't handle 64K, so pata_macio_qc_prep() will split large
> + * requests.
> */
> - .max_segment_size = MAX_DBDMA_SEG,
> + .max_segment_size = SZ_64K,
> .device_configure = pata_macio_device_configure,
> .sdev_groups = ata_common_sdev_groups,
> .can_queue = ATA_DEF_QUEUE,

Feel free to add:
Reviewed-by: John Garry <john.g.garry@oracle.com>