All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] nvmem: use is_bin_visible callback
@ 2020-03-24 17:15 Srinivas Kandagatla
  2020-03-24 17:15 ` [PATCH 1/3] nvmem: core: use device_register and device_unregister Srinivas Kandagatla
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Srinivas Kandagatla @ 2020-03-24 17:15 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, nicholas.johnson-opensource, Srinivas Kandagatla

Hi Greg,

As suggested I managed to use is_bin_visible for the existing code and
one cleanup for using device_register/unregister directly instead of splitting.

Note: this does not add any new functionality, its just a cleanup

Thanks,
srini

Srinivas Kandagatla (3):
  nvmem: core: use device_register and device_unregister
  nvmem: core: add root_only member to nvmem device struct
  nvmem: core: use is_bin_visible for permissions

 drivers/nvmem/core.c        |  8 ++--
 drivers/nvmem/nvmem-sysfs.c | 74 +++++++++----------------------------
 drivers/nvmem/nvmem.h       |  1 +
 3 files changed, 22 insertions(+), 61 deletions(-)

-- 
2.21.0


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

* [PATCH 1/3] nvmem: core: use device_register and device_unregister
  2020-03-24 17:15 [PATCH 0/3] nvmem: use is_bin_visible callback Srinivas Kandagatla
@ 2020-03-24 17:15 ` Srinivas Kandagatla
  2020-03-24 17:15 ` [PATCH 2/3] nvmem: core: add root_only member to nvmem device struct Srinivas Kandagatla
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Srinivas Kandagatla @ 2020-03-24 17:15 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, nicholas.johnson-opensource, Srinivas Kandagatla

use device_register/unregister instead of spliting them with no use.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/core.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 77d890d3623d..e8f7bea93abf 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -397,11 +397,9 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 
 	nvmem->dev.groups = nvmem_sysfs_get_groups(nvmem, config);
 
-	device_initialize(&nvmem->dev);
-
 	dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
 
-	rval = device_add(&nvmem->dev);
+	rval = device_register(&nvmem->dev);
 	if (rval)
 		goto err_put_device;
 
@@ -455,8 +453,7 @@ static void nvmem_device_release(struct kref *kref)
 		device_remove_bin_file(nvmem->base_dev, &nvmem->eeprom);
 
 	nvmem_device_remove_all_cells(nvmem);
-	device_del(&nvmem->dev);
-	put_device(&nvmem->dev);
+	device_unregister(&nvmem->dev);
 }
 
 /**
-- 
2.21.0


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

* [PATCH 2/3] nvmem: core: add root_only member to nvmem device struct
  2020-03-24 17:15 [PATCH 0/3] nvmem: use is_bin_visible callback Srinivas Kandagatla
  2020-03-24 17:15 ` [PATCH 1/3] nvmem: core: use device_register and device_unregister Srinivas Kandagatla
@ 2020-03-24 17:15 ` Srinivas Kandagatla
  2020-03-24 17:16 ` [PATCH 3/3] nvmem: core: use is_bin_visible for permissions Srinivas Kandagatla
  2020-03-24 17:58 ` [PATCH 0/3] nvmem: use is_bin_visible callback Greg KH
  3 siblings, 0 replies; 10+ messages in thread
From: Srinivas Kandagatla @ 2020-03-24 17:15 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, nicholas.johnson-opensource, Srinivas Kandagatla

As we are planning to move to use sysfs is_bin_visible callback,
having root_only as part of nvmem_device will help decide correct
permissions.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/core.c  | 1 +
 drivers/nvmem/nvmem.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index e8f7bea93abf..7d28e1cca4e0 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -377,6 +377,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
 	nvmem->dev.type = &nvmem_provider_type;
 	nvmem->dev.bus = &nvmem_bus_type;
 	nvmem->dev.parent = config->dev;
+	nvmem->root_only = config->root_only;
 	nvmem->priv = config->priv;
 	nvmem->type = config->type;
 	nvmem->reg_read = config->reg_read;
diff --git a/drivers/nvmem/nvmem.h b/drivers/nvmem/nvmem.h
index be0d66d75c8a..16c0d3ad6679 100644
--- a/drivers/nvmem/nvmem.h
+++ b/drivers/nvmem/nvmem.h
@@ -20,6 +20,7 @@ struct nvmem_device {
 	struct kref		refcnt;
 	size_t			size;
 	bool			read_only;
+	bool			root_only;
 	int			flags;
 	enum nvmem_type		type;
 	struct bin_attribute	eeprom;
-- 
2.21.0


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

* [PATCH 3/3] nvmem: core: use is_bin_visible for permissions
  2020-03-24 17:15 [PATCH 0/3] nvmem: use is_bin_visible callback Srinivas Kandagatla
  2020-03-24 17:15 ` [PATCH 1/3] nvmem: core: use device_register and device_unregister Srinivas Kandagatla
  2020-03-24 17:15 ` [PATCH 2/3] nvmem: core: add root_only member to nvmem device struct Srinivas Kandagatla
@ 2020-03-24 17:16 ` Srinivas Kandagatla
  2020-03-24 17:46   ` Greg KH
  2020-03-24 23:05   ` Nicholas Johnson
  2020-03-24 17:58 ` [PATCH 0/3] nvmem: use is_bin_visible callback Greg KH
  3 siblings, 2 replies; 10+ messages in thread
From: Srinivas Kandagatla @ 2020-03-24 17:16 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, nicholas.johnson-opensource, Srinivas Kandagatla

By using is_bin_visible callback to set permissions will remove a large list
of attribute groups. These group permissions can be dynamically derived in
the callback.

Suggested-by: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 drivers/nvmem/nvmem-sysfs.c | 74 +++++++++----------------------------
 1 file changed, 18 insertions(+), 56 deletions(-)

diff --git a/drivers/nvmem/nvmem-sysfs.c b/drivers/nvmem/nvmem-sysfs.c
index 8759c4470012..1ff1801048f6 100644
--- a/drivers/nvmem/nvmem-sysfs.c
+++ b/drivers/nvmem/nvmem-sysfs.c
@@ -103,6 +103,17 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj,
 
 	return count;
 }
+static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
+					 struct bin_attribute *attr, int i)
+{
+	struct device *dev = container_of(kobj, struct device, kobj);
+	struct nvmem_device *nvmem = to_nvmem_device(dev);
+
+	if (nvmem->root_only)
+		return nvmem->read_only ? 0400 : 0600;
+
+	return nvmem->read_only ? 0444 : 0644;
+}
 
 /* default read/write permissions */
 static struct bin_attribute bin_attr_rw_nvmem = {
@@ -114,18 +125,19 @@ static struct bin_attribute bin_attr_rw_nvmem = {
 	.write	= bin_attr_nvmem_write,
 };
 
-static struct bin_attribute *nvmem_bin_rw_attributes[] = {
+static struct bin_attribute *nvmem_bin_attributes[] = {
 	&bin_attr_rw_nvmem,
 	NULL,
 };
 
-static const struct attribute_group nvmem_bin_rw_group = {
-	.bin_attrs	= nvmem_bin_rw_attributes,
+static const struct attribute_group nvmem_bin_group = {
+	.bin_attrs	= nvmem_bin_attributes,
 	.attrs		= nvmem_attrs,
+	.is_bin_visible = nvmem_bin_attr_is_visible,
 };
 
-static const struct attribute_group *nvmem_rw_dev_groups[] = {
-	&nvmem_bin_rw_group,
+static const struct attribute_group *nvmem_dev_groups[] = {
+	&nvmem_bin_group,
 	NULL,
 };
 
@@ -138,21 +150,6 @@ static struct bin_attribute bin_attr_ro_nvmem = {
 	.read	= bin_attr_nvmem_read,
 };
 
-static struct bin_attribute *nvmem_bin_ro_attributes[] = {
-	&bin_attr_ro_nvmem,
-	NULL,
-};
-
-static const struct attribute_group nvmem_bin_ro_group = {
-	.bin_attrs	= nvmem_bin_ro_attributes,
-	.attrs		= nvmem_attrs,
-};
-
-static const struct attribute_group *nvmem_ro_dev_groups[] = {
-	&nvmem_bin_ro_group,
-	NULL,
-};
-
 /* default read/write permissions, root only */
 static struct bin_attribute bin_attr_rw_root_nvmem = {
 	.attr	= {
@@ -163,21 +160,6 @@ static struct bin_attribute bin_attr_rw_root_nvmem = {
 	.write	= bin_attr_nvmem_write,
 };
 
-static struct bin_attribute *nvmem_bin_rw_root_attributes[] = {
-	&bin_attr_rw_root_nvmem,
-	NULL,
-};
-
-static const struct attribute_group nvmem_bin_rw_root_group = {
-	.bin_attrs	= nvmem_bin_rw_root_attributes,
-	.attrs		= nvmem_attrs,
-};
-
-static const struct attribute_group *nvmem_rw_root_dev_groups[] = {
-	&nvmem_bin_rw_root_group,
-	NULL,
-};
-
 /* read only permission, root only */
 static struct bin_attribute bin_attr_ro_root_nvmem = {
 	.attr	= {
@@ -187,31 +169,11 @@ static struct bin_attribute bin_attr_ro_root_nvmem = {
 	.read	= bin_attr_nvmem_read,
 };
 
-static struct bin_attribute *nvmem_bin_ro_root_attributes[] = {
-	&bin_attr_ro_root_nvmem,
-	NULL,
-};
-
-static const struct attribute_group nvmem_bin_ro_root_group = {
-	.bin_attrs	= nvmem_bin_ro_root_attributes,
-	.attrs		= nvmem_attrs,
-};
-
-static const struct attribute_group *nvmem_ro_root_dev_groups[] = {
-	&nvmem_bin_ro_root_group,
-	NULL,
-};
-
 const struct attribute_group **nvmem_sysfs_get_groups(
 					struct nvmem_device *nvmem,
 					const struct nvmem_config *config)
 {
-	if (config->root_only)
-		return nvmem->read_only ?
-			nvmem_ro_root_dev_groups :
-			nvmem_rw_root_dev_groups;
-
-	return nvmem->read_only ? nvmem_ro_dev_groups : nvmem_rw_dev_groups;
+	return nvmem_dev_groups;
 }
 
 /*
-- 
2.21.0


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

* Re: [PATCH 3/3] nvmem: core: use is_bin_visible for permissions
  2020-03-24 17:16 ` [PATCH 3/3] nvmem: core: use is_bin_visible for permissions Srinivas Kandagatla
