Re: [PATCH] regulator: Update consumer state only after setvoltage succeeds.

From: Mark Brown
Date: Mon Dec 20 2010 - 07:39:13 EST


On Fri, Dec 17, 2010 at 02:44:28PM -0800, Saravana Kannan wrote:

> static int regulator_check_consumers(struct regulator_dev *rdev,
> + struct regulator *ignore,
> int *min_uV, int *max_uV)

This feels really invasive, and prone to robustness issues as we're just
randomly not checking one of the consumers on a single call, meaning we
skip some checking some of the time. It's not going to make the code
more maintainable.

> - regulator->min_uV = min_uV;
> - regulator->max_uV = max_uV;
> -
> - ret = regulator_check_consumers(rdev, &min_uV, &max_uV);
> + ret = regulator_check_consumers(rdev, regulator, &min_uV, &max_uV);
> if (ret < 0)
> goto out;
>
> ret = _regulator_do_set_voltage(rdev, min_uV, max_uV);
> + if (!ret) {
> + regulator->min_uV = min_uV;
> + regulator->max_uV = max_uV;
> + }

If you're going to do something probably unwinding the assignment on
error would cover it.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/