Re: spin lock question
Alex Zeffertt <[email protected]> Tue, 10 Oct 2006 09:18:45 +0100
| Newsgroups | gmane.linux.drivers.vlan |
|---|---|
| Message-ID | <[email protected]> |
Stephen Hemminger wrote: > On Mon, 9 Oct 2006 12:39:44 -0700 > Stephen Hemminger <[email protected]> wrote: > >> On Fri, 06 Oct 2006 09:48:27 +0100 >> Alex Zeffertt <[email protected]> wrote: >> >>> Hi list, >>> >>> I've been reading through the 8021q.o module source recently and >>> I am confused by the choice of spin lock used in the following >>> code: >>> >>> >>> int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev, >>> struct packet_type* ptype) >>> { >>> ... >>> spin_lock_bh(&vlan_group_lock); >>> skb->dev = __find_vlan_dev(dev, vid); >>> if (!skb->dev) { >>> spin_unlock_bh(&vlan_group_lock); >>> ... >>> >> That code should use RCU actually. > > That's what 2.6 already does. > > Hi Stephen, thanks for your replies. I now think I understand, the key thing being the implicit ref counting in spin_unlock_bh. But, for the record, what is RCU? Alex