|
@@ -1130,31 +1130,29 @@ static int __devinit aac_probe_one(struct pci_dev *pdev,
|
|
if (error < 0)
|
|
if (error < 0)
|
|
goto out_deinit;
|
|
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
|
|
* Lets override negotiations and drop the maximum SG limit to 34
|
|
*/
|
|
*/
|
|
if ((aac_drivers[index].quirks & AAC_QUIRK_34SG) &&
|
|
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) &&
|
|
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)
|
|
if (aac_drivers[index].quirks & AAC_QUIRK_34SG)
|
|
aac->printf_enabled = 1;
|
|
aac->printf_enabled = 1;
|