linux/net/core
David S. Miller 8d50b53d66 pkt_sched: Fix OOPS on ingress qdisc add.
Bug report from Steven Jan Springl:

	Issuing the following command causes a kernel oops:
		tc qdisc add dev eth0 handle ffff: ingress

The problem mostly stems from all of the special case handling of
ingress qdiscs.

So, to fix this, do the grafting operation the same way we do for TX
qdiscs.  Which means that dev_activate() and dev_deactivate() now do
the "qdisc_sleeping <--> qdisc" transitions on dev->rx_queue too.

Future simplifications are possible now, mainly because it is
impossible for dev_queue->{qdisc,qdisc_sleeping} to be NULL.  There
are NULL checks all over to handle the ingress qdisc special case
that used to exist before this commit.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-07-30 02:44:25 -07:00
..
datagram.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
dev_mcast.c netdev: Do not use TX lock to protect address lists. 2008-07-15 00:15:08 -07:00
dev.c pkt_sched: Fix OOPS on ingress qdisc add. 2008-07-30 02:44:25 -07:00
dst.c
ethtool.c
fib_rules.c
filter.c
flow.c
gen_estimator.c
gen_stats.c
iovec.c net: Use standard structures for generic socket address structures. 2008-07-19 22:35:47 -07:00
kmap_skb.h
link_watch.c
Makefile
neighbour.c core: add stat to track unresolved discards in neighbor cache 2008-07-16 20:50:49 -07:00
net_namespace.c
net-sysfs.c
net-sysfs.h
netevent.c
netpoll.c net: Use queue aware tests throughout. 2008-07-17 19:21:07 -07:00
pktgen.c netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
request_sock.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
rtnetlink.c netdev: Allocate multiple queues for TX. 2008-07-17 19:21:00 -07:00
scm.c
skbuff.c mac80211: partially fix skb->cb use 2008-07-29 16:55:08 -04:00
sock.c net: Update entry in af_family_clock_key_strings 2008-07-23 14:06:04 -07:00
stream.c net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
sysctl_net_core.c printk ratelimiting rewrite 2008-07-25 10:53:29 -07:00
user_dma.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-07-26 20:17:56 -07:00
utils.c printk ratelimiting rewrite 2008-07-25 10:53:29 -07:00