diff options
author | Matias Bjørling <matias@cnexlabs.com> | 2017-02-15 16:25:32 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-02-15 08:27:19 -0700 |
commit | 0e5ffd1cb5f7ce19f23cc829d5dc3ebb1491570f (patch) | |
tree | a1e8f48934b75dd5e7e0cd9f6c292c82f24be26b /drivers/lightnvm | |
parent | 0222967ba05a0a0f845f7dd54fb3da82afae024d (diff) | |
download | op-kernel-dev-0e5ffd1cb5f7ce19f23cc829d5dc3ebb1491570f.zip op-kernel-dev-0e5ffd1cb5f7ce19f23cc829d5dc3ebb1491570f.tar.gz |
lightnvm: fix off-by-one error on target initialization
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 <matias@cnexlabs.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/lightnvm')
-rw-r--r-- | drivers/lightnvm/core.c | 4 |
1 files 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; } |