aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2016-02-17 19:35:07 -0500
committerMark Brown <broonie@kernel.org>2016-02-18 08:34:26 -0500
commit297eaaa6d0bf09a91045e1d8c9b1e555d8b91d8a (patch)
tree9a0c1e83b05c6b40d9ac00b101023f91e171db44 /drivers/regulator
parent92e963f50fc74041b5e9e744c330dca48e04f08d (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.c9
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",