In the OCSSD 2.0 spec., the sector and metadata sizes are reported though the standard nvme identify command. Thus, the lightnvm subsystem needs to update this information on the geometry structure on bootup. Since 1.2 devices report these values on the OCSSD geometry identify, avoid this update is it is unnecessary and can also corrupt the geometry if the devices does not report the nvme sizes correctly (which is not required by the OCSSD 1.2 spec either) Signed-off-by: Javier González <javier@xxxxxxxxxxxx> --- drivers/nvme/host/lightnvm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c index 5bfa354c5dd5..33ed09f8410e 100644 --- a/drivers/nvme/host/lightnvm.c +++ b/drivers/nvme/host/lightnvm.c @@ -980,6 +980,9 @@ void nvme_nvm_update_nvm_info(struct nvme_ns *ns) struct nvm_dev *ndev = ns->ndev; struct nvm_geo *geo = &ndev->geo; + if (geo->version == NVM_OCSSD_SPEC_12) + return; + geo->csecs = 1 << ns->lba_shift; geo->sos = ns->ms; } -- 2.7.4