lkml.org 
[lkml]   [2007]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH -mm 10/11] sata_inic162x: use pci_set_dma_max_seg_size
    From
    This sets the segment size limit properly via pci_set_dma_max_seg_size
    and remove blk_queue_max_segment_size because scsi-ml calls it.

    Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    ---
    drivers/ata/sata_inic162x.c | 25 +++++++++++++------------
    1 files changed, 13 insertions(+), 12 deletions(-)

    diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
    index 08595f3..4f3ba83 100644
    --- a/drivers/ata/sata_inic162x.c
    +++ b/drivers/ata/sata_inic162x.c
    @@ -108,17 +108,6 @@ struct inic_port_priv {
    u8 cached_pirq_mask;
    };

    -static int inic_slave_config(struct scsi_device *sdev)
    -{
    - /* This controller is braindamaged. dma_boundary is 0xffff
    - * like others but it will lock up the whole machine HARD if
    - * 65536 byte PRD entry is fed. Reduce maximum segment size.
    - */
    - blk_queue_max_segment_size(sdev->request_queue, 65536 - 512);
    -
    - return ata_scsi_slave_config(sdev);
    -}
    -
    static struct scsi_host_template inic_sht = {
    .module = THIS_MODULE,
    .name = DRV_NAME,
    @@ -132,7 +121,7 @@ static struct scsi_host_template inic_sht = {
    .use_clustering = ATA_SHT_USE_CLUSTERING,
    .proc_name = DRV_NAME,
    .dma_boundary = ATA_DMA_BOUNDARY,
    - .slave_configure = inic_slave_config,
    + .slave_configure = ata_scsi_slave_config,
    .slave_destroy = ata_scsi_slave_destroy,
    .bios_param = ata_std_bios_param,
    };
    @@ -730,6 +719,18 @@ static int inic_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
    return rc;
    }

    + /*
    + * This controller is braindamaged. dma_boundary is 0xffff
    + * like others but it will lock up the whole machine HARD if
    + * 65536 byte PRD entry is fed. Reduce maximum segment size.
    + */
    + rc = pci_set_dma_max_seg_size(pdev, 65536 - 512);
    + if (rc) {
    + dev_printk(KERN_ERR, &pdev->dev,
    + "failed to set the maximum segment size.\n");
    + return rc;
    + }
    +
    rc = init_controller(iomap[MMIO_BAR], hpriv->cached_hctl);
    if (rc) {
    dev_printk(KERN_ERR, &pdev->dev,
    --
    1.5.2.4
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-10-24 12:53    [W:0.035 / U:95.084 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site