linux/net/bridge
Patrick McHardy b19cbe2a16 [BRIDGE]: Fix fdb RCU race
br_fdb_get use atomic_inc to increase the refcount of an element found
on a RCU protected list, which can lead to the following race:

CPU0					CPU1

					br_fdb_get:   rcu_read_lock
					__br_fdb_get: find element
fdb_delete:   hlist_del_rcu
	      br_fdb_put
br_fdb_put:   atomic_dec_and_test
	      call_rcu(fdb_rcu_free)	br_fdb_get:   atomic_inc
						      rcu_read_unlock
fdb_rcu_free: kmem_cache_free

Use atomic_inc_not_zero instead.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-03-22 12:25:20 -07:00
..
netfilter [PATCH] Convert highest_possible_processor_id to nr_cpu_ids 2007-02-20 17:10:13 -08:00
Kconfig [BRIDGE]: use llc for receiving STP packets 2006-03-20 22:59:06 -08:00
Makefile [BRIDGE]: netlink interface for link management 2006-06-17 21:26:14 -07:00
br.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
br_device.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_fdb.c [BRIDGE]: Fix fdb RCU race 2007-03-22 12:25:20 -07:00
br_forward.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_if.c [BRIDGE]: adding new device to bridge should enable if up 2007-03-07 16:10:53 -08:00
br_input.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_ioctl.c [BRIDGE]: Fix locking of set path cost. 2007-02-28 09:42:12 -08:00
br_netfilter.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
br_netlink.c [NETLINK]: Don't BUG on undersized allocations 2007-02-08 12:38:41 -08:00
br_notify.c [BRIDGE]: eliminate workqueue for carrier check 2007-02-26 11:42:59 -08:00
br_private.h [BRIDGE]: eliminate workqueue for carrier check 2007-02-26 11:42:59 -08:00
br_private_stp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
br_stp.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_stp_bpdu.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_stp_if.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_stp_timer.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_sysfs_br.c [NET] BRIDGE: Fix whitespace errors. 2007-02-10 23:19:23 -08:00
br_sysfs_if.c Network: convert network devices to use struct device instead of class_device 2007-02-07 10:37:11 -08:00