===== drivers/scsi/libata-scsi.c 1.39 vs edited ===== --- 1.39/drivers/scsi/libata-scsi.c 2004-05-12 11:46:21 -04:00 +++ edited/drivers/scsi/libata-scsi.c 2004-06-22 16:18:57 -04:00 @@ -182,7 +182,8 @@ * 65534 when Jens Axboe's patch for dynamically * determining max_sectors is merged. */ - if (dev->flags & ATA_DFLAG_LBA48) { + if ((dev->flags & ATA_DFLAG_LBA48) && + ((dev->flags & ATA_DFLAG_LOCK_SECTORS) == 0)) { sdev->host->max_sectors = 2048; blk_queue_max_sectors(sdev->request_queue, 2048); } ===== drivers/scsi/sata_sil.c 1.26 vs edited ===== --- 1.26/drivers/scsi/sata_sil.c 2004-06-15 00:29:32 -04:00 +++ edited/drivers/scsi/sata_sil.c 2004-06-22 16:18:21 -04:00 @@ -302,6 +302,7 @@ ap->id, dev->devno); ap->host->max_sectors = 15; ap->host->hostt->max_sectors = 15; + dev->flags |= ATA_DFLAG_LOCK_SECTORS; return; } ===== include/linux/libata.h 1.38 vs edited ===== --- 1.38/include/linux/libata.h 2004-06-22 00:54:44 -04:00 +++ edited/include/linux/libata.h 2004-06-22 16:17:44 -04:00 @@ -91,6 +91,7 @@ ATA_DFLAG_MASTER = (1 << 2), /* is device 0? */ ATA_DFLAG_WCACHE = (1 << 3), /* has write cache we can * (hopefully) flush? */ + ATA_DFLAG_LOCK_SECTORS = (1 << 4), /* don't adjust max_sectors */ ATA_DEV_UNKNOWN = 0, /* unknown device */ ATA_DEV_ATA = 1, /* ATA device */