Hi Krzysztof, > 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 <a...@arndb.de> > Signed-off-by: Krzysztof Kozlowski <k.kozlow...@samsung.com> >
[...] > case S2MPS11X: > s2mps11->rdev_num = ARRAY_SIZE(s2mps11_regulators); Why don't we remove rdev_num at all? It's not used that much other than in the probe function. > regulators = s2mps11_regulators; > - BUILD_BUG_ON(S2MPS_REGULATOR_MAX < s2mps11->rdev_num); > + BUILD_BUG_ON(S2MPS_REGULATOR_MAX < > ARRAY_SIZE(s2mps11_regulators)); > break; Andi