diff --git a/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp b/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp index 4852ca6ea7..8ba6ebace0 100644 --- a/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp +++ b/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp @@ -199,8 +199,7 @@ ATADevice::ReadCapacity16(ATARequest *request) data.block_size = B_HOST_TO_BENDIAN_INT32(fBlockSize); uint64 lastBlock = fTotalSectors - 1; - data.lba = (((uint64)B_HOST_TO_BENDIAN_INT32(lastBlock >> 32)) << 32) - | B_HOST_TO_BENDIAN_INT32(lastBlock); + data.lba = B_HOST_TO_BENDIAN_INT64(lastBlock); TRACE("returning last block: %llu\n", data.lba); copy_sg_data(ccb, 0, ccb->data_length, &data, sizeof(data), false); diff --git a/src/add-ons/kernel/generic/scsi_periph/block.cpp b/src/add-ons/kernel/generic/scsi_periph/block.cpp index 849657873a..6a4b6cb933 100644 --- a/src/add-ons/kernel/generic/scsi_periph/block.cpp +++ b/src/add-ons/kernel/generic/scsi_periph/block.cpp @@ -76,9 +76,7 @@ periph_check_capacity(scsi_periph_device_info *device, scsi_ccb *request) ACQUIRE_BEN(&device->mutex); if (res == B_OK && request->data_resid == 0) { - capacity = (((uint64)B_BENDIAN_TO_HOST_INT32( - capacityLongResult.lba >> 32)) << 32) - | B_BENDIAN_TO_HOST_INT32(capacityLongResult.lba); + capacity = B_BENDIAN_TO_HOST_INT64(capacityLongResult.lba); } else capacity = 0; }