summaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-init.c
diff options
context:
space:
mode:
authorHelen Koike <helen.koike@collabora.com>2019-04-26 22:09:55 +0200
committerMike Snitzer <snitzer@redhat.com>2019-04-30 22:51:23 +0200
commit8e890c1ab1b1e0f765cd8da82c4dee011698a5e8 (patch)
tree3722a8c549b69287410427e2820bc422aa762a11 /drivers/md/dm-init.c
parentdm: add dust target (diff)
downloadlinux-8e890c1ab1b1e0f765cd8da82c4dee011698a5e8.tar.xz
linux-8e890c1ab1b1e0f765cd8da82c4dee011698a5e8.zip
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: 6bbc923dfcf57d ("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>
Diffstat (limited to 'drivers/md/dm-init.c')
-rw-r--r--drivers/md/dm-init.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/md/dm-init.c b/drivers/md/dm-init.c
index 4b76f84424c3..352e803f566e 100644
--- a/drivers/md/dm-init.c
+++ b/drivers/md/dm-init.c
@@ -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;
}