From d893a73e1ed7467b2a69e2e62c3a021045f16b42 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Sun, 11 Mar 2018 18:24:23 -0700 Subject: [PATCH] ahcid: fix atapi capacity detection --- ahcid/src/ahci/disk_atapi.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ahcid/src/ahci/disk_atapi.rs b/ahcid/src/ahci/disk_atapi.rs index 0dd7b69966..a0aa71baff 100644 --- a/ahcid/src/ahci/disk_atapi.rs +++ b/ahcid/src/ahci/disk_atapi.rs @@ -63,7 +63,8 @@ impl DiskATAPI { cmd[0] = SCSI_READ_CAPACITY; self.port.packet(&cmd, 8, &mut self.clb, &mut self.ctbas, &mut self.buf)?; - let blk_count = BigEndian::read_u32(&self.buf[0..4]); + // Instead of a count, contains number of last LBA, so add 1 + let blk_count = BigEndian::read_u32(&self.buf[0..4]) + 1; let blk_size = BigEndian::read_u32(&self.buf[4..8]); Ok((blk_count, blk_size))