summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-core.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index e3f1c3da5950..980328a4b896 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1103,18 +1103,16 @@ static u64 ata_id_n_sectors(const u16 *id)
if (ata_id_has_lba(id)) {
if (ata_id_has_lba48(id))
return ata_id_u64(id, ATA_ID_LBA_CAPACITY_2);
- else
- return ata_id_u32(id, ATA_ID_LBA_CAPACITY);
- } else {
- if (ata_id_current_chs_valid(id))
- return (u32)id[ATA_ID_CUR_CYLS] *
- (u32)id[ATA_ID_CUR_HEADS] *
- (u32)id[ATA_ID_CUR_SECTORS];
- else
- return (u32)id[ATA_ID_CYLS] *
- (u32)id[ATA_ID_HEADS] *
- (u32)id[ATA_ID_SECTORS];
+
+ return ata_id_u32(id, ATA_ID_LBA_CAPACITY);
}
+
+ if (ata_id_current_chs_valid(id))
+ return (u32)id[ATA_ID_CUR_CYLS] * (u32)id[ATA_ID_CUR_HEADS] *
+ (u32)id[ATA_ID_CUR_SECTORS];
+
+ return (u32)id[ATA_ID_CYLS] * (u32)id[ATA_ID_HEADS] *
+ (u32)id[ATA_ID_SECTORS];
}
u64 ata_tf_to_lba48(const struct ata_taskfile *tf)