linux/net/802
Cong Wang cfbe800b8b 802: fix a possible race condition
(Resend with a better changelog)

garp_pdu_queue() should ways be called with this spin lock.
garp_uninit_applicant() only holds rtnl lock which is not
enough here.  A possible race can happen as garp_pdu_rcv()
is called in BH context:

	garp_pdu_rcv()
	  |->garp_pdu_parse_msg()
	    |->garp_pdu_parse_attr()
	      |-> garp_gid_event()

Found by code inspection.

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: David Ward <david.ward@ll.mit.edu>
Cc: "Jorge Boncompte [DTI2]" <jorge@dti2.net>
Signed-off-by: Cong Wang <amwang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-04-07 17:04:17 -04:00
..
fc.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
fddi.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
garp.c 802: fix a possible race condition 2013-04-07 17:04:17 -04:00
hippi.c net: cleanup unsigned to unsigned int 2012-04-15 12:44:40 -04:00
Kconfig net/802: Implement Multiple Registration Protocol (MRP) 2013-02-10 20:37:22 -05:00
Makefile net/802: Implement Multiple Registration Protocol (MRP) 2013-02-10 20:37:22 -05:00
mrp.c mrp: make mrp_rcv static 2013-02-11 14:16:26 -05:00
p8022.c net: delete all instances of special processing for token ring 2012-05-15 20:14:35 -04:00
p8023.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
psnap.c snap: remove one synchronize_net() 2011-05-23 16:29:24 -04:00
stp.c 802: Convert compare_ether_addr to ether_addr_equal 2012-05-09 20:49:17 -04:00