[SCSI] aacraid: pci_set_dma_max_seg_size opened up for late model controllers
This patch ensures that the modern adapters get a maximum sg segment size on par with the maximum transfer size. Added some localized janitor fixes to the discussion patch I used with Fujita. FUJITA Tomonori [mailto:fujita.tomonori@lab.ntt.co.jp] sez: > I think that setting the proper maximum segment size for the late > model cards (as you did above) makes sense. Signed-off-by: Mark Salyzyn <aacraid@adaptec.com> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Родитель
4d2de3a50c
Коммит
62e9f5c467
|
@ -1130,31 +1130,29 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
|
|||
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
|
||||
*/
|
||||
if ((aac_drivers[index].quirks & AAC_QUIRK_34SG) &&
|
||||
(aac->scsi_host_ptr->sg_tablesize > 34)) {
|
||||
aac->scsi_host_ptr->sg_tablesize = 34;
|
||||
aac->scsi_host_ptr->max_sectors
|
||||
= (aac->scsi_host_ptr->sg_tablesize * 8) + 112;
|
||||
(shost->sg_tablesize > 34)) {
|
||||
shost->sg_tablesize = 34;
|
||||
shost->max_sectors = (shost->sg_tablesize * 8) + 112;
|
||||
}
|
||||
|
||||
if ((aac_drivers[index].quirks & AAC_QUIRK_17SG) &&
|
||||
(aac->scsi_host_ptr->sg_tablesize > 17)) {
|
||||
aac->scsi_host_ptr->sg_tablesize = 17;
|
||||
aac->scsi_host_ptr->max_sectors
|
||||
= (aac->scsi_host_ptr->sg_tablesize * 8) + 112;
|
||||
(shost->sg_tablesize > 17)) {
|
||||
shost->sg_tablesize = 17;
|
||||
shost->max_sectors = (shost->sg_tablesize * 8) + 112;
|
||||
}
|
||||
|
||||
error = pci_set_dma_max_seg_size(pdev,
|
||||
(aac->adapter_info.options & AAC_OPT_NEW_COMM) ?
|
||||
(shost->max_sectors << 9) : 65536);
|
||||
if (error)
|
||||
goto out_deinit;
|
||||
|
||||
/*
|
||||
* Firware printf works only with older firmware.
|
||||
* Firmware printf works only with older firmware.
|
||||
*/
|
||||
if (aac_drivers[index].quirks & AAC_QUIRK_34SG)
|
||||
aac->printf_enabled = 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче