diff mbox

lightnvm: do not load L2P table if not supported

Message ID 1456932094-9808-1-git-send-email-javier@javigon.com (mailing list archive)
State New, archived
Headers show

Commit Message

=?UTF-8?q?Javier=20Gonz=C3=A1lez?= March 2, 2016, 3:21 p.m. UTC
An Open-Channel SSD can work on two modes: (i) hybrid mode, where the
L2P table is maintained both by the host and by the device; and (ii)
full host-based, where the L2P table is uniquely maintained by the host.
The current rrpc target operates on hybrid mode.

In the advent of a new target implementing the full host-based mode, do
not assume that the L2P table must be loaded on the generic media
manager; check device properties loaded on the identify command instead.

Signed-off-by: Javier González <javier@cnexlabs.com>
---
 drivers/lightnvm/gennvm.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Matias Bjorling March 2, 2016, 6:53 p.m. UTC | #1
On 03/02/2016 04:21 PM, Javier González wrote:
> An Open-Channel SSD can work on two modes: (i) hybrid mode, where the
> L2P table is maintained both by the host and by the device; and (ii)
> full host-based, where the L2P table is uniquely maintained by the host.
> The current rrpc target operates on hybrid mode.
>
> In the advent of a new target implementing the full host-based mode, do
> not assume that the L2P table must be loaded on the generic media
> manager; check device properties loaded on the identify command instead.
>
> Signed-off-by: Javier González <javier@cnexlabs.com>
> ---
>   drivers/lightnvm/gennvm.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/lightnvm/gennvm.c b/drivers/lightnvm/gennvm.c
> index 42c1c2a..0625d42 100644
> --- a/drivers/lightnvm/gennvm.c
> +++ b/drivers/lightnvm/gennvm.c
> @@ -257,6 +257,9 @@ static int gennvm_blocks_init(struct nvm_dev *dev, struct gen_nvm *gn)
>   		}
>   	}
>
> +	if (!(dev->identity.dom & NVM_RSP_L2P))
> +		return 0;
> +
>   	if (dev->ops->get_l2p_tbl) {
>   		ret = dev->ops->get_l2p_tbl(dev, 0, dev->total_secs,
>   							gennvm_block_map, dev);
>

Thanks, applied for 4.6.
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/lightnvm/gennvm.c b/drivers/lightnvm/gennvm.c
index 42c1c2a..0625d42 100644
--- a/drivers/lightnvm/gennvm.c
+++ b/drivers/lightnvm/gennvm.c
@@ -257,6 +257,9 @@  static int gennvm_blocks_init(struct nvm_dev *dev, struct gen_nvm *gn)
 		}
 	}
 
+	if (!(dev->identity.dom & NVM_RSP_L2P))
+		return 0;
+
 	if (dev->ops->get_l2p_tbl) {
 		ret = dev->ops->get_l2p_tbl(dev, 0, dev->total_secs,
 							gennvm_block_map, dev);