Messages in this thread | | | Subject | Re: [PATCH 02/36] scsi,rcu: convert call_rcu(fc_rport_free_rcu) to kfree_rcu() | From | James Bottomley <> | Date | Wed, 23 Mar 2011 09:05:51 -0500 |
| |
On Tue, 2011-03-22 at 23:50 -0700, Paul E. McKenney wrote: > The kfree_rcu() definition is as > follows: > > #define kfree_rcu(ptr, rcu_head) \ > __kfree_rcu(&((ptr)->rcu_head), offsetof(typeof(*(ptr)), rcu_head))
Isn't this one of those cases where the obvious use of the interface is definitely wrong?
It's also another nasty pseudo C prototype. I know we do this sort of thing for container_of et al, but I don't really think we want to extend it.
Why not make the interface take a pointer to the embedding structure and one to the rcu_head ... that way all pointer mathematics can be contained inside the RCU routines.
James
| |