From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Robert Love <robert.w.love@intel.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>, Ingo Molnar <mingo@elte.hu>,
Jens Axboe <axboe@kernel.dk>,
"James E.J. Bottomley" <James.Bottomley@suse.de>,
Neil Horman <nhorman@tuxdriver.com>,
"David S. Miller" <davem@davemloft.net>,
Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
"Pekka Savola (ipv6)" <pekkas@netcore.fi>,
James Morris <jmorris@namei.org>,
Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>,
Patrick McHardy <kaber@trash.net>,
Eric Dumazet <eric.dumazet@gmail.com>,
Stephen Hemminger <shemminger@vyatta.com>,
Tejun Heo <tj@kernel.org>, Jarek Poplawski <jarkao2@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devel@open-fcoe.org" <devel@open-fcoe.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH 02/36] scsi,rcu: convert call_rcu(fc_rport_free_rcu) to kfree_rcu()
Date: Tue, 22 Mar 2011 23:50:14 -0700 [thread overview]
Message-ID: <20110323065014.GU2322@linux.vnet.ibm.com> (raw)
In-Reply-To: <1300814913.19083.427.camel@fritz>
On Tue, Mar 22, 2011 at 10:28:33AM -0700, Robert Love wrote:
> On Thu, 2011-03-17 at 20:41 -0700, Lai Jiangshan wrote:
> >
> > The rcu callback fc_rport_free_rcu() just calls a kfree(),
> > so we use kfree_rcu() instead of the call_rcu(fc_rport_free_rcu).
> >
> > Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
> > ---
> > drivers/scsi/libfc/fc_rport.c | 14 +-------------
> > 1 files changed, 1 insertions(+), 13 deletions(-)
> >
> > diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
> > index a7175ad..29abab0 100644
> > --- a/drivers/scsi/libfc/fc_rport.c
> > +++ b/drivers/scsi/libfc/fc_rport.c
> > @@ -151,18 +151,6 @@ static struct fc_rport_priv *fc_rport_create(struct fc_lport *lport,
> > }
> >
> > /**
> > - * fc_rport_free_rcu() - Free a remote port
> > - * @rcu: The rcu_head structure inside the remote port
> > - */
> > -static void fc_rport_free_rcu(struct rcu_head *rcu)
> > -{
> > - struct fc_rport_priv *rdata;
> > -
> > - rdata = container_of(rcu, struct fc_rport_priv, rcu);
> > - kfree(rdata);
> > -}
> > -
> > -/**
> > * fc_rport_destroy() - Free a remote port after last reference is released
> > * @kref: The remote port's kref
> > */
> > @@ -171,7 +159,7 @@ static void fc_rport_destroy(struct kref *kref)
> > struct fc_rport_priv *rdata;
> >
> > rdata = container_of(kref, struct fc_rport_priv, kref);
> > - call_rcu(&rdata->rcu, fc_rport_free_rcu);
> > + kfree_rcu(rdata, rcu);
>
> I think this last line should be:
>
> kfree_rcu(rdata, &rdata->rcu);
Hello, Robert,
I believe that it is correct as is. The kfree_rcu() definition is as
follows:
#define kfree_rcu(ptr, rcu_head) \
__kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))
Then __kfree_rcu() encodes the offset into the rcu_head so that it can
be handled properly at the end of the grace period.
Thanx, Paul
next prev parent reply other threads:[~2011-03-23 6:50 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4D82D071.5020703@cn.fujitsu.com>
2011-03-18 3:39 ` [PATCH 01/36] net,rcu: convert call_rcu(free_dm_hw_stat) to kfree_rcu() Lai Jiangshan
2011-03-18 3:39 ` Lai Jiangshan
2011-03-18 3:41 ` [PATCH 02/36] scsi,rcu: convert call_rcu(fc_rport_free_rcu) " Lai Jiangshan
2011-03-22 17:28 ` Robert Love
2011-03-23 6:50 ` Paul E. McKenney [this message]
2011-03-23 11:22 ` Matthew Wilcox
[not found] ` <20110323112257.GD13806-6jwH94ZQLHl74goWV3ctuw@public.gmane.org>
2011-03-23 13:30 ` [PATCH 02/36] scsi, rcu: " Paul E. McKenney
2011-03-23 13:30 ` Paul E. McKenney
2011-03-23 13:30 ` [PATCH 02/36] scsi,rcu: " Paul E. McKenney
2011-03-23 14:05 ` James Bottomley
2011-03-23 22:24 ` Paul E. McKenney
2011-03-23 22:45 ` James Bottomley
2011-03-24 0:32 ` Paul E. McKenney
2011-03-23 23:19 ` Matthew Wilcox
2011-03-18 3:42 ` [PATCH 03/36] net,rcu: " Lai Jiangshan
2011-03-18 3:42 ` Lai Jiangshan
2011-03-18 19:35 ` David Miller
2011-03-18 3:42 ` Lai Jiangshan
2011-03-18 3:42 ` [PATCH 04/36] net,rcu: convert call_rcu(__leaf_info_free_rcu) " Lai Jiangshan
2011-03-18 3:42 ` Lai Jiangshan
[not found] ` <4D82D4AA.2080601-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2011-03-18 19:35 ` [PATCH 04/36] net, rcu: " David Miller
2011-03-18 19:35 ` [PATCH 04/36] net,rcu: " David Miller
2011-03-18 3:42 ` Lai Jiangshan
2011-03-18 3:42 ` [PATCH 05/36] block,rcu: convert call_rcu(disk_free_ptbl_rcu_cb) " Lai Jiangshan
2011-03-18 3:42 ` Lai Jiangshan
2011-03-18 6:59 ` Jens Axboe
2011-03-18 11:20 ` Matthew Wilcox
2011-03-18 3:42 ` Lai Jiangshan
2011-03-18 3:43 ` [PATCH 06/36] net,rcu: convert call_rcu(__gen_kill_estimator) " Lai Jiangshan
2011-03-18 3:43 ` Lai Jiangshan
2011-03-18 19:35 ` David Miller
2011-03-18 3:43 ` Lai Jiangshan
2011-03-18 3:44 ` [PATCH 07/36] net,rcu: convert call_rcu(ip_mc_list_reclaim) " Lai Jiangshan
[not found] ` <4D82D508.5080901-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2011-03-18 19:35 ` [PATCH 07/36] net, rcu: " David Miller
2011-03-18 19:35 ` [PATCH 07/36] net,rcu: " David Miller
2011-03-18 3:44 ` Lai Jiangshan
2011-03-18 3:44 ` Lai Jiangshan
2011-03-18 3:44 ` [PATCH 08/36] net,rcu: convert call_rcu(ip_sf_socklist_reclaim) " Lai Jiangshan
2011-03-18 3:44 ` Lai Jiangshan
2011-03-18 3:44 ` Lai Jiangshan
2011-03-18 19:35 ` David Miller
2011-03-18 3:45 ` [PATCH 09/36] net,rcu: convert call_rcu(ip_mc_socklist_reclaim) " Lai Jiangshan
2011-03-18 3:45 ` Lai Jiangshan
2011-03-18 3:45 ` Lai Jiangshan
[not found] ` <4D82D544.6090509-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2011-03-18 19:36 ` [PATCH 09/36] net, rcu: " David Miller
2011-03-18 19:36 ` [PATCH 09/36] net,rcu: " David Miller
2011-03-18 15:24 ` [PATCH 01/36] net,rcu: convert call_rcu(free_dm_hw_stat) " Neil Horman
2011-03-18 19:35 ` David Miller
2011-03-18 3:39 ` Lai Jiangshan
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=20110323065014.GU2322@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=James.Bottomley@suse.de \
--cc=axboe@kernel.dk \
--cc=davem@davemloft.net \
--cc=devel@open-fcoe.org \
--cc=eric.dumazet@gmail.com \
--cc=jarkao2@gmail.com \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kuznet@ms2.inr.ac.ru \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=pekkas@netcore.fi \
--cc=robert.w.love@intel.com \
--cc=shemminger@vyatta.com \
--cc=tj@kernel.org \
--cc=yoshfuji@linux-ipv6.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.