kernel-ark/net
Neil Horman c2355e1ab9 bonding: Fix bonding drivers improper modification of netpoll structure
The bonding driver currently modifies the netpoll structure in its xmit path
while sending frames from netpoll.  This is racy, as other cpus can access the
netpoll structure in parallel. Since the bonding driver points np->dev to a
slave device, other cpus can inadvertently attempt to send data directly to
slave devices, leading to improper locking with the bonding master, lost frames,
and deadlocks.  This patch fixes that up.

This patch also removes the real_dev pointer from the netpoll structure as that
data is really only used by bonding in the poll_controller, and we can emulate
its behavior by check each slave for IS_UP.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-10-18 08:32:07 -07:00
..
9p Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-06 19:39:31 -07:00
802 net: return operator cleanup 2010-09-23 14:33:39 -07:00
8021q net: add a core netdev->rx_dropped counter 2010-10-05 14:47:55 -07:00
appletalk
atm Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-11 12:30:34 -07:00
ax25 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-09 22:27:33 -07:00
bluetooth Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-11 12:30:34 -07:00
bridge net dst: use a percpu_counter to track entries 2010-10-11 13:06:53 -07:00
caif Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-06 19:39:31 -07:00
can
core bonding: Fix bonding drivers improper modification of netpoll structure 2010-10-18 08:32:07 -07:00
dcb
dccp dccp: cosmetics - warning format 2010-10-12 06:57:43 +02:00
decnet net dst: use a percpu_counter to track entries 2010-10-11 13:06:53 -07:00
dns_resolver
dsa
econet net: return operator cleanup 2010-09-23 14:33:39 -07:00
ethernet net: return operator cleanup 2010-09-23 14:33:39 -07:00
ieee802154
ipv4 IPv4: route.c: Change checks against 0xffffffff to ipv4_is_lbcast() 2010-10-18 07:22:50 -07:00
ipv6 fib: avoid false sharing on fib_table_hash 2010-10-16 11:13:23 -07:00
ipx
irda irda: Fix heap memory corruption in iriap.c 2010-10-11 02:12:26 +02:00
iucv
key net: return operator cleanup 2010-09-23 14:33:39 -07:00
l2tp net: constify some ppp/pptp structs 2010-09-21 18:04:47 -07:00
lapb
llc net/llc: storing negative error codes in unsigned short 2010-09-16 22:38:23 -07:00
mac80211 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-10-08 15:39:28 -04:00
netfilter ipvs: Use frag walker helper in SCTP proto support. 2010-10-05 00:27:05 -07:00
netlabel
netlink Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-10-08 15:39:28 -04:00
netrom
packet
phonet Phonet: 'connect' socket implementation for Pipe controller 2010-10-13 14:40:34 -07:00
rds Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-27 01:03:03 -07:00
rfkill net: return operator cleanup 2010-09-23 14:33:39 -07:00
rose Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-09-27 01:03:03 -07:00
rxrpc
sched neigh: Protect neigh->ha[] with a seqlock 2010-10-11 12:54:04 -07:00
sctp Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-04 11:56:38 -07:00
sunrpc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-10-06 19:39:31 -07:00
tipc tipc: Simplify bearer shutdown logic 2010-10-18 01:50:49 -07:00
unix AF_UNIX: Implement SO_TIMESTAMP and SO_TIMETAMPNS on Unix sockets 2010-10-05 14:54:36 -07:00
wanrouter
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-10-08 15:39:28 -04:00
x25 X.25 remove bkl in poll 2010-09-22 13:35:51 -07:00
xfrm xfrm: Allow different selector family in temporary state 2010-09-20 11:11:38 -07:00
compat.c
Kconfig net: RPS needs to depend upon USE_GENERIC_SMP_HELPERS 2010-09-14 21:42:22 -07:00
Makefile
nonet.c
socket.c
sysctl_net.c
TUNABLE