linux/net/core
Florian Westphal 019a316992 rtnetlink: add reference counting to prevent module unload while dump is in progress
I don't see what prevents rmmod (unregister_all is called) while a dump
is active.

Even if we'd add rtnl lock/unlock pair to unregister_all (as done here),
thats not enough either as rtnl_lock is released right before the dump
process starts.

So this adds a refcount:
 * acquire rtnl mutex
 * bump refcount
 * release mutex
 * start the dump

... and make unregister_all remove the callbacks (no new dumps possible)
and then wait until refcount is 0.

Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-09 16:57:38 -07:00
..
datagram.c sock: add MSG_ZEROCOPY 2017-08-03 21:37:29 -07:00
dev_addr_lists.c
dev_ioctl.c net: check dev->addr_len for dev_set_mac_address() 2017-07-29 11:25:05 -07:00
dev.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-09 16:28:45 -07:00
devlink.c
drop_monitor.c
dst_cache.c
dst.c net: store port/representator id in metadata_dst 2017-06-25 11:42:01 -04:00
ethtool.c net: ethtool: add support for forward error correction modes 2017-07-29 23:23:44 -07:00
fib_notifier.c net: core: Make the FIB notification chain generic 2017-08-03 15:35:59 -07:00
fib_rules.c rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
filter.c bpf: add BPF_J{LT,LE,SLT,SLE} instructions 2017-08-09 16:53:56 -07:00
flow_dissector.c flow_dissector: remove unused functions 2017-08-02 10:50:03 -07:00
gen_estimator.c
gen_stats.c
gro_cells.c
hwbm.c
link_watch.c
lwt_bpf.c
lwtunnel.c ipv6: sr: define core operations for seg6local lightweight tunnel 2017-08-07 14:16:22 -07:00
Makefile net: core: Make the FIB notification chain generic 2017-08-03 15:35:59 -07:00
neighbour.c rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
net_namespace.c rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
net-procfs.c
net-sysfs.c net: convert net.passive from atomic_t to refcount_t 2017-07-01 07:39:09 -07:00
net-sysfs.h
net-traces.c
netclassid_cgroup.c
netevent.c
netpoll.c netpoll: Fix device name check in netpoll_setup() 2017-07-26 17:01:43 -07:00
netprio_cgroup.c
pktgen.c net: convert sk_buff.users from atomic_t to refcount_t 2017-07-01 07:39:07 -07:00
ptp_classifier.c
request_sock.c
rtnetlink.c rtnetlink: add reference counting to prevent module unload while dump is in progress 2017-08-09 16:57:38 -07:00
scm.c
secure_seq.c
skbuff.c sock: fix zerocopy panic in mem accounting 2017-08-09 16:49:17 -07:00
sock_diag.c
sock_reuseport.c
sock.c sock: add SOCK_ZEROCOPY sockopt 2017-08-03 21:37:29 -07:00
stream.c
sysctl_net_core.c
timestamping.c
tso.c
utils.c