lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230824-regulator-remove-status-sysfs-v1-1-554956e8c1ca@kernel.org>
Date:   Thu, 24 Aug 2023 23:48:22 +0100
From:   Mark Brown <broonie@...nel.org>
To:     Liam Girdwood <lgirdwood@...il.com>,
        Naresh Solanki <naresh.solanki@...ements.com>,
        Zev Weiss <zev@...ilderbeest.net>
Cc:     linux-kernel@...r.kernel.org, Mark Brown <broonie@...nel.org>
Subject: [PATCH] regulator: userspace-consumer: Drop event support for this
 cycle

Drop commit 22475bcc2083 ("regulator: userspace-consumer: Add regulator
event support") since Zev Weiss points out that it leaks the constants
we use for notifications out as ABI which isn't ideal, we should have
something more abstracted there.  There's a definite need for this
feature but it needs some more work on the interface.

Signed-off-by: Mark Brown <broonie@...nel.org>
---
 drivers/regulator/userspace-consumer.c | 52 +---------------------------------
 1 file changed, 1 insertion(+), 51 deletions(-)

diff --git a/drivers/regulator/userspace-consumer.c b/drivers/regulator/userspace-consumer.c
index a0b980022993..97f075ed68c9 100644
--- a/drivers/regulator/userspace-consumer.c
+++ b/drivers/regulator/userspace-consumer.c
@@ -29,10 +29,6 @@ struct userspace_consumer_data {
 
 	int num_supplies;
 	struct regulator_bulk_data *supplies;
-
-	struct kobject *kobj;
-	struct notifier_block nb;
-	unsigned long events;
 };
 
 static ssize_t name_show(struct device *dev,
@@ -93,30 +89,12 @@ static ssize_t state_store(struct device *dev, struct device_attribute *attr,
 	return count;
 }
 
-static DEFINE_MUTEX(events_lock);
-
-static ssize_t events_show(struct device *dev,
-			   struct device_attribute *attr, char *buf)
-{
-	struct userspace_consumer_data *data = dev_get_drvdata(dev);
-	unsigned long e;
-
-	mutex_lock(&events_lock);
-	e = data->events;
-	data->events = 0;
-	mutex_unlock(&events_lock);
-
-	return sprintf(buf, "0x%lx\n", e);
-}
-
 static DEVICE_ATTR_RO(name);
 static DEVICE_ATTR_RW(state);
-static DEVICE_ATTR_RO(events);
 
 static struct attribute *attributes[] = {
 	&dev_attr_name.attr,
 	&dev_attr_state.attr,
-	&dev_attr_events.attr,
 	NULL,
 };
 
@@ -137,28 +115,12 @@ static const struct attribute_group attr_group = {
 	.is_visible =  attr_visible,
 };
 
-static int regulator_userspace_notify(struct notifier_block *nb,
-				      unsigned long event,
-				      void *ignored)
-{
-	struct userspace_consumer_data *data =
-		container_of(nb, struct userspace_consumer_data, nb);
-
-	mutex_lock(&events_lock);
-	data->events |= event;
-	mutex_unlock(&events_lock);
-
-	sysfs_notify(data->kobj, NULL, dev_attr_events.attr.name);
-
-	return NOTIFY_OK;
-}
-
 static int regulator_userspace_consumer_probe(struct platform_device *pdev)
 {
 	struct regulator_userspace_consumer_data tmpdata;
 	struct regulator_userspace_consumer_data *pdata;
 	struct userspace_consumer_data *drvdata;
-	int i, ret;
+	int ret;
 
 	pdata = dev_get_platdata(&pdev->dev);
 	if (!pdata) {
@@ -191,7 +153,6 @@ static int regulator_userspace_consumer_probe(struct platform_device *pdev)
 	drvdata->num_supplies = pdata->num_supplies;
 	drvdata->supplies = pdata->supplies;
 	drvdata->no_autoswitch = pdata->no_autoswitch;
-	drvdata->kobj = &pdev->dev.kobj;
 
 	mutex_init(&drvdata->lock);
 
@@ -225,13 +186,6 @@ static int regulator_userspace_consumer_probe(struct platform_device *pdev)
 	}
 	drvdata->enabled = !!ret;
 
-	drvdata->nb.notifier_call = regulator_userspace_notify;
-	for (i = 0; i < drvdata->num_supplies; i++) {
-		ret = devm_regulator_register_notifier(drvdata->supplies[i].consumer, &drvdata->nb);
-		if (ret)
-			goto err_enable;
-	}
-
 	return 0;
 
 err_enable:
@@ -243,10 +197,6 @@ static int regulator_userspace_consumer_probe(struct platform_device *pdev)
 static int regulator_userspace_consumer_remove(struct platform_device *pdev)
 {
 	struct userspace_consumer_data *data = platform_get_drvdata(pdev);
-	int i;
-
-	for (i = 0; i < data->num_supplies; i++)
-		devm_regulator_unregister_notifier(data->supplies[i].consumer, &data->nb);
 
 	sysfs_remove_group(&pdev->dev.kobj, &attr_group);
 

---
base-commit: 21cc7f816c670423a9dae06ad7de5fbc40da97c7
change-id: 20230824-regulator-remove-status-sysfs-e27d4618cd6a

Best regards,
-- 
Mark Brown <broonie@...nel.org>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