lkml.org 
[lkml]   [2018]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 03/16] of: dynamic: Add __of_node_dupv()
    Date
    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,
    + 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);
    --
    Regards,
    Laurent Pinchart

    \
     
     \ /
      Last update: 2018-02-21 00:12    [W:4.044 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site