Message ID | 20180220231046.32638-4-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Laurent, On Wed, Feb 21, 2018 at 12:10 AM, Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> wrote: > From: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > > Add an __of_node_dupv() private method and make __of_node_dup() use it. > This is required for the subsequent changeset accessors which will > make use of it. > > Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > --- > drivers/of/dynamic.c | 29 +++++++++++++++++++++++------ > 1 file changed, 23 insertions(+), 6 deletions(-) > > diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c > index 7bb33d22b4e2..4ffd04925fdf 100644 > --- a/drivers/of/dynamic.c > +++ b/drivers/of/dynamic.c > @@ -382,8 +382,9 @@ struct property *__of_prop_dup(const struct property *prop, gfp_t allocflags) > } > > /** > - * __of_node_dup() - Duplicate or create an empty device node dynamically. > - * @fmt: Format string (plus vargs) for new full name of the device node > + * __of_node_dupv() - Duplicate or create an empty device node dynamically. > + * @fmt: Format string for new full name of the device node > + * @vargs: va_list containing the arugments for the node full name > * > * Create an device tree node, either by duplicating an empty node or by allocating > * an empty one suitable for further modification. The node data are > @@ -391,17 +392,15 @@ struct property *__of_prop_dup(const struct property *prop, gfp_t allocflags) > * OF_DETACHED bits set. Returns the newly allocated node or NULL on out of > * memory error. > */ > -struct device_node *__of_node_dup(const struct device_node *np, const char *fmt, ...) > +struct device_node *__of_node_dupv(const struct device_node *np, static, cfr. https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/commit/?h=topic/overlays&id=c45324e1807dd708344c9a478b777b68aca11cdf Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
Hi Geert, On Wednesday, 21 February 2018 12:26:45 EET Geert Uytterhoeven wrote: > On Wed, Feb 21, 2018 at 12:10 AM, Laurent Pinchart wrote: > > From: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > > > > Add an __of_node_dupv() private method and make __of_node_dup() use it. > > This is required for the subsequent changeset accessors which will > > make use of it. > > > > Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > > Signed-off-by: Laurent Pinchart > > <laurent.pinchart+renesas@ideasonboard.com> > > --- > > > > drivers/of/dynamic.c | 29 +++++++++++++++++++++++------ > > 1 file changed, 23 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c > > index 7bb33d22b4e2..4ffd04925fdf 100644 > > --- a/drivers/of/dynamic.c > > +++ b/drivers/of/dynamic.c > > @@ -382,8 +382,9 @@ struct property *__of_prop_dup(const struct property > > *prop, gfp_t allocflags)> > > } > > > > /** > > > > - * __of_node_dup() - Duplicate or create an empty device node > > dynamically. > > - * @fmt: Format string (plus vargs) for new full name of the device node > > + * __of_node_dupv() - Duplicate or create an empty device node > > dynamically. + * @fmt: Format string for new full name of the device node > > + * @vargs: va_list containing the arugments for the node full name > > > > * > > * Create an device tree node, either by duplicating an empty node or by > > allocating * an empty one suitable for further modification. The node > > data are> > > @@ -391,17 +392,15 @@ struct property *__of_prop_dup(const struct property > > *prop, gfp_t allocflags)> > > * OF_DETACHED bits set. Returns the newly allocated node or NULL on out > > of > > * memory error. > > */ > > > > -struct device_node *__of_node_dup(const struct device_node *np, const > > char *fmt, ...) +struct device_node *__of_node_dupv(const struct > > device_node *np, > > static, cfr. > https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git/co > mmit/?h=topic/overlays&id=c45324e1807dd708344c9a478b777b68aca11cdf I'll fix that in the next version.
On Tue, Feb 20, 2018 at 5:10 PM, Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> wrote: > From: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > > Add an __of_node_dupv() private method and make __of_node_dup() use it. > This is required for the subsequent changeset accessors which will > make use of it. > > Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com> > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> > --- > drivers/of/dynamic.c | 29 +++++++++++++++++++++++------ > 1 file changed, 23 insertions(+), 6 deletions(-) Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c index 7bb33d22b4e2..4ffd04925fdf 100644 --- a/drivers/of/dynamic.c +++ b/drivers/of/dynamic.c @@ -382,8 +382,9 @@ struct property *__of_prop_dup(const struct property *prop, gfp_t allocflags) } /** - * __of_node_dup() - Duplicate or create an empty device node dynamically. - * @fmt: Format string (plus vargs) for new full name of the device node + * __of_node_dupv() - Duplicate or create an empty device node dynamically. + * @fmt: Format string for new full name of the device node + * @vargs: va_list containing the arugments for the node full name * * Create an device tree node, either by duplicating an empty node or by allocating * an empty one suitable for further modification. The node data are @@ -391,17 +392,15 @@ struct property *__of_prop_dup(const struct property *prop, gfp_t allocflags) * OF_DETACHED bits set. Returns the newly allocated node or NULL on out of * memory error. */ -struct device_node *__of_node_dup(const struct device_node *np, const char *fmt, ...) +struct device_node *__of_node_dupv(const struct device_node *np, + const char *fmt, va_list vargs) { - va_list vargs; struct device_node *node; node = kzalloc(sizeof(*node), GFP_KERNEL); if (!node) return NULL; - va_start(vargs, fmt); node->full_name = kvasprintf(GFP_KERNEL, fmt, vargs); - va_end(vargs); if (!node->full_name) { kfree(node); return NULL; @@ -433,6 +432,24 @@ struct device_node *__of_node_dup(const struct device_node *np, const char *fmt, return NULL; } +/** + * __of_node_dup() - Duplicate or create an empty device node dynamically. + * @fmt: Format string (plus vargs) for new full name of the device node + * + * See: __of_node_dupv() + */ +struct device_node *__of_node_dup(const struct device_node *np, + const char *fmt, ...) +{ + va_list vargs; + struct device_node *node; + + va_start(vargs, fmt); + node = __of_node_dupv(np, fmt, vargs); + va_end(vargs); + return node; +} + static void __of_changeset_entry_destroy(struct of_changeset_entry *ce) { of_node_put(ce->np);