linux/net/core
Ranko Zivojnovic 0929c2dd83 [NET]: gen_estimator deadlock fix
-Fixes ABBA deadlock noted by Patrick McHardy <kaber@trash.net>:

> There is at least one ABBA deadlock, est_timer() does:
> read_lock(&est_lock)
> spin_lock(e->stats_lock) (which is dev->queue_lock)
>
> and qdisc_destroy calls htb_destroy under dev->queue_lock, which
> calls htb_destroy_class, then gen_kill_estimator and this
> write_locks est_lock.

To fix the ABBA deadlock the rate estimators are now kept on an rcu list.

-The est_lock changes the use from protecting the list to protecting
the update to the 'bstat' pointer in order to avoid NULL dereferencing.

-The 'interval' member of the gen_estimator structure removed as it is
not needed.

Signed-off-by: Ranko Zivojnovic <ranko@spidernet.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-07-18 01:46:50 -07:00
..
datagram.c [NET]: Revert sk_buff walker cleanups. 2007-04-27 15:21:23 -07:00
dev.c [NET]: Add macvlan driver 2007-07-14 18:55:06 -07:00
dev_mcast.c [NET]: dev_mcast: add multicast list synchronization helpers 2007-07-14 18:52:02 -07:00
dst.c [NET]: Merge dst_discard_in and dst_discard_out. 2007-06-07 13:39:46 -07:00
ethtool.c [NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices. 2007-07-14 19:07:52 -07:00
fib_rules.c [RTNETLINK]: Remove unnecessary locking in dump callbacks 2007-04-25 22:29:05 -07:00
filter.c [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
flow.c Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
gen_estimator.c [NET]: gen_estimator deadlock fix 2007-07-18 01:46:50 -07:00
gen_stats.c [SK_BUFF]: Convert skb->tail to sk_buff_data_t 2007-04-25 22:26:28 -07:00
iovec.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
kmap_skb.h [PATCH] severing skbuff.h -> highmem.h 2006-12-04 02:00:29 -05:00
link_watch.c [NET] link_watch: Always schedule urgent events 2007-05-10 23:45:28 -07:00
Makefile [WEXT]: Move to net/wireless 2007-04-26 20:42:51 -07:00
neighbour.c [NETLINK]: Mark netlink policies const 2007-06-07 13:40:10 -07:00
net-sysfs.c [NET]: Fix race condition about network device name allocation. 2007-05-19 15:39:25 -07:00
netevent.c [NET]: net/core/netevent.c should #include <net/netevent.h> 2007-07-05 17:40:27 -07:00
netpoll.c Revert "[NET]: Fix races in net_rx_action vs netpoll." 2007-07-16 14:31:08 -07:00
pktgen.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
request_sock.c [NET]: Size listen hash tables using backlog hint 2006-12-02 21:21:44 -08:00
rtnetlink.c [RTNETLINK]: rtnl_link: allow specifying initial device address 2007-07-11 19:45:36 -07:00
scm.c O_CLOEXEC for SCM_RIGHTS 2007-07-16 09:05:45 -07:00
skbuff.c [NETFILTER]: x_tables: add TRACE target 2007-07-10 22:17:14 -07:00
sock.c [NET]: "wrong timeout value in sk_wait_data()": cleanups 2007-07-10 22:18:50 -07:00
stream.c [NET] CORE: Fix whitespace errors. 2007-02-10 23:19:25 -08:00
sysctl_net_core.c [XFRM]: Allow XFRM_ACQ_EXPIRES to be tunable via sysctl. 2007-05-31 01:23:23 -07:00
user_dma.c [NET]: Revert sk_buff walker cleanups. 2007-04-27 15:21:23 -07:00
utils.c [NET]: parse ip:port strings correctly in in4_pton 2007-05-31 01:23:27 -07:00