if total sectors is greater than 0xffffffff, use this value for ReadCapacity().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39313 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -179,8 +179,11 @@ ATADevice::ReadCapacity(ATARequest *request)
|
||||
scsi_res_read_capacity data;
|
||||
data.block_size = B_HOST_TO_BENDIAN_INT32(fBlockSize);
|
||||
|
||||
uint32 lastBlock = fTotalSectors - 1;
|
||||
data.lba = B_HOST_TO_BENDIAN_INT32(lastBlock);
|
||||
if (fTotalSectors <= UINT_MAX) {
|
||||
uint32 lastBlock = fTotalSectors - 1;
|
||||
data.lba = B_HOST_TO_BENDIAN_INT32(lastBlock);
|
||||
} else
|
||||
data.lba = UINT_MAX;
|
||||
TRACE("returning last block: %lu\n", B_BENDIAN_TO_HOST_INT32(data.lba));
|
||||
|
||||
copy_sg_data(ccb, 0, ccb->data_length, &data, sizeof(data), false);
|
||||
|
||||
Reference in New Issue
Block a user