All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/2] regulator: core: Release coupled_rdevs on regulator_init_coupling() error
@ 2019-10-25  0:22 Dmitry Osipenko
  2019-10-25  0:22 ` [PATCH v1 2/2] regulator: core: Allow generic coupling only for always-on regulators Dmitry Osipenko
  2019-10-28 14:56 ` Applied "regulator: core: Release coupled_rdevs on regulator_init_coupling() error" " Mark Brown
  0 siblings, 2 replies; 4+ messages in thread
From: Dmitry Osipenko @ 2019-10-25  0:22 UTC (permalink / raw)
  To: Mark Brown; +Cc: linux-kernel

This patch fixes memory leak which should happen if regulator's coupling
fails to initialize.

Fixes: d8ca7d184b33 ("regulator: core: Introduce API for regulators coupling customization")
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/regulator/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index a46be221dbdc..51ce280c1ce1 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -5198,6 +5198,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
 	regulator_remove_coupling(rdev);
 	mutex_unlock(&regulator_list_mutex);
 wash:
+	kfree(rdev->coupling_desc.coupled_rdevs);
 	kfree(rdev->constraints);
 	mutex_lock(&regulator_list_mutex);
 	regulator_ena_gpio_free(rdev);
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v1 2/2] regulator: core: Allow generic coupling only for always-on regulators
  2019-10-25  0:22 [PATCH v1 1/2] regulator: core: Release coupled_rdevs on regulator_init_coupling() error Dmitry Osipenko
@ 2019-10-25  0:22 ` Dmitry Osipenko
  2019-10-28 14:56   ` Applied "regulator: core: Allow generic coupling only for always-on regulators" to the regulator tree Mark Brown
  2019-10-28 14:56 ` Applied "regulator: core: Release coupled_rdevs on regulator_init_coupling() error" " Mark Brown
  1 sibling, 1 reply; 4+ messages in thread
From: Dmitry Osipenko @ 2019-10-25  0:22 UTC (permalink / raw)
  To: Mark Brown; +Cc: linux-kernel

The generic voltage balancer doesn't work correctly if one of regulator
couples turns off. Currently there are no users in kernel for that case,
although let's explicitly show that this case is unsupported for those who
will try to use that feature.

Link: https://lore.kernel.org/linux-samsung-soc/20191008170503.yd6GscYPLxjgrXqDuCO7AJc6i6egNZGJkVWHLlCxvA4@z/
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
 drivers/regulator/core.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 51ce280c1ce1..970905124382 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4963,6 +4963,12 @@ static int generic_coupler_attach(struct regulator_coupler *coupler,
 		return -EPERM;
 	}
 
+	if (!rdev->constraints->always_on) {
+		rdev_err(rdev,
+			 "Coupling of a non always-on regulator is unimplemented\n");
+		return -ENOTSUPP;
+	}
+
 	return 0;
 }
 
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Applied "regulator: core: Allow generic coupling only for always-on regulators" to the regulator tree
  2019-10-25  0:22 ` [PATCH v1 2/2] regulator: core: Allow generic coupling only for always-on regulators Dmitry Osipenko
@ 2019-10-28 14:56   ` Mark Brown
  0 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2019-10-28 14:56 UTC (permalink / raw)
  To: Dmitry Osipenko; +Cc: linux-kernel, Mark Brown

The patch

   regulator: core: Allow generic coupling only for always-on regulators

has been applied to the regulator tree at

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-5.5

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From e381bfe45a891a5894465f072c5bbf3ed3e33b8a Mon Sep 17 00:00:00 2001
From: Dmitry Osipenko <digetx@gmail.com>
Date: Fri, 25 Oct 2019 03:22:40 +0300
Subject: [PATCH] regulator: core: Allow generic coupling only for always-on
 regulators

The generic voltage balancer doesn't work correctly if one of regulator
couples turns off. Currently there are no users in kernel for that case,
although let's explicitly show that this case is unsupported for those who
will try to use that feature.

Link: https://lore.kernel.org/linux-samsung-soc/20191008170503.yd6GscYPLxjgrXqDuCO7AJc6i6egNZGJkVWHLlCxvA4@z/
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20191025002240.25288-2-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 drivers/regulator/core.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index a46be221dbdc..a5b2a9b02108 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4963,6 +4963,12 @@ static int generic_coupler_attach(struct regulator_coupler *coupler,
 		return -EPERM;
 	}
 
+	if (!rdev->constraints->always_on) {
+		rdev_err(rdev,
+			 "Coupling of a non always-on regulator is unimplemented\n");
+		return -ENOTSUPP;
+	}
+
 	return 0;
 }
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Applied "regulator: core: Release coupled_rdevs on regulator_init_coupling() error" to the regulator tree
  2019-10-25  0:22 [PATCH v1 1/2] regulator: core: Release coupled_rdevs on regulator_init_coupling() error Dmitry Osipenko
  2019-10-25  0:22 ` [PATCH v1 2/2] regulator: core: Allow generic coupling only for always-on regulators Dmitry Osipenko
@ 2019-10-28 14:56 ` Mark Brown
  1 sibling, 0 replies; 4+ messages in thread
From: Mark Brown @ 2019-10-28 14:56 UTC (permalink / raw)
  To: Dmitry Osipenko; +Cc: linux-kernel, Mark Brown

The patch

   regulator: core: Release coupled_rdevs on regulator_init_coupling() error

has been applied to the regulator tree at

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-5.4

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.  

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

From 26c2c997aa1a6c5522f6619910ba025e53e69763 Mon Sep 17 00:00:00 2001
From: Dmitry Osipenko <digetx@gmail.com>
Date: Fri, 25 Oct 2019 03:22:39 +0300
Subject: [PATCH] regulator: core: Release coupled_rdevs on
 regulator_init_coupling() error

This patch fixes memory leak which should happen if regulator's coupling
fails to initialize.

Fixes: d8ca7d184b33 ("regulator: core: Introduce API for regulators coupling customization")
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/20191025002240.25288-1-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 drivers/regulator/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index a46be221dbdc..51ce280c1ce1 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -5198,6 +5198,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
 	regulator_remove_coupling(rdev);
 	mutex_unlock(&regulator_list_mutex);
 wash:
+	kfree(rdev->coupling_desc.coupled_rdevs);
 	kfree(rdev->constraints);
 	mutex_lock(&regulator_list_mutex);
 	regulator_ena_gpio_free(rdev);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-10-28 14:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-25  0:22 [PATCH v1 1/2] regulator: core: Release coupled_rdevs on regulator_init_coupling() error Dmitry Osipenko
2019-10-25  0:22 ` [PATCH v1 2/2] regulator: core: Allow generic coupling only for always-on regulators Dmitry Osipenko
2019-10-28 14:56   ` Applied "regulator: core: Allow generic coupling only for always-on regulators" to the regulator tree Mark Brown
2019-10-28 14:56 ` Applied "regulator: core: Release coupled_rdevs on regulator_init_coupling() error" " Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.