AHCI: use a minimum of 1 block for trim ranges.
* Word 105 of ATA IDENTIFY should contain the maximum number of block ranges the device supports, but it always supports at least a single one. * This change lets the trim command do something on Virtual Box.
This commit is contained in:
@@ -623,6 +623,9 @@ AHCIPort::ScsiInquiry(scsi_ccb* request)
|
|||||||
fUse48BitCommands, ataData.lba_sector_count,
|
fUse48BitCommands, ataData.lba_sector_count,
|
||||||
ataData.lba48_sector_count, fSectorCount * fSectorSize);
|
ataData.lba48_sector_count, fSectorCount * fSectorSize);
|
||||||
if (fTrimSupported) {
|
if (fTrimSupported) {
|
||||||
|
if (fMaxTrimRangeBlocks == 0)
|
||||||
|
fMaxTrimRangeBlocks = 1;
|
||||||
|
|
||||||
bool deterministic = ataData.supports_deterministic_read_after_trim;
|
bool deterministic = ataData.supports_deterministic_read_after_trim;
|
||||||
TRACE("trim supported, %" B_PRIu32 " ranges blocks, reads are "
|
TRACE("trim supported, %" B_PRIu32 " ranges blocks, reads are "
|
||||||
"%sdeterministic%s.\n", fMaxTrimRangeBlocks,
|
"%sdeterministic%s.\n", fMaxTrimRangeBlocks,
|
||||||
|
|||||||
Reference in New Issue
Block a user