patch-2.4.23 linux-2.4.23/drivers/ide/ide-disk.c
Next file: linux-2.4.23/drivers/ide/ide-geometry.c
Previous file: linux-2.4.23/drivers/ide/ide-default.c
Back to the patch index
Back to the overall index
- Lines: 25
- Date:
2003-11-28 10:26:20.000000000 -0800
- Orig file:
linux-2.4.22/drivers/ide/ide-disk.c
- Orig date:
2003-06-13 07:51:33.000000000 -0700
diff -urN linux-2.4.22/drivers/ide/ide-disk.c linux-2.4.23/drivers/ide/ide-disk.c
@@ -1196,7 +1196,7 @@
drive->bios_cyl = drive->cyl;
drive->capacity48 = capacity_2;
drive->capacity = (unsigned long) capacity_2;
- return;
+ goto check_capacity48;
/* Determine capacity, and use LBA if the drive properly supports it */
} else if ((id->capability & 2) && lba_capacity_is_ok(id)) {
capacity = id->lba_capacity;
@@ -1228,6 +1228,15 @@
drive->sect = 63;
drive->cyl = (unsigned long)(drive->capacity48) / (drive->head * drive->sect);
}
+
+check_capacity48:
+ /* Limit disk size to 137GB if LBA48 addressing is not supported */
+ if (drive->addressing == 0 && drive->capacity48 > (1ULL)<<28) {
+ printk("%s: cannot use LBA48 - capacity reset "
+ "from %llu to %llu\n",
+ drive->name, drive->capacity48, (1ULL)<<28);
+ drive->capacity48 = (1ULL)<<28;
+ }
}
static unsigned long idedisk_capacity (ide_drive_t *drive)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)