Re: [PATCH] (1/8) Eliminate brlock in psnap

Roman Zippel (zippel@linux-m68k.org)
Wed, 12 Mar 2003 02:03:14 +0100 (CET)


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/