During regulator init, cm3217_vregs is accessed out of range.
This causes kernel panic during shutdown.
Hence, fix the init code.
Bug
1373590
Change-Id: If969b51d0303aaaaea61153e53cc3055fe063486
Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com>
Reviewed-on: http://git-master/r/301208
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
unsigned int i;
int err = 0;
- /* regulator names in order of powering on */
+ /*
+ * regulator names in order of powering on.
+ * ARRAY_SIZE(cm3217_vregs) must be < CM3217_MAX_REGULATORS
+ */
char *cm3217_vregs[] = {
"vdd",
};
- for (i = 0; i < CM3217_MAX_REGULATORS; i++) {
+ for (i = 0; i < ARRAY_SIZE(cm3217_vregs); i++) {
inf->vreg[i].supply = cm3217_vregs[i];
inf->vreg[i].ret = 0;
inf->vreg[i].consumer = regulator_get(&inf->i2c->dev,
inf->vreg[i].consumer = NULL;
}
}
+ for (; i < CM3217_MAX_REGULATORS; i++)
+ inf->vreg[i].consumer = NULL;
return err;
}