@ 2020-03-24 17:46   ` Greg KH
  2020-03-25  9:15     ` Srinivas Kandagatla
  2020-03-24 23:05   ` Nicholas Johnson
  1 sibling, 1 reply; 10+ messages in thread
From: Greg KH @ 2020-03-24 17:46 UTC (permalink / raw)
  To: Srinivas Kandagatla; +Cc: linux-kernel, nicholas.johnson-opensource

On Tue, Mar 24, 2020 at 05:16:00PM +0000, Srinivas Kandagatla wrote:
> By using is_bin_visible callback to set permissions will remove a large list
> of attribute groups. These group permissions can be dynamically derived in
> the callback.
> 
> Suggested-by: Greg KH <gregkh@linuxfoundation.org>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  drivers/nvmem/nvmem-sysfs.c | 74 +++++++++----------------------------
>  1 file changed, 18 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/nvmem/nvmem-sysfs.c b/drivers/nvmem/nvmem-sysfs.c
> index 8759c4470012..1ff1801048f6 100644
> --- a/drivers/nvmem/nvmem-sysfs.c
> +++ b/drivers/nvmem/nvmem-sysfs.c
> @@ -103,6 +103,17 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj,
>  
>  	return count;
>  }
> +static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
> +					 struct bin_attribute *attr, int i)
> +{
> +	struct device *dev = container_of(kobj, struct device, kobj);
> +	struct nvmem_device *nvmem = to_nvmem_device(dev);
> +
> +	if (nvmem->root_only)
> +		return nvmem->read_only ? 0400 : 0600;
> +
> +	return nvmem->read_only ? 0444 : 0644;
> +}

I don't know why this is so hard for me to read, but how about this
instead:

static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
					 struct bin_attribute *attr, int i)
{
	struct device *dev = container_of(kobj, struct device, kobj);
	struct nvmem_device *nvmem = to_nvmem_device(dev);
	umode_t mode = 0400;

	if (!nvmem->root_only)
		mode |= 0044;

	if (!nvmem->read_only)
		mode |= 0200;

	return mode;
}

Did I get the logic corect?

thanks,

greg k-h

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

* Re: [PATCH 0/3] nvmem: use is_bin_visible callback
  2020-03-24 17:15 [PATCH 0/3] nvmem: use is_bin_visible callback Srinivas Kandagatla
                   ` (2 preceding siblings ...)
  2020-03-24 17:16 ` [PATCH 3/3] nvmem: core: use is_bin_visible for permissions Srinivas Kandagatla
@ 2020-03-24 17:58 ` Greg KH
  3 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2020-03-24 17:58 UTC (permalink / raw)
  To: Srinivas Kandagatla; +Cc: linux-kernel, nicholas.johnson-opensource

