diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/aacraid/aacraid.h | 6 | ||||
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 3 |
2 files changed, 3 insertions, 6 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 3a11a536c0da..4ab07861b457 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h | |||
@@ -15,11 +15,7 @@ | |||
15 | #define AAC_MAX_LUN (8) | 15 | #define AAC_MAX_LUN (8) |
16 | 16 | ||
17 | #define AAC_MAX_HOSTPHYSMEMPAGES (0xfffff) | 17 | #define AAC_MAX_HOSTPHYSMEMPAGES (0xfffff) |
18 | /* | 18 | #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)512) |
19 | * max_sectors is an unsigned short, otherwise limit is 0x100000000 / 512 | ||
20 | * Linux has starvation problems if we permit larger than 4MB I/O ... | ||
21 | */ | ||
22 | #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)8192) | ||
23 | 19 | ||
24 | /* | 20 | /* |
25 | * These macros convert from physical channels to virtual channels | 21 | * These macros convert from physical channels to virtual channels |
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index c1a4f978fcba..562da90480a1 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -374,7 +374,8 @@ static int aac_slave_configure(struct scsi_device *sdev) | |||
374 | else | 374 | else |
375 | scsi_adjust_queue_depth(sdev, 0, 1); | 375 | scsi_adjust_queue_depth(sdev, 0, 1); |
376 | 376 | ||
377 | if (host->max_sectors < AAC_MAX_32BIT_SGBCOUNT) | 377 | if (!(((struct aac_dev *)host->hostdata)->adapter_info.options |
378 | & AAC_OPT_NEW_COMM)) | ||
378 | blk_queue_max_segment_size(sdev->request_queue, 65536); | 379 | blk_queue_max_segment_size(sdev->request_queue, 65536); |
379 | 380 | ||
380 | return 0; | 381 | return 0; |