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-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 3 Mar 2016 17:16:40 -0500
From:	"David Rivshin (Allworx)" <drivshin.allworx@...il.com>
To:	Rob Herring <robh+dt@...nel.org>
Cc:	"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
	Frank Rowand <frowand.list@...il.com>,
	Grant Likely <grant.likely@...aro.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] of: add 'const' for of_property_*_string*() parameter
 '*np'

On Thu, 3 Mar 2016 07:52:51 -0600
Rob Herring <robh+dt@...nel.org> wrote:

> On Wed, Mar 2, 2016 at 3:35 PM, David Rivshin (Allworx)
> <drivshin.allworx@...il.com> wrote:
> > From: David Rivshin <drivshin@...worx.com>
> >
> > The of_property_{read,count,match}_string* family of functions never
> > modify the struct device_node pointer that is passed in, so there is no
> > reason for it to be non-const. Equivalent functions for all other types
> > already take a 'const struct device_node *np'.
> >
> > Signed-off-by: David Rivshin <drivshin@...worx.com>
> > ---
> >
> > MAINTAINTERS says that the appropriate tree is
> >     git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux.git  
> 
> Yes, we probably need to update that.
> 
> > but it looks like that hasn't been updated in a while. So this patch
> > is based off the "for-next" branch of
> >     git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git
> > instead. Let me know if you need me to respin from another tree/branch.  
> 
> You should base off of Linus' tree unless you have some dependency. I

I was under the impression that the general rule would be to base off
whichever tree it is likely to go through, to make it easier for the
maintainer if nothing else. Is that an incorrect impression, or do you 
mean that just for OF/DT changes?

> doubt it matters in this case, so no need to resend.

Right, these files have not changed recently, so I expect the patch to 
apply against just about any tree. FYI, I can confirm that this applies 
and compiles (arm_multi_v7_defconfig and x86_64_defconfig) on Linus' tree 
as of a few minutes ago. And the same was true against your for-next, and 
linux-next, as of when I sent the patch.

