kernel_optimize_test/net
Florian Westphal e588e2f286 inet: frag: make sure forced eviction removes all frags
Quoting Alexander Aring:
  While fragmentation and unloading of 6lowpan module I got this kernel Oops
  after few seconds:

  BUG: unable to handle kernel paging request at f88bbc30
  [..]
  Modules linked in: ipv6 [last unloaded: 6lowpan]
  Call Trace:
   [<c012af4c>] ? call_timer_fn+0x54/0xb3
   [<c012aef8>] ? process_timeout+0xa/0xa
   [<c012b66b>] run_timer_softirq+0x140/0x15f

Problem is that incomplete frags are still around after unload; when
their frag expire timer fires, we get crash.

When a netns is removed (also done when unloading module), inet_frag
calls the evictor with 'force' argument to purge remaining frags.

The evictor loop terminates when accounted memory ('work') drops to 0
or the lru-list becomes empty.  However, the mem accounting is done
via percpu counters and may not be accurate, i.e. loop may terminate
prematurely.

Alter evictor to only stop once the lru list is empty when force is
requested.

Reported-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
Reported-by: Alexander Aring <alex.aring@gmail.com>
Tested-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-06 15:28:45 -05:00
..
9p
802
8021q
appletalk
atm
ax25
batman-adv
bluetooth
bridge bridge: multicast: add sanity check for query source addresses 2014-03-05 20:40:24 -05:00
caif
can can: remove CAN FD compatibility for CAN 2.0 sockets 2014-03-03 14:29:52 +01:00
ceph
core neigh: recompute reachabletime before returning from neigh_periodic_work() 2014-02-27 18:21:17 -05:00
dcb
dccp
decnet
dns_resolver
dsa
ethernet
hsr hsr: off by one sanity check in hsr_register_frame_in() 2014-03-03 15:29:42 -05:00
ieee802154
ipv4 inet: frag: make sure forced eviction removes all frags 2014-03-06 15:28:45 -05:00
ipv6 ipv6: ipv6_find_hdr restore prev functionality 2014-02-27 18:27:26 -05:00
ipx
irda
iucv
key
l2tp l2tp: fix userspace reception on plain L2TP sockets 2014-03-06 14:25:39 -05:00
lapb
llc
mac80211 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2014-03-03 14:34:45 -05:00
mac802154
mpls
netfilter
netlabel
netlink net: Fix permission check in netlink_connect() 2014-02-25 18:35:14 -05:00
netrom
nfc NFC: NCI: Fix NULL pointer dereference 2014-02-23 23:14:45 +01:00
openvswitch
packet
phonet
rds
rfkill
rose
rxrpc
sched sch_tbf: Fix potential memory leak in tbf_change(). 2014-02-27 12:53:50 -05:00
sctp net: sctp: fix skb leakage in COOKIE ECHO path of chunk->auth_chunk 2014-03-05 20:40:25 -05:00
sunrpc
tipc tipc: don't log disabled tasklet handler errors 2014-03-06 14:46:24 -05:00
unix
vmw_vsock
wimax
wireless cfg80211: regulatory: reset regdomain in case of error 2014-02-25 16:27:04 +01:00
x25
xfrm xfrm: Fix unlink race when policies are deleted. 2014-02-26 09:52:02 +01:00
compat.c
Kconfig
Makefile
nonet.c
socket.c
sysctl_net.c