If one specifies the end lun id to be the absolute number of luns,
without taking zero indexing into account, the lightnvm core will pass
the off-by-one end lun id to target creation, which then panics during
nvm_ioctl_dev_create.

Signed-off-by: Matias Bjørling <[email protected]>
---
 drivers/lightnvm/core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index 9bfe035..6ce76c0 100644
--- a/drivers/lightnvm/core.c
+++ b/drivers/lightnvm/core.c
@@ -1102,9 +1102,9 @@ static int __nvm_configure_create(struct nvm_ioctl_create 
*create)
        }
        s = &create->conf.s;
 
-       if (s->lun_begin > s->lun_end || s->lun_end > dev->geo.nr_luns) {
+       if (s->lun_begin > s->lun_end || s->lun_end >= dev->geo.nr_luns) {
                pr_err("nvm: lun out of bound (%u:%u > %u)\n",
-                       s->lun_begin, s->lun_end, dev->geo.nr_luns);
+                       s->lun_begin, s->lun_end, dev->geo.nr_luns - 1);
                return -EINVAL;
        }
 
-- 
2.9.3

Reply via email to