> >
> >  drivers/of/base.c  | 15 ++++++++-------
> >  include/linux/of.h | 18 +++++++++---------
> >  2 files changed, 17 insertions(+), 16 deletions(-)
> >
> > diff --git a/drivers/of/base.c b/drivers/of/base.c
> > index 017dd94..b299de2 100644
> > --- a/drivers/of/base.c
> > +++ b/drivers/of/base.c
> > @@ -1341,10 +1341,10 @@ EXPORT_SYMBOL_GPL(of_property_read_u64_array);
> >   *
> >   * The out_string pointer is modified only if a valid string can be decoded.
> >   */
> > -int of_property_read_string(struct device_node *np, const char *propname,
> > +int of_property_read_string(const struct device_node *np, const char *propname,
> >                                 const char **out_string)
> >  {
> > -       struct property *prop = of_find_property(np, propname, NULL);
> > +       const struct property *prop = of_find_property(np, propname, NULL);
> >         if (!prop)
> >                 return -EINVAL;
> >         if (!prop->value)
> > @@ -1365,10 +1365,10 @@ EXPORT_SYMBOL_GPL(of_property_read_string);
> >   * This function searches a string list property and returns the index
> >   * of a specific string value.
> >   */
> > -int of_property_match_string(struct device_node *np, const char *propname,
> > +int of_property_match_string(const struct device_node *np, const char *propname,
> >                              const char *string)
> >  {
> > -       struct property *prop = of_find_property(np, propname, NULL);
> > +       const struct property *prop = of_find_property(np, propname, NULL);
> >         size_t l;
> >         int i;
> >         const char *p, *end;
> > @@ -1404,10 +1404,11 @@ EXPORT_SYMBOL_GPL(of_property_match_string);
> >   * Don't call this function directly. It is a utility helper for the
> >   * of_property_read_string*() family of functions.
> >   */
> > -int of_property_read_string_helper(struct device_node *np, const char *propname,
> > -                                  const char **out_strs, size_t sz, int skip)
> > +int of_property_read_string_helper(const struct device_node *np,
> > +                                  const char *propname, const char **out_strs,
> > +                                  size_t sz, int skip)
> >  {
> > -       struct property *prop = of_find_property(np, propname, NULL);
> > +       const struct property *prop = of_find_property(np, propname, NULL);
> >         int l = 0, i = 0;
> >         const char *p, *end;
> >
> > diff --git a/include/linux/of.h b/include/linux/of.h
> > index dc6e396..7fcb681 100644
> > --- a/include/linux/of.h
> > +++ b/include/linux/of.h
> > @@ -296,13 +296,13 @@ extern int of_property_read_u64_array(const struct device_node *np,
> >                                       u64 *out_values,
> >                                       size_t sz);
> >
> > -extern int of_property_read_string(struct device_node *np,
> > +extern int of_property_read_string(const struct device_node *np,
> >                                    const char *propname,
> >                                    const char **out_string);
> > -extern int of_property_match_string(struct device_node *np,
> > +extern int of_property_match_string(const struct device_node *np,
> >                                     const char *propname,
> >                                     const char *string);
> > -extern int of_property_read_string_helper(struct device_node *np,
> > +extern int of_property_read_string_helper(const struct device_node *np,
> >                                               const char *propname,
> >                                               const char **out_strs, size_t sz, int index);
> >  extern int of_device_is_compatible(const struct device_node *device,
> > @@ -538,14 +538,14 @@ static inline int of_property_read_u64_array(const struct device_node *np,
> >         return -ENOSYS;
> >  }
> >
> > -static inline int of_property_read_string(struct device_node *np,
> > +static inline int of_property_read_string(const struct device_node *np,
> >                                           const char *propname,
> >                                           const char **out_string)
> >  {
> >         return -ENOSYS;
> >  }
> >
> > -static inline int of_property_read_string_helper(struct device_node *np,
> > +static inline int of_property_read_string_helper(const struct device_node *np,
> >                                                  const char *propname,
> >                                                  const char **out_strs, size_t sz, int index)
> >  {
> > @@ -571,7 +571,7 @@ static inline int of_property_read_u64(const struct device_node *np,
> >         return -ENOSYS;
> >  }
> >
> > -static inline int of_property_match_string(struct device_node *np,
> > +static inline int of_property_match_string(const struct device_node *np,
> >                                            const char *propname,
> >                                            const char *string)
> >  {
> > @@ -773,7 +773,7 @@ static inline int of_property_count_u64_elems(const struct device_node *np,
> >   *
> >   * If @out_strs is NULL, the number of strings in the property is returned.
> >   */
> > -static inline int of_property_read_string_array(struct device_node *np,
> > +static inline int of_property_read_string_array(const struct device_node *np,
> >                                                 const char *propname, const char **out_strs,
> >                                                 size_t sz)
> >  {
> > @@ -792,7 +792,7 @@ static inline int of_property_read_string_array(struct device_node *np,
> >   * does not have a value, and -EILSEQ if the string is not null-terminated
> >   * within the length of the property data.
> >   */
> > -static inline int of_property_count_strings(struct device_node *np,
> > +static inline int of_property_count_strings(const struct device_node *np,
> >                                             const char *propname)
> >  {
> >         return of_property_read_string_helper(np, propname, NULL, 0, 0);
> > @@ -816,7 +816,7 @@ static inline int of_property_count_strings(struct device_node *np,
> >   *
> >   * The out_string pointer is modified only if a valid string can be decoded.
> >   */
> > -static inline int of_property_read_string_index(struct device_node *np,
> > +static inline int of_property_read_string_index(const struct device_node *np,
> >                                                 const char *propname,
> >                                                 int index, const char **output)
> >  {
> > --
> > 2.5.0
> >  

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