pinctrl: sprd: fix off by one bugs
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 7 Sep 2017 11:12:05 +0000 (14:12 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 12 Sep 2017 09:27:36 +0000 (11:27 +0200)
info->groups[] has info->ngroups elements so these comparisons should be
>= instead of >.

Fixes: 41d32cfce1ae ("pinctrl: sprd: Add Spreadtrum pin control driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Baolin Wang <baolin.wang@spreadtrum.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sprd/pinctrl-sprd.c

index e52a01e..6352991 100644 (file)
@@ -400,7 +400,7 @@ static int sprd_pmx_set_mux(struct pinctrl_dev *pctldev,
        unsigned long reg;
        unsigned int val = 0;
 
-       if (group_selector > info->ngroups)
+       if (group_selector >= info->ngroups)
                return -EINVAL;
 
        switch (func_selector) {
@@ -734,7 +734,7 @@ static int sprd_pinconf_group_get(struct pinctrl_dev *pctldev,
        struct sprd_pin_group *grp;
        unsigned int pin_id;
 
-       if (selector > info->ngroups)
+       if (selector >= info->ngroups)
                return -EINVAL;
 
        grp = &info->groups[selector];
@@ -753,7 +753,7 @@ static int sprd_pinconf_group_set(struct pinctrl_dev *pctldev,
        struct sprd_pin_group *grp;
        int ret, i;
 
-       if (selector > info->ngroups)
+       if (selector >= info->ngroups)
                return -EINVAL;
 
        grp = &info->groups[selector];
@@ -813,7 +813,7 @@ static void sprd_pinconf_group_dbg_show(struct pinctrl_dev *pctldev,
        const char *name;
        int i, ret;
 
-       if (selector > info->ngroups)
+       if (selector >= info->ngroups)
                return;
 
        grp = &info->groups[selector];