Re: [PATCH 02/36] scsi,rcu: convert call_rcu(fc_rport_free_rcu) tokfree_rcu()

From: James Bottomley
Date: Wed Mar 23 2011 - 10:06:11 EST


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


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/