On Tue, Mar 24, 2020 at 05:15:57PM +0000, Srinivas Kandagatla wrote:
> Hi Greg,
> 
> As suggested I managed to use is_bin_visible for the existing code and
> one cleanup for using device_register/unregister directly instead of splitting.
> 
> Note: this does not add any new functionality, its just a cleanup

I took patch 1 of this series already, as it was "obvious" :)

thanks,

greg k-h

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

* Re: [PATCH 3/3] nvmem: core: use is_bin_visible for permissions
  2020-03-24 17:16 ` [PATCH 3/3] nvmem: core: use is_bin_visible for permissions Srinivas Kandagatla
  2020-03-24 17:46   ` Greg KH
@ 2020-03-24 23:05   ` Nicholas Johnson
  2020-03-25  7:36     ` gregkh
  2020-03-25  9:36     ` Srinivas Kandagatla
  1 sibling, 2 replies; 10+ messages in thread
From: Nicholas Johnson @ 2020-03-24 23:05 UTC (permalink / raw)
  To: Srinivas Kandagatla; +Cc: gregkh, linux-kernel

On Tue, Mar 24, 2020 at 05:16:00PM +0000, Srinivas Kandagatla wrote:
> By using is_bin_visible callback to set permissions will remove a large list
> of attribute groups. These group permissions can be dynamically derived in
> the callback.
> 
> Suggested-by: Greg KH <gregkh@linuxfoundation.org>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> ---
>  drivers/nvmem/nvmem-sysfs.c | 74 +++++++++----------------------------
>  1 file changed, 18 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/nvmem/nvmem-sysfs.c b/drivers/nvmem/nvmem-sysfs.c
> index 8759c4470012..1ff1801048f6 100644
> --- a/drivers/nvmem/nvmem-sysfs.c
> +++ b/drivers/nvmem/nvmem-sysfs.c
> @@ -103,6 +103,17 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj,
>  
>  	return count;
>  }
> +static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
> +					 struct bin_attribute *attr, int i)
> +{
> +	struct device *dev = container_of(kobj, struct device, kobj);
> +	struct nvmem_device *nvmem = to_nvmem_device(dev);
> +
> +	if (nvmem->root_only)
> +		return nvmem->read_only ? 0400 : 0600;
> +
> +	return nvmem->read_only ? 0444 : 0644;
> +}
Looks like I did a pretty good job as I arrived at a similar result 
independently. Even added root_only to nvmem_device. You beat me to it. 
:)

>  const struct attribute_group **nvmem_sysfs_get_groups(
>  					struct nvmem_device *nvmem,
>  					const struct nvmem_config *config)
>  {
> -	if (config->root_only)
> -		return nvmem->read_only ?
> -			nvmem_ro_root_dev_groups :
> -			nvmem_rw_root_dev_groups;
> -
> -	return nvmem->read_only ? nvmem_ro_dev_groups : nvmem_rw_dev_groups;
> +	return nvmem_dev_groups;
>  }
I was wondering if we can export nvmem_dev_group instead of this 
nvmem_sysfs_get_groups() to fetch it.

Also, we need some logic in nvmem_register() to abort if bad combination 
is given (i.e. root_only set but no reg_read), as returning 0 in 
is_bin_visible callback does not abort. I can do that in my patch if you 
want.

Regards,
Nicholas
>  
>  /*
> -- 
> 2.21.0
> 

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

* Re: [PATCH 3/3] nvmem: core: use is_bin_visible for permissions
  2020-03-24 23:05   ` Nicholas Johnson
