dm init: fix max devices/targets checks
dm-init should allow up to DM_MAX_{DEVICES,TARGETS} for devices/targets,
and not DM_MAX_{DEVICES,TARGETS} - 1.
Fix the checks and also fix the error message when the number of devices
is surpassed.
Fixes: 6bbc923dfc
("dm: add support to directly boot to a mapped device")
Cc: stable@vger.kernel.org
Signed-off-by: Helen Koike <helen.koike@collabora.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
e4f3fabd67
commit
8e890c1ab1
|
@ -160,7 +160,7 @@ static int __init dm_parse_table(struct dm_device *dev, char *str)
|
|||
|
||||
while (table_entry) {
|
||||
DMDEBUG("parsing table \"%s\"", str);
|
||||
if (++dev->dmi.target_count >= DM_MAX_TARGETS) {
|
||||
if (++dev->dmi.target_count > DM_MAX_TARGETS) {
|
||||
DMERR("too many targets %u > %d",
|
||||
dev->dmi.target_count, DM_MAX_TARGETS);
|
||||
return -EINVAL;
|
||||
|
@ -242,9 +242,9 @@ static int __init dm_parse_devices(struct list_head *devices, char *str)
|
|||
return -ENOMEM;
|
||||
list_add_tail(&dev->list, devices);
|
||||
|
||||
if (++ndev >= DM_MAX_DEVICES) {
|
||||
DMERR("too many targets %u > %d",
|
||||
dev->dmi.target_count, DM_MAX_TARGETS);
|
||||
if (++ndev > DM_MAX_DEVICES) {
|
||||
DMERR("too many devices %lu > %d",
|
||||
ndev, DM_MAX_DEVICES);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue