Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1336901
| From | Krzysztof Kozlowski <k.kozlowski@samsung.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON |
| Date | 2016-02-18 01:40 +0100 |
| Message-ID | <r3kNs-5NL-9@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
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> --- Changes since v1: 1. Rewritten description after comments from Jacob. See results when UBSAN is enabled: http://arm-soc.lixom.net/buildlogs/arm-soc/v4.5-rc4-39-g0d7baf0/buildall.arm.exynos_defconfig.log.failed --- drivers/regulator/s2mps11.c | 9 +++++---- 1 file 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) case S2MPS11X: s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators); regulators = s2mps11_regulators; - BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); + BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps11_regulators)); break; case S2MPS13X: s2mps11->rdev_num = ARRAY_SIZE(s2mps13_regulators); regulators = s2mps13_regulators; - BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); + BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps13_regulators)); break; case S2MPS14X: s2mps11->rdev_num = ARRAY_SIZE(s2mps14_regulators); regulators = s2mps14_regulators; - BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); + BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps14_regulators)); break; case S2MPS15X: s2mps11->rdev_num = ARRAY_SIZE(s2mps15_regulators); regulators = s2mps15_regulators; + BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mps15_regulators)); break; case S2MPU02: s2mps11->rdev_num = ARRAY_SIZE(s2mpu02_regulators); regulators = s2mpu02_regulators; - BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); + BUILD_BUG_ON(S2MPS_REGULATOR_MAX < ARRAY_SIZE(s2mpu02_regulators)); break; default: dev_err(&pdev->dev, "Invalid device type: %u\n", -- 2.5.0
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-02-18 01:40 +0100
Re: [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-02-18 02:40 +0100
Re: [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Krzysztof Kozlowski <k.kozlowski@samsung.com> - 2016-02-18 02:50 +0100
Re: [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Arnd Bergmann <arnd@arndb.de> - 2016-02-18 10:10 +0100
Re: [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Andi Shyti <andi.shyti@samsung.com> - 2016-02-18 02:50 +0100
Re: [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Andi Shyti <andi.shyti@samsung.com> - 2016-02-18 02:40 +0100
Re: [PATCH v2] regulator: s2mps11: Simplify expression used in BUILD_BUG_ON Arnd Bergmann <arnd@arndb.de> - 2016-02-18 10:10 +0100
csiph-web