Alexey Dobriyan
efb9a8c28c
netfilter: netns ct: walk netns list under RTNL
netns list (just list) is under RTNL. But helper and proto unregistration
happen during rmmod when RTNL is not held, and that's how it was tested:
modprobe/rmmod vs clone(CLONE_NEWNET)/exit.
BUG: unable to handle kernel paging request at 0000000000100100 <===
IP: [<ffffffffa009890f>] nf_conntrack_l4proto_unregister+0x96/0xae [nf_conntrack]
PGD 15e300067 PUD 15e1d8067 PMD 0
Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
last sysfs file: /sys/kernel/uevent_seqnum
CPU 0
Modules linked in: nf_conntrack_proto_sctp(-) nf_conntrack_proto_dccp(-) af_packet iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 iptable_filter ip_tables xt_tcpudp ip6table_filter ip6_tables x_tables ipv6 sr_mod cdrom [last unloaded: nf_conntrack_proto_sctp]
Pid: 16758, comm: rmmod Not tainted 2.6.28-rc2-netns-xfrm #3
RIP: 0010:[<ffffffffa009890f>] [<ffffffffa009890f>] nf_conntrack_l4proto_unregister+0x96/0xae [nf_conntrack]
RSP: 0018:ffff88015dc1fec8 EFLAGS: 00010212
RAX: 0000000000000000 RBX: 00000000001000f8 RCX: 0000000000000000
RDX: ffffffffa009575c RSI: 0000000000000003 RDI: ffffffffa00956b5
RBP: ffff88015dc1fed8 R08: 0000000000000002 R09: 0000000000000000
R10: 0000000000000000 R11: ffff88015dc1fe48 R12: ffffffffa0458f60
R13: 0000000000000880 R14: 00007fff4c361d30 R15: 0000000000000880
FS: 00007f624435a6f0(0000) GS:ffffffff80521580(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000100100 CR3: 0000000168969000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process rmmod (pid: 16758, threadinfo ffff88015dc1e000, task ffff880179864218)
Stack:
ffffffffa0459100 0000000000000000 ffff88015dc1fee8 ffffffffa0457934
ffff88015dc1ff78 ffffffff80253fef 746e6e6f635f666e 6f72705f6b636172
00707463735f6f74 ffffffff8024cb30 00000000023b8010 0000000000000000
Call Trace:
[<ffffffffa0457934>] nf_conntrack_proto_sctp_fini+0x10/0x1e [nf_conntrack_proto_sctp]
[<ffffffff80253fef>] sys_delete_module+0x19f/0x1fe
[<ffffffff8024cb30>] ? trace_hardirqs_on_caller+0xf0/0x114
[<ffffffff803ea9b2>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[<ffffffff8020b52b>] system_call_fastpath+0x16/0x1b
Code: 13 35 e0 e8 c4 6c 1a e0 48 8b 1d 6d c6 46 e0 eb 16 48 89 df 4c 89 e2 48 c7 c6 fc 85 09 a0 e8 61 cd ff ff 48 8b 5b 08 48 83 eb 08 <48> 8b 43 08 0f 18 08 48 8d 43 08 48 3d 60 4f 50 80 75 d3 5b 41
RIP [<ffffffffa009890f>] nf_conntrack_l4proto_unregister+0x96/0xae [nf_conntrack]
RSP <ffff88015dc1fec8>
CR2: 0000000000100100
---[ end trace bde8ac82debf7192 ]---
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
2008-11-05 03:03:18 -08:00 |
| .. |
|
ipvs
|
ipvs: Update CONFIG_IP_VS_IPV6 description and help text
|
2008-10-19 23:29:56 -07:00 |
|
core.c
|
netfilter: enable netfilter in netns
|
2008-10-08 11:35:11 +02:00 |
|
Kconfig
|
netfilter: ctnetlink: remove obsolete NAT dependency from Kconfig
|
2008-10-20 03:31:17 -07:00 |
|
Makefile
|
Merge branch 'lvs-next-2.6' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/lvs-2.6
|
2008-10-08 14:26:36 -07:00 |
|
nf_conntrack_acct.c
|
fix random typos
|
2008-10-16 11:21:30 -07:00 |
|
nf_conntrack_amanda.c
|
[NETFILTER]: nf_conntrack: add tuplehash l3num/protonum accessors
|
2008-04-14 11:15:52 +02:00 |
|
nf_conntrack_core.c
|
netfilter: ctnetlink: remove bogus module dependency between ctnetlink and nf_nat
|
2008-10-14 11:58:31 -07:00 |
|
nf_conntrack_ecache.c
|
netfilter: netns nf_conntrack: per-netns event cache
|
2008-10-08 11:35:07 +02:00 |
|
nf_conntrack_expect.c
|
netfilter: netns nf_conntrack: final netns tweaks
|
2008-10-08 11:35:09 +02:00 |
|
nf_conntrack_extend.c
|
netfilter: nf_conntrack_extend: avoid unnecessary "ct->ext" dereferences
|
2008-07-26 17:50:05 -07:00 |
|
nf_conntrack_ftp.c
|
netfilter: netns nf_conntrack: pass conntrack to nf_conntrack_event_cache() not skb
|
2008-10-08 11:35:07 +02:00 |
|
nf_conntrack_h323_asn1.c
|
[NETFILTER]: nf_conntrack_h323: constify and annotate H.323 helper
|
2008-01-31 19:28:07 -08:00 |
|
nf_conntrack_h323_main.c
|
netfilter: netns nf_conntrack: H323 conntracking in netns
|
2008-10-08 11:35:09 +02:00 |
|
nf_conntrack_h323_types.c
|
[NETFILTER]: nf_conntrack_h323: constify and annotate H.323 helper
|
2008-01-31 19:28:07 -08:00 |
|
nf_conntrack_helper.c
|
netfilter: netns ct: walk netns list under RTNL
|
2008-11-05 03:03:18 -08:00 |
|
nf_conntrack_irc.c
|
netfilter: nf_conntrack_irc: make sure string is terminated before calling simple_strtoul
|
2008-09-07 18:21:24 -07:00 |
|
nf_conntrack_l3proto_generic.c
|
[NETFILTER]: nf_conntrack: use bool type in struct nf_conntrack_l3proto
|
2008-04-14 11:15:52 +02:00 |
|
nf_conntrack_netbios_ns.c
|
[NETFILTER]: nf_conntrack: introduce expectation classes and policies
|
2008-03-25 20:09:15 -07:00 |
|
nf_conntrack_netlink.c
|
netfilter: fix compilation error with NAT=n
|
2008-10-20 03:34:27 -07:00 |
|
nf_conntrack_pptp.c
|
driver core: basic infrastructure for per-module dynamic debug messages
|
2008-10-16 09:24:47 -07:00 |
|
nf_conntrack_proto.c
|
netfilter: netns ct: walk netns list under RTNL
|
2008-11-05 03:03:18 -08:00 |
|
nf_conntrack_proto_dccp.c
|
netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_log_invalid sysctl
|
2008-10-08 11:35:08 +02:00 |
|
nf_conntrack_proto_generic.c
|
netfilter: Use unsigned types for hooknum and pf vars
|
2008-10-08 11:35:00 +02:00 |
|
nf_conntrack_proto_gre.c
|
netfilter: nf_conntrack_proto_gre: switch to register_pernet_gen_subsys()
|
2008-10-30 23:55:44 -07:00 |
|
nf_conntrack_proto_sctp.c
|
netfilter: netns nf_conntrack: pass conntrack to nf_conntrack_event_cache() not skb
|
2008-10-08 11:35:07 +02:00 |
|
nf_conntrack_proto_tcp.c
|
netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_log_invalid sysctl
|
2008-10-08 11:35:08 +02:00 |
|
nf_conntrack_proto_udp.c
|
netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_log_invalid sysctl
|
2008-10-08 11:35:08 +02:00 |
|
nf_conntrack_proto_udplite.c
|
netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_log_invalid sysctl
|
2008-10-08 11:35:08 +02:00 |
|
nf_conntrack_sane.c
|
[NETFILTER]: nf_conntrack: replace NF_CT_DUMP_TUPLE macro indrection by function call
|
2008-04-14 11:15:54 +02:00 |
|
nf_conntrack_sip.c
|
netfilter: netns nf_conntrack: SIP conntracking in netns
|
2008-10-08 11:35:09 +02:00 |
|
nf_conntrack_standalone.c
|
netfilter: netns nf_conntrack: per-netns net.netfilter.nf_conntrack_log_invalid sysctl
|
2008-10-08 11:35:08 +02:00 |
|
nf_conntrack_tftp.c
|
[NETFILTER]: nf_conntrack: replace NF_CT_DUMP_TUPLE macro indrection by function call
|
2008-04-14 11:15:54 +02:00 |
|
nf_internals.h
|
netfilter: Use unsigned types for hooknum and pf vars
|
2008-10-08 11:35:00 +02:00 |
|
nf_log.c
|
netfilter: Introduce NFPROTO_* constants
|
2008-10-08 11:35:00 +02:00 |
|
nf_queue.c
|
netfilter: Introduce NFPROTO_* constants
|
2008-10-08 11:35:00 +02:00 |
|
nf_sockopt.c
|
netfilter: enable netfilter in netns
|
2008-10-08 11:35:11 +02:00 |
|
nf_tproxy_core.c
|
netfilter: remove unused #include <version.h>
|
2008-10-12 21:08:34 -07:00 |
|
nfnetlink.c
|
net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely)
|
2008-10-16 15:24:51 -07:00 |
|
nfnetlink_log.c
|
netfilter: Use unsigned types for hooknum and pf vars
|
2008-10-08 11:35:00 +02:00 |
|
nfnetlink_queue.c
|
netns: Use net_eq() to compare net-namespaces for optimization.
|
2008-07-19 22:34:43 -07:00 |
|
x_tables.c
|
netfilter: xtables: provide invoked family value to extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_CLASSIFY.c
|
netfilter: xtables: move extension arguments into compound structure (4/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_comment.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_connbytes.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_connlimit.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_CONNMARK.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_connmark.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_CONNSECMARK.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_conntrack.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_dccp.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_dscp.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_DSCP.c
|
netfilter: xtables: move extension arguments into compound structure (5/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_esp.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_hashlimit.c
|
netfilter: xtables: move extension arguments into compound structure (3/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_helper.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_iprange.c
|
netfilter: xt_iprange: fix range inversion match
|
2008-10-20 03:32:21 -07:00 |
|
xt_length.c
|
netfilter: xtables: move extension arguments into compound structure (1/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_limit.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_mac.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_MARK.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_mark.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_multiport.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_NFLOG.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_NFQUEUE.c
|
netfilter: replace old NF_ARP calls with NFPROTO_ARP
|
2008-10-20 03:34:51 -07:00 |
|
xt_NOTRACK.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_owner.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_physdev.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_pkttype.c
|
netfilter: xtables: cut down on static data for family-independent extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_policy.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_quota.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_rateest.c
|
netfilter: xtables: move extension arguments into compound structure (3/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_RATEEST.c
|
netfilter: xtables: move extension arguments into compound structure (6/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_realm.c
|
netfilter: xtables: use NFPROTO_UNSPEC in more extensions
|
2008-10-08 11:35:20 +02:00 |
|
xt_recent.c
|
netfilter: xt_recent: use proc_create_data()
|
2008-10-20 03:33:49 -07:00 |
|
xt_sctp.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_SECMARK.c
|
netfilter: xtables: move extension arguments into compound structure (6/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_socket.c
|
netfilter: xtables: move extension arguments into compound structure (1/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_state.c
|
netfilter: xtables: move extension arguments into compound structure (3/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_statistic.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_string.c
|
netfilter: xtables: move extension arguments into compound structure (3/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_TCPMSS.c
|
netfilter: xtables: move extension arguments into compound structure (5/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_tcpmss.c
|
netfilter: xtables: move extension arguments into compound structure (1/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_TCPOPTSTRIP.c
|
netfilter: xtables: move extension arguments into compound structure (4/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_tcpudp.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_time.c
|
netfilter: xtables: move extension arguments into compound structure (2/6)
|
2008-10-08 11:35:18 +02:00 |
|
xt_TPROXY.c
|
netfilter: xtables: move extension arguments into compound structure (5/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_TRACE.c
|
netfilter: xtables: move extension arguments into compound structure (4/6)
|
2008-10-08 11:35:19 +02:00 |
|
xt_u32.c
|
netfilter: xtables: move extension arguments into compound structure (1/6)
|
2008-10-08 11:35:18 +02:00 |