linux-stable/net
Herbert Xu 91d2c34a4e bridge: Fix netpoll support
There are multiple problems with the newly added netpoll support:

1) Use-after-free on each netpoll packet.
2) Invoking unsafe code on netpoll/IRQ path.
3) Breaks when netpoll is enabled on the underlying device.

This patch fixes all of these problems.  In particular, we now
allocate proper netpoll structures for each underlying device.

We only allow netpoll to be enabled on the bridge when all the
devices underneath it support netpoll.  Once it is enabled, we
do not allow non-netpoll devices to join the bridge (until netpoll
is disabled again).

This allows us to do away with the npinfo juggling that caused
problem number 1.

Incidentally this patch fixes number 2 by bypassing unsafe code
such as multicast snooping and netfilter.

Reported-by: Qianfeng Zhang <frzhang@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-06-15 11:00:40 -07:00
..
9p kernel-wide: replace USHORT_MAX, SHORT_MAX and SHORT_MIN with USHRT_MAX, SHRT_MAX and SHRT_MIN 2010-05-25 08:07:02 -07:00
802
8021q net: Enable 64-bit net device statistics on 32-bit architectures 2010-06-12 15:51:22 -07:00
appletalk
atm net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
ax25
bluetooth net: use __packed annotation 2010-06-03 03:21:52 -07:00
bridge bridge: Fix netpoll support 2010-06-15 11:00:40 -07:00
caif Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-06-11 13:32:31 -07:00
can net/can: Use memdup_user 2010-05-31 00:24:11 -07:00
core netpoll: Allow netpoll_setup/cleanup recursion 2010-06-15 10:58:40 -07:00
dcb
dccp net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
decnet net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
dsa
econet econet: fix locking 2010-06-11 18:37:08 -07:00
ethernet net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
ieee802154 ieee802154: Fix possible NULL pointer dereference in wpan_phy_alloc 2010-05-23 23:11:07 -07:00
ipv4 inetpeer: various changes 2010-06-14 23:13:08 -07:00
ipv6 ipv6: RCU changes in ipv6_get_mtu() and ip6_dst_hoplimit() 2010-06-14 23:13:07 -07:00
ipx
irda irttp: Print device parameters and statistics as unsigned 2010-06-12 18:18:33 -07:00
iucv net: use __packed annotation 2010-06-03 03:21:52 -07:00
key
l2tp net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
lapb
llc
mac80211 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-06-11 13:32:31 -07:00
netfilter pkt_sched: gen_kill_estimator() rcu fixes 2010-06-11 18:37:08 -07:00
netlabel
netlink netlink: Implment netlink_broadcast_filtered 2010-05-21 09:37:32 -07:00
netrom
packet packet_mmap: expose hw packet timestamps to network packet capture utilities 2010-06-02 05:53:56 -07:00
phonet phonet: use call_rcu for phonet device free 2010-06-09 16:14:25 -07:00
rds net/rds: Add missing mutex_unlock 2010-05-29 00:18:48 -07:00
rfkill
rose
rxrpc net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
sched pkt_sched: gen_kill_estimator() rcu fixes 2010-06-11 18:37:08 -07:00
sctp net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
sunrpc sunrpc: fix leak on error on socket xprt setup 2010-05-26 08:43:50 -04:00
tipc
unix
wanrouter
wimax Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-05-20 21:04:44 -07:00
wireless cfg80211: make action channel type optional 2010-06-02 16:13:27 -04:00
x25
xfrm net: check for refcount if pop a stacked dst_entry 2010-06-04 15:56:00 -07:00
compat.c From abbffa2aa9bd6f8df16d0d0a102af677510d8b9a Mon Sep 17 00:00:00 2001 2010-06-03 20:03:40 -07:00
Kconfig net/sysfs: Fix the bitrot in network device kobject namespace support 2010-05-21 09:37:32 -07:00
Makefile
nonet.c
socket.c From abbffa2aa9bd6f8df16d0d0a102af677510d8b9a Mon Sep 17 00:00:00 2001 2010-06-03 20:03:40 -07:00
sysctl_net.c
TUNABLE