@ 2020-03-25  7:36     ` gregkh
  2020-03-25  9:36     ` Srinivas Kandagatla
  1 sibling, 0 replies; 10+ messages in thread
From: gregkh @ 2020-03-25  7:36 UTC (permalink / raw)
  To: Nicholas Johnson; +Cc: Srinivas Kandagatla, linux-kernel

On Tue, Mar 24, 2020 at 11:05:07PM +0000, Nicholas Johnson wrote:
> On Tue, Mar 24, 2020 at 05:16:00PM +0000, Srinivas Kandagatla wrote:
> > By using is_bin_visible callback to set permissions will remove a large list
> > of attribute groups. These group permissions can be dynamically derived in
> > the callback.
> > 
> > Suggested-by: Greg KH <gregkh@linuxfoundation.org>
> > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> > ---
> >  drivers/nvmem/nvmem-sysfs.c | 74 +++++++++----------------------------
> >  1 file changed, 18 insertions(+), 56 deletions(-)
> > 
> > diff --git a/drivers/nvmem/nvmem-sysfs.c b/drivers/nvmem/nvmem-sysfs.c
> > index 8759c4470012..1ff1801048f6 100644
> > --- a/drivers/nvmem/nvmem-sysfs.c
> > +++ b/drivers/nvmem/nvmem-sysfs.c
> > @@ -103,6 +103,17 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj,
> >  
> >  	return count;
> >  }
> > +static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
> > +					 struct bin_attribute *attr, int i)
> > +{
> > +	struct device *dev = container_of(kobj, struct device, kobj);
> > +	struct nvmem_device *nvmem = to_nvmem_device(dev);
> > +
> > +	if (nvmem->root_only)
> > +		return nvmem->read_only ? 0400 : 0600;
> > +
> > +	return nvmem->read_only ? 0444 : 0644;
> > +}
> Looks like I did a pretty good job as I arrived at a similar result 
> independently. Even added root_only to nvmem_device. You beat me to it. 
> :)
> 
> >  const struct attribute_group **nvmem_sysfs_get_groups(
> >  					struct nvmem_device *nvmem,
> >  					const struct nvmem_config *config)
> >  {
> > -	if (config->root_only)
> > -		return nvmem->read_only ?
> > -			nvmem_ro_root_dev_groups :
> > -			nvmem_rw_root_dev_groups;
> > -
> > -	return nvmem->read_only ? nvmem_ro_dev_groups : nvmem_rw_dev_groups;
> > +	return nvmem_dev_groups;
> >  }
> I was wondering if we can export nvmem_dev_group instead of this 
> nvmem_sysfs_get_groups() to fetch it.
> 
> Also, we need some logic in nvmem_register() to abort if bad combination 
> is given (i.e. root_only set but no reg_read), as returning 0 in 
> is_bin_visible callback does not abort. I can do that in my patch if you 
> want.

Returning 0 will cause the file to not be created at all, which is
probably what you want, right?

thanks,

greg k-h

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

* Re: [PATCH 3/3] nvmem: core: use is_bin_visible for permissions
  2020-03-24 17:46   ` Greg KH
@ 2020-03-25  9:15     ` Srinivas Kandagatla
  0 siblings, 0 replies; 10+ messages in thread
From: Srinivas Kandagatla @ 2020-03-25  9:15 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel, nicholas.johnson-opensource



