Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21849
b: refs/heads/master
c: b00eec1
h: refs/heads/master
i:
  21847: bb72b85
v: v3
  • Loading branch information
Tejun Heo authored and Jeff Garzik committed Feb 12, 2006
1 parent cc2d518 commit 7221cfa
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6e7846e9c548443c86cfbad9e4defb4bdcfc538b
refs/heads/master: b00eec1d58ee71131375bfeb86e64bceec3f5618
4 changes: 1 addition & 3 deletions trunk/drivers/scsi/libata-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1147,9 +1147,7 @@ void ata_dev_config(struct ata_port *ap, unsigned int i)
printk(KERN_INFO "ata%u(%u): applying bridge limits\n",
ap->id, i);
ap->udma_mask &= ATA_UDMA5;
ap->host->max_sectors = ATA_MAX_SECTORS;
ap->host->hostt->max_sectors = ATA_MAX_SECTORS;
ap->device[i].flags |= ATA_DFLAG_LOCK_SECTORS;
ap->device[i].max_sectors = ATA_MAX_SECTORS;
}

if (ap->ops->dev_config)
Expand Down
18 changes: 9 additions & 9 deletions trunk/drivers/scsi/libata-scsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,23 +684,23 @@ int ata_scsi_slave_config(struct scsi_device *sdev)
if (sdev->id < ATA_MAX_DEVICES) {
struct ata_port *ap;
struct ata_device *dev;
unsigned int max_sectors;

ap = (struct ata_port *) &sdev->host->hostdata[0];
dev = &ap->device[sdev->id];

/* TODO: 1024 is an arbitrary number, not the
/* TODO: 2048 is an arbitrary number, not the
* hardware maximum. This should be increased to
* 65534 when Jens Axboe's patch for dynamically
* determining max_sectors is merged.
*/
if ((dev->flags & ATA_DFLAG_LBA48) &&
((dev->flags & ATA_DFLAG_LOCK_SECTORS) == 0)) {
/*
* do not overwrite sdev->host->max_sectors, since
* other drives on this host may not support LBA48
*/
blk_queue_max_sectors(sdev->request_queue, 2048);
}
max_sectors = ATA_MAX_SECTORS;
if (dev->flags & ATA_DFLAG_LBA48)
max_sectors = 2048;
if (dev->max_sectors)
max_sectors = dev->max_sectors;

blk_queue_max_sectors(sdev->request_queue, max_sectors);

/*
* SATA DMA transfers must be multiples of 4 byte, so
Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/scsi/sata_sil.c
Original file line number Diff line number Diff line change
Expand Up @@ -354,9 +354,7 @@ static void sil_dev_config(struct ata_port *ap, struct ata_device *dev)
(quirks & SIL_QUIRK_MOD15WRITE))) {
printk(KERN_INFO "ata%u(%u): applying Seagate errata fix (mod15write workaround)\n",
ap->id, dev->devno);
ap->host->max_sectors = 15;
ap->host->hostt->max_sectors = 15;
dev->flags |= ATA_DFLAG_LOCK_SECTORS;
dev->max_sectors = 15;
return;
}

Expand Down
4 changes: 2 additions & 2 deletions trunk/include/linux/libata.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,7 @@ enum {
/* struct ata_device stuff */
ATA_DFLAG_LBA48 = (1 << 0), /* device supports LBA48 */
ATA_DFLAG_PIO = (1 << 1), /* device currently in PIO mode */
ATA_DFLAG_LOCK_SECTORS = (1 << 2), /* don't adjust max_sectors */
ATA_DFLAG_LBA = (1 << 3), /* device supports LBA */
ATA_DFLAG_LBA = (1 << 2), /* device supports LBA */

ATA_DEV_UNKNOWN = 0, /* unknown device */
ATA_DEV_ATA = 1, /* ATA device */
Expand Down Expand Up @@ -348,6 +347,7 @@ struct ata_device {

unsigned int multi_count; /* sectors count for
READ/WRITE MULTIPLE */
unsigned int max_sectors; /* per-device max sectors */
unsigned int cdb_len;

/* for CHS addressing */
Expand Down

0 comments on commit 7221cfa

Please sign in to comment.