All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Georgi Djakov <georgi.djakov@linaro.org>
Cc: linux-pm@vger.kernel.org, agross@kernel.org, digetx@gmail.com,
	evgreen@chromium.org, daidavid1@codeaurora.org,
	masneyb@onstation.org, sibis@codeaurora.org,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH 4/5] interconnect: Add a common helper for removing all nodes
Date: Thu, 28 Nov 2019 10:20:04 -0800	[thread overview]
Message-ID: <20191128182004.GJ82109@yoga> (raw)
In-Reply-To: <20191128133435.25667-4-georgi.djakov@linaro.org>

On Thu 28 Nov 05:34 PST 2019, Georgi Djakov wrote:

> The removal of all nodes from a provider seem to be a common functionality
> for all existing users and it would make sense to factor out this into a
> a common helper function.
> 
> Suggested-by: Dmitry Osipenko <digetx@gmail.com>
> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>

> ---
>  drivers/interconnect/core.c           | 22 ++++++++++++++++++++++
>  include/linux/interconnect-provider.h |  6 ++++++
>  2 files changed, 28 insertions(+)
> 
> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
> index 467c539310f3..0e4852feb395 100644
> --- a/drivers/interconnect/core.c
> +++ b/drivers/interconnect/core.c
> @@ -735,6 +735,28 @@ void icc_node_del(struct icc_node *node)
>  }
>  EXPORT_SYMBOL_GPL(icc_node_del);
>  
> +/**
> + * icc_nodes_remove() - remove all previously added nodes from provider
> + * @provider: the interconnect provider we are removing nodes from
> + *
> + * Return: 0 on success, or an error code otherwise
> + */
> +int icc_nodes_remove(struct icc_provider *provider)
> +{
> +	struct icc_node *n, *tmp;
> +
> +	if (WARN_ON(IS_ERR_OR_NULL(provider)))
> +		return -EINVAL;
> +
> +	list_for_each_entry_safe_reverse(n, tmp, &provider->nodes, node_list) {
> +		icc_node_del(n);
> +		icc_node_destroy(n->id);
> +	}
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(icc_nodes_remove);
> +
>  /**
>   * icc_provider_add() - add a new interconnect provider
>   * @provider: the interconnect provider that will be added into topology
> diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h
> index b16f9effa555..31440c921216 100644
> --- a/include/linux/interconnect-provider.h
> +++ b/include/linux/interconnect-provider.h
> @@ -98,6 +98,7 @@ int icc_link_create(struct icc_node *node, const int dst_id);
>  int icc_link_destroy(struct icc_node *src, struct icc_node *dst);
>  void icc_node_add(struct icc_node *node, struct icc_provider *provider);
>  void icc_node_del(struct icc_node *node);
> +int icc_nodes_remove(struct icc_provider *provider);
>  int icc_provider_add(struct icc_provider *provider);
>  int icc_provider_del(struct icc_provider *provider);
>  
> @@ -130,6 +131,11 @@ void icc_node_del(struct icc_node *node)
>  {
>  }
>  
> +static inline int icc_nodes_remove(struct icc_provider *provider)
> +{
> +	return -ENOTSUPP;
> +}
> +
>  static inline int icc_provider_add(struct icc_provider *provider)
>  {
>  	return -ENOTSUPP;

  reply	other threads:[~2019-11-28 18:20 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-28 13:34 [PATCH 1/5] interconnect: qcom: sdm845: Walk the list safely on node removal Georgi Djakov
2019-11-28 13:34 ` [PATCH 2/5] interconnect: qcom: qcs404: " Georgi Djakov
2019-11-28 13:34 ` [PATCH 3/5] interconnect: qcom: msm8974: " Georgi Djakov
2019-11-28 15:15   ` Brian Masney
2019-11-28 13:34 ` [PATCH 4/5] interconnect: Add a common helper for removing all nodes Georgi Djakov
2019-11-28 18:20   ` Bjorn Andersson [this message]
2019-11-28 13:34 ` [PATCH 5/5] interconnect: qcom: Use the new common helper for node removal Georgi Djakov
2019-11-28 13:43   ` Dmitry Osipenko
2019-11-28 13:52     ` Georgi Djakov
2019-11-28 18:14 ` [PATCH 1/5] interconnect: qcom: sdm845: Walk the list safely on " Bjorn Andersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191128182004.GJ82109@yoga \
    --to=bjorn.andersson@linaro.org \
    --cc=agross@kernel.org \
    --cc=daidavid1@codeaurora.org \
    --cc=digetx@gmail.com \
    --cc=evgreen@chromium.org \
    --cc=georgi.djakov@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=masneyb@onstation.org \
    --cc=sibis@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.