
From: Jon Nettleton jon@solid-run.com
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 ---
drivers/nvme/nvme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c index feea02a..bac253a 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -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);