From: FUJITA Tomonori 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 Cc: Jeff Garzik Cc: James Bottomley Cc: Jens Axboe Cc: "Salyzyn, Mark" Signed-off-by: Andrew Morton --- drivers/scsi/aacraid/linit.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff -puN drivers/scsi/aacraid/linit.c~iommu-sg-merging-aacraid-use-pci_set_dma_max_seg_size drivers/scsi/aacraid/linit.c --- a/drivers/scsi/aacraid/linit.c~iommu-sg-merging-aacraid-use-pci_set_dma_max_seg_size +++ a/drivers/scsi/aacraid/linit.c @@ -441,9 +441,6 @@ static int aac_slave_configure(struct sc else if (depth < 2) depth = 2; scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, depth); - if (!(((struct aac_dev *)host->hostdata)->adapter_info.options & - AAC_OPT_NEW_COMM)) - blk_queue_max_segment_size(sdev->request_queue, 65536); } else scsi_adjust_queue_depth(sdev, 0, 1); @@ -1055,6 +1052,12 @@ static int __devinit aac_probe_one(struc if (error < 0) goto out_deinit; + if (!(aac->adapter_info.options & AAC_OPT_NEW_COMM)) { + error = pci_set_dma_max_seg_size(pdev, 65536); + if (error) + goto out_deinit; + } + /* * Lets override negotiations and drop the maximum SG limit to 34 */ _