android_kernel_google_msm/net/core
Eric Dumazet 39b58acdfa net: rps: fix cpu unplug
softnet_data.input_pkt_queue is protected by a spinlock that we must
hold when transferring packets from victim queue to an active one.
This is because other cpus could still be trying to enqueue packets
into victim queue.

A second problem is that when we transfert the NAPI poll_list from
victim to current cpu, we absolutely need to special case the percpu
backlog, because we do not want to add complex locking to protect
process_queue : Only owner cpu is allowed to manipulate it, unless
cpu is offline.

Based on initial patch from Prasad Sodagudi &
Subash Abhinov Kasiviswanathan.

This version is better because we do not slow down packet processing,
only make migration safer.

Change-Id: I6468cc74779b126ce0565f8bd6cc39514b14eb38
Reported-by: Prasad Sodagudi <psodagud@codeaurora.org>
Reported-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Tom Herbert <therbert@google.com>
Git-commit: ac64da0b83d82abe62f78b3d0e21cca31aea24fa
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
2016-10-29 23:12:26 +08:00
..
datagram.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dev.c net: rps: fix cpu unplug 2016-10-29 23:12:26 +08:00
dev_addr_lists.c net: fix /proc/net/dev regression 2012-04-03 17:23:23 -04:00
drop_monitor.c drop_monitor: prevent init path from scheduling on the wrong cpu 2012-05-02 21:02:48 -04:00
dst.c
ethtool.c net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol() 2016-06-02 11:27:42 -07:00
fib_rules.c net: core: Support UID-based routing. 2014-07-08 16:55:52 -07:00
filter.c sk_run_filter: add BPF_S_ANC_SECCOMP_LD_W 2014-10-31 19:46:10 -07:00
flow.c
flow_dissector.c net-fixes: flow_dissector: prevent an infinite loop (CVE-2013-4348) 2013-11-14 20:55:00 -08:00
gen_estimator.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
gen_stats.c
iovec.c net: get rid of some pointless casts to sockaddr 2012-03-11 19:11:22 -07:00
kmap_skb.h net: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:27 +08:00
link_watch.c
Makefile
neighbour.c neigh: Better handling of transition to NUD_PROBE state 2015-05-22 18:16:42 +09:00
net-sysfs.c static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
net-sysfs.h
net-traces.c
net_namespace.c proc: Usable inode numbers for the namespace file descriptors. 2015-07-13 11:18:01 -07:00
netevent.c
netpoll.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-02-19 16:03:15 -05:00
netprio_cgroup.c Merge branch 'for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2012-03-20 18:11:21 -07:00
pktgen.c pktgen: fix module unload for good 2012-05-18 13:54:33 -04:00
request_sock.c
rtnetlink.c fix infoleak in rtnetlink 2016-06-15 06:22:23 +00:00
scm.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
secure_seq.c net: defer net_secret[] initialization 2013-09-25 17:01:47 +00:00
skbuff.c net: allow pskb_expand_head() to get maximum tailroom 2012-04-11 10:10:43 -04:00
sock.c net: guard tcp_set_keepalive() to tcp sockets 2016-10-29 23:12:11 +08:00
sock_diag.c sock_diag: Fix out-of-bounds access to sock_diag_handlers[] 2013-09-25 17:01:53 +00:00
stream.c
sysctl_net_core.c static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
timestamping.c
user_dma.c
utils.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00