On 24/03/2020 17:46, Greg KH wrote:
> On Tue, Mar 24, 2020 at 05:16:00PM +0000, Srinivas Kandagatla wrote:
>> By using is_bin_visible callback to set permissions will remove a large list
>> of attribute groups. These group permissions can be dynamically derived in
>> the callback.
>>
>> Suggested-by: Greg KH <gregkh@linuxfoundation.org>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>>   drivers/nvmem/nvmem-sysfs.c | 74 +++++++++----------------------------
>>   1 file changed, 18 insertions(+), 56 deletions(-)
>>
>> diff --git a/drivers/nvmem/nvmem-sysfs.c b/drivers/nvmem/nvmem-sysfs.c
>> index 8759c4470012..1ff1801048f6 100644
>> --- a/drivers/nvmem/nvmem-sysfs.c
>> +++ b/drivers/nvmem/nvmem-sysfs.c
>> @@ -103,6 +103,17 @@ static ssize_t bin_attr_nvmem_write(struct file *filp, struct kobject *kobj,
>>   
>>   	return count;
>>   }
>> +static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
>> +					 struct bin_attribute *attr, int i)
>> +{
>> +	struct device *dev = container_of(kobj, struct device, kobj);
>> +	struct nvmem_device *nvmem = to_nvmem_device(dev);
>> +
>> +	if (nvmem->root_only)
>> +		return nvmem->read_only ? 0400 : 0600;
>> +
>> +	return nvmem->read_only ? 0444 : 0644;
>> +}
> 
> I don't know why this is so hard for me to read, but how about this
> instead:
> 
> static umode_t nvmem_bin_attr_is_visible(struct kobject *kobj,
> 					 struct bin_attribute *attr, int i)
> {
> 	struct device *dev = container_of(kobj, struct device, kobj);
> 	struct nvmem_device *nvmem = to_nvmem_device(dev);
> 	umode_t mode = 0400;
> 
> 	if (!nvmem->root_only)
> 		mode |= 0044;
> 
> 	if (!nvmem->read_only)
> 		mode |= 0200;
> 
> 	return mode;
> }
> 
> Did I get the logic corect?

That looks perfect and matches what is in upstream!
Thanks for suggesting this cleanup!

I will send v2 with this change!

--srini
> 
> thanks,
> 
> greg k-h
> 

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

* Re: [PATCH 3/3] nvmem: core: use is_bin_visible for permissions
  2020-03-24 23:05   ` Nicholas Johnson
  2020-03-25  7:36     ` gregkh
@ 2020-03-25  9:36     ` Srinivas Kandagatla
  1 sibling, 0 replies; 10+ messages in thread
From: Srinivas Kandagatla @ 2020-03-25  9:36 UTC (permalink / raw)
  To: Nicholas Johnson; +Cc: gregkh, linux-kernel



On 24/03/2020 23:05, Nicholas Johnson wrote:
> I was wondering if we can export nvmem_dev_group instead of this
> nvmem_sysfs_get_groups() to fetch it.

Nope, nvmem_sysfs_get_groups() has a dummy stub for not selecting 
CONFIG_NVMEM_SYSFS.

--srini

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

end of thread, other threads:[~2020-03-25  9:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-24 17:15 [PATCH 0/3] nvmem: use is_bin_visible callback Srinivas Kandagatla
2020-03-24 17:15 ` [PATCH 1/3] nvmem: core: use device_register and device_unregister Srinivas Kandagatla
2020-03-24 17:15 ` [PATCH 2/3] nvmem: core: add root_only member to nvmem device struct Srinivas Kandagatla
2020-03-24 17:16 ` [PATCH 3/3] nvmem: core: use is_bin_visible for permissions Srinivas Kandagatla
2020-03-24 17:46   ` Greg KH
2020-03-25  9:15     ` Srinivas Kandagatla
2020-03-24 23:05   ` Nicholas Johnson
2020-03-25  7:36     ` gregkh
2020-03-25  9:36     ` Srinivas Kandagatla
2020-03-24 17:58 ` [PATCH 0/3] nvmem: use is_bin_visible callback Greg KH

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.