Messages in this thread | | | Date | Wed, 12 Mar 2003 02:03:14 +0100 (CET) | From | Roman Zippel <> | Subject | Re: [PATCH] (1/8) Eliminate brlock in psnap |
| |
Hi,
On 11 Mar 2003, Stephen Hemminger wrote:
> void unregister_snap_client(struct datalink_proto *proto) > { > - br_write_lock_bh(BR_NETPROTO_LOCK); > + static RCU_HEAD(snap_rcu); > > - list_del(&proto->node); > - kfree(proto); > + spin_lock_bh(&snap_lock); > + list_del_rcu(&proto->node); > + spin_unlock_bh(&snap_lock); > > - br_write_unlock_bh(BR_NETPROTO_LOCK); > + call_rcu(&snap_rcu, (void (*)(void *)) kfree, proto); > }
Is this really correct? What happens with snap_rcu, if unregister_snap_client is called again, before the call_rcu callback finished?
bye, Roman
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |