power: supply: max17040: handle device_property_read_u8_array() failure
The device_property_read_u8_array() call should not fail because it is preceded with device_property_count_u8() and check for number of readable u8 values. However the code is more obvious and easier to read if the return value of device_property_read_u8_array() is checked. Otherwise reader needs to investigate whether really there is no risk of using random stack values of 'rcomp' variable. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
01dcfe7849
commit
a837f35c5a
@ -268,11 +268,10 @@ static int max17040_get_of_data(struct max17040_chip *chip)
|
||||
rcomp_len = device_property_count_u8(dev, "maxim,rcomp");
|
||||
chip->rcomp = MAX17040_RCOMP_DEFAULT;
|
||||
if (rcomp_len == data->rcomp_bytes) {
|
||||
device_property_read_u8_array(dev, "maxim,rcomp",
|
||||
rcomp, rcomp_len);
|
||||
chip->rcomp = rcomp_len == 2 ?
|
||||
rcomp[0] << 8 | rcomp[1] :
|
||||
rcomp[0] << 8;
|
||||
if (!device_property_read_u8_array(dev, "maxim,rcomp",
|
||||
rcomp, rcomp_len))
|
||||
chip->rcomp = rcomp_len == 2 ? rcomp[0] << 8 | rcomp[1] :
|
||||
rcomp[0] << 8;
|
||||
} else if (rcomp_len > 0) {
|
||||
dev_err(dev, "maxim,rcomp has incorrect length\n");
|
||||
return -EINVAL;
|
||||
|
Loading…
Reference in New Issue
Block a user