linux/net/bridge
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
..
netfilter netfilter: xtables: change hotdrop pointer to direct modification 2010-05-11 18:35:27 +02:00
br_device.c bridge: Fix netpoll support 2010-06-15 11:00:40 -07:00
br_fdb.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_forward.c bridge: Fix netpoll support 2010-06-15 11:00:40 -07:00
br_if.c bridge: Fix netpoll support 2010-06-15 11:00:40 -07:00
br_input.c net: replace hooks in __netif_receive_skb V5 2010-06-02 07:11:15 -07:00
br_ioctl.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_multicast.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_netfilter.c net-next: remove useless union keyword 2010-06-10 23:31:35 -07:00
br_netlink.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_notify.c bridge: update sysfs link names if port device names have changed 2010-05-15 23:10:15 -07:00
br_private_stp.h
br_private.h bridge: Fix netpoll support 2010-06-15 11:00:40 -07:00
br_stp_bpdu.c Merge branch 'master' of /repos/git/net-next-2.6 2010-04-20 16:02:01 +02:00
br_stp_if.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_stp_timer.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_stp.c bridge: change console message interface 2010-05-15 23:10:02 -07:00
br_sysfs_br.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
br_sysfs_if.c bridge: update sysfs link names if port device names have changed 2010-05-15 23:10:15 -07:00
br.c net: replace hooks in __netif_receive_skb V5 2010-06-02 07:11:15 -07:00
Kconfig bridge br_multicast: IPv6 MLD support. 2010-04-23 13:35:56 +09:00
Makefile bridge: Add core IGMP snooping support 2010-02-28 00:48:45 -08:00