From: Arvid Brodin <arvid.brodin@alten.se>
To: Wei Yongjun <weiyj.lk@gmail.com>, <davem@davemloft.net>
Cc: <yongjun_wei@trendmicro.com.cn>, <netdev@vger.kernel.org>
Subject: Re: [PATCH -next] net/hsr: using kfree_rcu() to simplify the code
Date: Tue, 17 Dec 2013 01:56:01 +0100 [thread overview]
Message-ID: <52AFA121.9000706@alten.se> (raw)
In-Reply-To: <CAPgLHd_doYrTYAHyR4OrDz9B84Abh1H0MBvmi8XfCqAEVFyS_Q@mail.gmail.com>
Looks good to me, feel free to add
Acked-by: Arvid Brodin <arvid.brodin@alten.se>
Nice to have others look at the code! :)
On 2013-12-16 07:05, Wei Yongjun wrote:
> From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
>
> The callback function of call_rcu() just calls a kfree(), so we
> can use kfree_rcu() instead of call_rcu() + callback function.
>
> Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> ---
> net/hsr/hsr_framereg.c | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/net/hsr/hsr_framereg.c b/net/hsr/hsr_framereg.c
> index 003f5bb..a758963 100644
> --- a/net/hsr/hsr_framereg.c
> +++ b/net/hsr/hsr_framereg.c
> @@ -127,11 +127,6 @@ int hsr_create_self_node(struct list_head *self_node_db,
> return 0;
> }
>
> -static void node_entry_reclaim(struct rcu_head *rh)
> -{
> - kfree(container_of(rh, struct node_entry, rcu_head));
> -}
> -
>
> /* Add/merge node to the database of nodes. 'skb' must contain an HSR
> * supervision frame.
> @@ -175,7 +170,7 @@ struct node_entry *hsr_merge_node(struct hsr_priv *hsr_priv,
> if (node && !ether_addr_equal(node->MacAddressA, hsr_sp->MacAddressA)) {
> /* Node has changed its AddrA, frame was received from SlaveB */
> list_del_rcu(&node->mac_list);
> - call_rcu(&node->rcu_head, node_entry_reclaim);
> + kfree_rcu(node, rcu_head);
> node = NULL;
> }
>
> @@ -183,7 +178,7 @@ struct node_entry *hsr_merge_node(struct hsr_priv *hsr_priv,
> !ether_addr_equal(node->MacAddressB, hsr_ethsup->ethhdr.h_source)) {
> /* Cables have been swapped */
> list_del_rcu(&node->mac_list);
> - call_rcu(&node->rcu_head, node_entry_reclaim);
> + kfree_rcu(node, rcu_head);
> node = NULL;
> }
>
> @@ -192,7 +187,7 @@ struct node_entry *hsr_merge_node(struct hsr_priv *hsr_priv,
> !ether_addr_equal(node->MacAddressA, hsr_ethsup->ethhdr.h_source)) {
> /* Cables have been swapped */
> list_del_rcu(&node->mac_list);
> - call_rcu(&node->rcu_head, node_entry_reclaim);
> + kfree_rcu(node, rcu_head);
> node = NULL;
> }
>
> @@ -416,7 +411,7 @@ void hsr_prune_nodes(struct hsr_priv *hsr_priv)
> hsr_nl_nodedown(hsr_priv, node->MacAddressA);
> list_del_rcu(&node->mac_list);
> /* Note that we need to free this entry later: */
> - call_rcu(&node->rcu_head, node_entry_reclaim);
> + kfree_rcu(node, rcu_head);
> }
> }
> rcu_read_unlock();
>
--
Arvid Brodin | Consultant (Linux)
P: +46-8-56254286 | M: +46-70-9714286
ALTEN | Knarrarnäsgatan 7 | SE-164 40 Kista | Sweden
arvid.brodin@alten.se | www.alten.se/en/
next prev parent reply other threads:[~2013-12-17 1:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-16 6:05 [PATCH -next] net/hsr: using kfree_rcu() to simplify the code Wei Yongjun
2013-12-17 0:56 ` Arvid Brodin [this message]
2013-12-17 21:32 ` David Miller
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=52AFA121.9000706@alten.se \
--to=arvid.brodin@alten.se \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=weiyj.lk@gmail.com \
--cc=yongjun_wei@trendmicro.com.cn \
/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.