diff options
| author | Jeff Garzik <jgarzik@redhat.com> | 2004-03-15 01:03:56 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@redhat.com> | 2004-03-15 01:03:56 -0500 |
| commit | 6aa7c16764de77c327cb89769c5ac7777a725ef4 (patch) | |
| tree | 4e136c08bc6ce0b8c90472aae0f6652909cfc456 /include/linux | |
| parent | 585a692ca593f50db521a4c24fc9b317d1e247b8 (diff) | |
[libata] disable clustering by default, whitespace cleanups
Disable SCSI's clustering of S/G entries, typically reducing overall
S/G list size. Although ATA S/G tables are getting smarter (64-bit
address, 32-bit length, no DMA boundary besides 4G itself), working
harder to generate large byte sizes for each S/G size is not necessarily
in our best interest:
* SATA consists of frames, much like ethernet, called "FIS". A
Data FIS consists of up to 2048 dwords (8K) of data. We don't want
generate large byte sizes in S/G entries, just to have the host controller
break them up again into smaller chunks.
* Reduces the possibility that ata_fill_sg (libata-core.c) must split
an S/G into two pieces, because it straddles a 64K boundary.
* Reduces the possibility that FIS-related errata workarounds
must be enabled. One such exists in the Silicon Image driver (sata_sil),
which is currently worked around by limiting the max-sectors-per-request
to 15.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/libata.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 20dc26522c15..0d10e7df6771 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -28,7 +28,6 @@ #include <asm/io.h> #include <linux/ata.h> - /* * compile-time options */ @@ -82,7 +81,7 @@ enum { ATA_SHT_EMULATED = 1, ATA_SHT_CMD_PER_LUN = 1, ATA_SHT_THIS_ID = -1, - ATA_SHT_USE_CLUSTERING = 1, + ATA_SHT_USE_CLUSTERING = 0, /* struct ata_device stuff */ ATA_DFLAG_LBA48 = (1 << 0), /* device supports LBA48 */ @@ -251,7 +250,7 @@ struct ata_queued_cmd { struct ata_port *ap; struct ata_device *dev; - struct scsi_cmnd *scsicmd; + struct scsi_cmnd *scsicmd; void (*scsidone)(struct scsi_cmnd *); struct list_head node; |
