* [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 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 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 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
* 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
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.