diff options
author | Krzysztof Kozlowski <k.kozlowski@samsung.com> | 2016-02-17 19:35:07 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-02-18 08:34:26 -0500 |
commit | 297eaaa6d0bf09a91045e1d8c9b1e555d8b91d8a (patch) | |
tree | 9a0c1e83b05c6b40d9ac00b101023f91e171db44 /drivers/regulator | |
parent | 92e963f50fc74041b5e9e744c330dca48e04f08d (diff) |
regulator: s2mps11: Simplify expression used in BUILD_BUG_ON
Following BUILD_BUG_ON using a variable fails for some of the compilers
and optimization levels (reported for gcc 4.9):
var = ARRAY_SIZE(s2mps15_regulators);
BUILD_BUG_ON(S2MPS_REGULATOR_MAX < var);
Fix this by using ARRAY_SIZE directly.
Additionally add missing BUILD_BUG_ON check for S2MPS15 device (the
check ensures that internal arrays are big enough to hold data for all
of regulators on all devices).
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Tested-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/s2mps11.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c index 3242ffc0cb25..df553fb40d82 100644 --- a/drivers/regulator/s2mps11.c +++ b/drivers/regulator/s2mps11.c | |||
@@ -1090,26 +1090,27 @@ static int s2mps11_pmic_probe(struct platform_device *pdev) | |||
1090 | case S2MPS11X: | 1090 | case S2MPS11X: |
1091 | s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators); | 1091 | s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators); |
1092 | regulators = s2mps11_regulators; | 1092 | regulators = s2mps11_regulators; |
1093 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); | 1093 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps11_regulators)); |
1094 | break; | 1094 | break; |
1095 | case S2MPS13X: | 1095 | case S2MPS13X: |
1096 | s2mps11->rdev_num = ARRAY_SIZE(s2mps13_regulators); | 1096 | s2mps11->rdev_num = ARRAY_SIZE(s2mps13_regulators); |
1097 | regulators = s2mps13_regulators; | 1097 | regulators = s2mps13_regulators; |
1098 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); | 1098 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps13_regulators)); |
1099 | break; | 1099 | break; |
1100 | case S2MPS14X: | 1100 | case S2MPS14X: |
1101 | s2mps11->rdev_num = ARRAY_SIZE(s2mps14_regulators); | 1101 | s2mps11->rdev_num = ARRAY_SIZE(s2mps14_regulators); |
1102 | regulators = s2mps14_regulators; | 1102 | regulators = s2mps14_regulators; |
1103 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); | 1103 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps14_regulators)); |
1104 | break; | 1104 | break; |
1105 | case S2MPS15X: | 1105 | case S2MPS15X: |
1106 | s2mps11->rdev_num = ARRAY_SIZE(s2mps15_regulators); | 1106 | s2mps11->rdev_num = ARRAY_SIZE(s2mps15_regulators); |
1107 | regulators = s2mps15_regulators; | 1107 | regulators = s2mps15_regulators; |
1108 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps15_regulators)); | ||
1108 | break; | 1109 | break; |
1109 | case S2MPU02: | 1110 | case S2MPU02: |
1110 | s2mps11->rdev_num = ARRAY_SIZE(s2mpu02_regulators); | 1111 | s2mps11->rdev_num = ARRAY_SIZE(s2mpu02_regulators); |
1111 | regulators = s2mpu02_regulators; | 1112 | regulators = s2mpu02_regulators; |
1112 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); | 1113 | BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mpu02_regulators)); |
1113 | break; | 1114 | break; |
1114 | default: | 1115 | default: |
1115 | dev_err(&pdev->dev, "Invalid device type: %u\n", | 1116 | dev_err(&pdev->dev, "Invalid device type: %u\n", |