diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2017-09-07 07:12:05 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2017-09-12 05:27:36 -0400 |
commit | 4ce504c4eb5628073f35d38efe490554a12aee04 (patch) | |
tree | 16e635bcdc7069d4241c7d4c95643e61cb13f0ac | |
parent | 41470c379b4f8d9a1513d930338fadfbccc287b6 (diff) |
pinctrl: sprd: fix off by one bugs
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>
-rw-r--r-- | drivers/pinctrl/sprd/pinctrl-sprd.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/pinctrl/sprd/pinctrl-sprd.c b/drivers/pinctrl/sprd/pinctrl-sprd.c index e52a01e1f662..63529911445c 100644 --- a/drivers/pinctrl/sprd/pinctrl-sprd.c +++ b/drivers/pinctrl/sprd/pinctrl-sprd.c | |||
@@ -400,7 +400,7 @@ static int sprd_pmx_set_mux(struct pinctrl_dev *pctldev, | |||
400 | unsigned long reg; | 400 | unsigned long reg; |
401 | unsigned int val = 0; | 401 | unsigned int val = 0; |
402 | 402 | ||
403 | if (group_selector > info->ngroups) | 403 | if (group_selector >= info->ngroups) |
404 | return -EINVAL; | 404 | return -EINVAL; |
405 | 405 | ||
406 | switch (func_selector) { | 406 | switch (func_selector) { |
@@ -734,7 +734,7 @@ static int sprd_pinconf_group_get(struct pinctrl_dev *pctldev, | |||
734 | struct sprd_pin_group *grp; | 734 | struct sprd_pin_group *grp; |
735 | unsigned int pin_id; | 735 | unsigned int pin_id; |
736 | 736 | ||
737 | if (selector > info->ngroups) | 737 | if (selector >= info->ngroups) |
738 | return -EINVAL; | 738 | return -EINVAL; |
739 | 739 | ||
740 | grp = &info->groups[selector]; | 740 | grp = &info->groups[selector]; |
@@ -753,7 +753,7 @@ static int sprd_pinconf_group_set(struct pinctrl_dev *pctldev, | |||
753 | struct sprd_pin_group *grp; | 753 | struct sprd_pin_group *grp; |
754 | int ret, i; | 754 | int ret, i; |
755 | 755 | ||
756 | if (selector > info->ngroups) | 756 | if (selector >= info->ngroups) |
757 | return -EINVAL; | 757 | return -EINVAL; |
758 | 758 | ||
759 | grp = &info->groups[selector]; | 759 | grp = &info->groups[selector]; |
@@ -813,7 +813,7 @@ static void sprd_pinconf_group_dbg_show(struct pinctrl_dev *pctldev, | |||
813 | const char *name; | 813 | const char *name; |
814 | int i, ret; | 814 | int i, ret; |
815 | 815 | ||
816 | if (selector > info->ngroups) | 816 | if (selector >= info->ngroups) |
817 | return; | 817 | return; |
818 | 818 | ||
819 | grp = &info->groups[selector]; | 819 | grp = &info->groups[selector]; |