linux/net
Jarek Poplawski 7cd0a63872 pkt_sched: Change misleading code in class delete.
While looking for a possible reason of bugzilla report on HTB oops:
http://bugzilla.kernel.org/show_bug.cgi?id=12858
I found the code in htb_delete calling htb_destroy_class on zero
refcount is very misleading: it can suggest this is a common path, and
destroy is called under sch_tree_lock. Actually, this can never happen
like this because before deletion cops->get() is done, and after
delete a class is still used by tclass_notify. The class destroy is
always called from cops->put(), so without sch_tree_lock.

This doesn't mean much now (since 2.6.27) because all vulnerable calls
were moved from htb_destroy_class to htb_delete, but there was a bug
in older kernels. The same change is done for other classful scheds,
which, it seems, didn't have similar locking problems here.

Reported-by: m0sia <m0sia@m0sia.ru>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-03-15 20:00:19 -07:00
..
9p 9p: fix sparse warning: cast adds address space 2009-02-26 23:13:32 -08:00
802 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-03-05 02:06:47 -08:00
8021q net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
appletalk net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
atm lec: convert to net_device_ops 2009-01-21 14:02:00 -08:00
ax25 net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
bluetooth Bluetooth: Remove some pointless conditionals before kfree_skb() 2009-02-27 06:14:49 +01:00
bridge netlink: change nlmsg_notify() return value logic 2009-02-24 23:18:28 -08:00
can can: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:35 -08:00
core Network Drop Monitor: Adding Build changes to enable drop monitor 2009-03-13 12:09:29 -07:00
dcb DCB: fix kfree(skb) 2009-01-04 17:29:21 -08:00
dccp dccp: Do not let initial option overhead shrink the MPS 2009-03-02 03:07:23 -08:00
decnet net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
dsa net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
econet net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
ethernet eth: Declare an optimized compare_ether_addr_64bits() function 2008-11-23 23:24:32 -08:00
ipv4 tcp: '< 0' test on unsigned 2009-03-13 16:05:14 -07:00
ipv6 net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
ipx net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
irda net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
iucv iucv: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:37 -08:00
key af_key: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:32 -08:00
lapb
llc net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
mac80211 mac80211: Update IBSS beacon timestamp properly 2009-03-05 14:39:40 -05:00
netfilter Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-02-25 00:02:05 -08:00
netlabel netlabel: Update kernel configuration API 2008-12-31 12:54:11 -05:00
netlink Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-03-05 02:06:47 -08:00
netrom netrom: convert to net_device_ops 2009-01-21 14:02:02 -08:00
packet Network Drop Monitor: Adding kfree_skb_clean for non-drops and modifying end-of-line points for skbs 2009-03-13 12:09:28 -07:00
phonet net: convert usage of packet_type to read_mostly 2009-03-10 05:22:43 -07:00
rds rds: fix iband RDMA dependencies 2009-03-03 21:39:40 -08:00
rfkill net/rfkill/rfkill.c: fix unused rfkill_led_trigger() warning 2009-01-04 17:11:24 -08:00
rose rose: convert to network_device_ops 2009-01-21 14:02:04 -08:00
rxrpc RxRPC: Fix a potential NULL dereference 2009-02-06 21:50:52 -08:00
sched pkt_sched: Change misleading code in class delete. 2009-03-15 20:00:19 -07:00
sctp sctp: add Adaptation Layer Indication parameter only when it's set 2009-03-13 11:37:58 -07:00
sunrpc net/sunrpc/xprtsock.c: some common code found 2009-02-06 23:48:33 -08:00
tipc net/tipc/bcast.h: use ARRAY_SIZE 2009-01-11 00:06:33 -08:00
unix unix: remove some pointless conditionals before kfree_skb() 2009-02-26 23:07:34 -08:00
wanrouter wanrouter: fix sparse warnings: context imbalance 2009-02-26 23:13:36 -08:00
wimax Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2009-02-14 23:12:00 -08:00
wireless Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-03-10 05:04:16 -07:00
x25 x25: '< 0' and '>= 0' test on unsigned 2009-03-13 16:04:12 -07:00
xfrm Revert "xfrm: For 32/64 compatability wrt. xfrm_usersa_info" 2009-01-20 09:49:51 -08:00
compat.c net: socket infrastructure for SO_TIMESTAMPING 2009-02-15 22:43:35 -08:00
Kconfig Network Drop Monitor: Adding Build changes to enable drop monitor 2009-03-13 12:09:29 -07:00
Makefile RDS: Kconfig and Makefile 2009-02-26 23:43:35 -08:00
nonet.c
socket.c net: socket infrastructure for SO_TIMESTAMPING 2009-02-15 22:43:35 -08:00
sysctl_net.c missing bits of net-namespace / sysctl 2008-07-27 09:45:34 -07:00
TUNABLE