nvme: Fix number of blocks detection
NVMe should use the nsze value from the queried device. This will reflect the total number of blocks of the device and fix detecting my Samsung 960 EVO 256GB. Original: Capacity: 40386.6 MB = 39.4 GB (82711872 x 512) Fixed: Capacity: 238475.1 MB = 232.8 GB (488397168 x 512) Signed-off-by: Jon Nettleton <jon@solid-run.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
@@ -620,7 +620,7 @@ static int nvme_blk_probe(struct udevice *udev)
|
||||
flbas = id->flbas & NVME_NS_FLBAS_LBA_MASK;
|
||||
ns->flbas = flbas;
|
||||
ns->lba_shift = id->lbaf[flbas].ds;
|
||||
ns->mode_select_num_blocks = le64_to_cpu(id->nuse);
|
||||
ns->mode_select_num_blocks = le64_to_cpu(id->nsze);
|
||||
ns->mode_select_block_len = 1 << ns->lba_shift;
|
||||
list_add(&ns->list, &ndev->namespaces);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user