Eric Dumazet
63d02d157e
net: tcp: ipv6_mapped needs sk_rx_dst_set method
commit 5d299f3d3c (net: ipv6: fix TCP early demux) added a
regression for ipv6_mapped case.
[ 67.422369] SELinux: initialized (dev autofs, type autofs), uses
genfs_contexts
[ 67.449678] SELinux: initialized (dev autofs, type autofs), uses
genfs_contexts
[ 92.631060] BUG: unable to handle kernel NULL pointer dereference at
(null)
[ 92.631435] IP: [< (null)>] (null)
[ 92.631645] PGD 0
[ 92.631846] Oops: 0010 [#1] SMP
[ 92.632095] Modules linked in: autofs4 sunrpc ipv6 dm_mirror
dm_region_hash dm_log dm_multipath dm_mod video sbs sbshc battery ac lp
parport sg snd_hda_intel snd_hda_codec snd_seq_oss snd_seq_midi_event
snd_seq snd_seq_device pcspkr snd_pcm_oss snd_mixer_oss snd_pcm
snd_timer serio_raw button floppy snd i2c_i801 i2c_core soundcore
snd_page_alloc shpchp ide_cd_mod cdrom microcode ehci_hcd ohci_hcd
uhci_hcd
[ 92.634294] CPU 0
[ 92.634294] Pid: 4469, comm: sendmail Not tainted 3.6.0-rc1 #3
[ 92.634294] RIP: 0010:[<0000000000000000>] [< (null)>]
(null)
[ 92.634294] RSP: 0018:ffff880245fc7cb0 EFLAGS: 00010282
[ 92.634294] RAX: ffffffffa01985f0 RBX: ffff88024827ad00 RCX:
0000000000000000
[ 92.634294] RDX: 0000000000000218 RSI: ffff880254735380 RDI:
ffff88024827ad00
[ 92.634294] RBP: ffff880245fc7cc8 R08: 0000000000000001 R09:
0000000000000000
[ 92.634294] R10: 0000000000000000 R11: ffff880245fc7bf8 R12:
ffff880254735380
[ 92.634294] R13: ffff880254735380 R14: 0000000000000000 R15:
7fffffffffff0218
[ 92.634294] FS: 00007f4516ccd6f0(0000) GS:ffff880256600000(0000)
knlGS:0000000000000000
[ 92.634294] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 92.634294] CR2: 0000000000000000 CR3: 0000000245ed1000 CR4:
00000000000007f0
[ 92.634294] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
0000000000000000
[ 92.634294] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7:
0000000000000400
[ 92.634294] Process sendmail (pid: 4469, threadinfo ffff880245fc6000,
task ffff880254b8cac0)
[ 92.634294] Stack:
[ 92.634294] ffffffff813837a7 ffff88024827ad00 ffff880254b6b0e8
ffff880245fc7d68
[ 92.634294] ffffffff81385083 00000000001d2680 ffff8802547353a8
ffff880245fc7d18
[ 92.634294] ffffffff8105903a ffff88024827ad60 0000000000000002
00000000000000ff
[ 92.634294] Call Trace:
[ 92.634294] [<ffffffff813837a7>] ? tcp_finish_connect+0x2c/0xfa
[ 92.634294] [<ffffffff81385083>] tcp_rcv_state_process+0x2b6/0x9c6
[ 92.634294] [<ffffffff8105903a>] ? sched_clock_cpu+0xc3/0xd1
[ 92.634294] [<ffffffff81059073>] ? local_clock+0x2b/0x3c
[ 92.634294] [<ffffffff8138caf3>] tcp_v4_do_rcv+0x63a/0x670
[ 92.634294] [<ffffffff8133278e>] release_sock+0x128/0x1bd
[ 92.634294] [<ffffffff8139f060>] __inet_stream_connect+0x1b1/0x352
[ 92.634294] [<ffffffff813325f5>] ? lock_sock_nested+0x74/0x7f
[ 92.634294] [<ffffffff8104b333>] ? wake_up_bit+0x25/0x25
[ 92.634294] [<ffffffff813325f5>] ? lock_sock_nested+0x74/0x7f
[ 92.634294] [<ffffffff8139f223>] ? inet_stream_connect+0x22/0x4b
[ 92.634294] [<ffffffff8139f234>] inet_stream_connect+0x33/0x4b
[ 92.634294] [<ffffffff8132e8cf>] sys_connect+0x78/0x9e
[ 92.634294] [<ffffffff813fd407>] ? sysret_check+0x1b/0x56
[ 92.634294] [<ffffffff81088503>] ? __audit_syscall_entry+0x195/0x1c8
[ 92.634294] [<ffffffff811cc26e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[ 92.634294] [<ffffffff813fd3e2>] system_call_fastpath+0x16/0x1b
[ 92.634294] Code: Bad RIP value.
[ 92.634294] RIP [< (null)>] (null)
[ 92.634294] RSP <ffff880245fc7cb0>
[ 92.634294] CR2: 0000000000000000
[ 92.648982] ---[ end trace 24e2bed94314c8d9 ]---
[ 92.649146] Kernel panic - not syncing: Fatal exception in interrupt
Fix this using inet_sk_rx_dst_set(), and export this function in case
IPv6 is modular.
Reported-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
2012-08-09 20:56:09 -07:00 |
| .. |
|
netfilter
|
netfilter: nf_conntrack: generalize nf_ct_l4proto_net
|
2012-07-04 19:37:22 +02:00 |
|
addrconf.c
|
ipv6: add ipv6_addr_hash() helper
|
2012-07-18 11:28:46 -07:00 |
|
addrconf_core.c
|
net: cleanup unsigned to unsigned int
|
2012-04-15 12:44:40 -04:00 |
|
addrlabel.c
|
ipv6: bool/const conversions phase2
|
2012-05-19 01:08:16 -04:00 |
|
af_inet6.c
|
ipv6: bool conversions phase1
|
2012-05-18 02:24:13 -04:00 |
|
ah6.c
|
ipv6: Add redirect support to all protocol icmp error handlers.
|
2012-07-12 00:25:15 -07:00 |
|
anycast.c
|
ipv6: bool/const conversions phase2
|
2012-05-19 01:08:16 -04:00 |
|
datagram.c
|
ipv6: bool/const conversions phase2
|
2012-05-19 01:08:16 -04:00 |
|
esp6.c
|
ipv6: Add redirect support to all protocol icmp error handlers.
|
2012-07-12 00:25:15 -07:00 |
|
exthdrs.c
|
net: Remove casts to same type
|
2012-06-04 11:45:11 -04:00 |
|
exthdrs_core.c
|
ipv6: bool/const conversions phase2
|
2012-05-19 01:08:16 -04:00 |
|
fib6_rules.c
|
net/ipv6/fib6_rules.c: Checkpatch cleanup
|
2012-04-02 04:33:46 -04:00 |
|
icmp.c
|
ipv6: Use icmpv6_notify() to propagate redirect, instead of rt6_redirect().
|
2012-07-12 00:33:37 -07:00 |
|
inet6_connection_sock.c
|
ipv6: fix inet6_csk_xmit()
|
2012-07-18 08:59:58 -07:00 |
|
inet6_hashtables.c
|
|
|
|
ip6_fib.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2012-06-25 15:50:32 -07:00 |
|
ip6_flowlabel.c
|
ipv6: bool/const conversions phase2
|
2012-05-19 01:08:16 -04:00 |
|
ip6_input.c
|
net: TCP early demux cleanup
|
2012-07-30 14:53:21 -07:00 |
|
ip6_output.c
|
inet: Minimize use of cached route inetpeer.
|
2012-07-10 22:40:11 -07:00 |
|
ip6_tunnel.c
|
ipv6: add ipv6_addr_hash() helper
|
2012-07-18 11:28:46 -07:00 |
|
ip6mr.c
|
ip6mr: Do not use RTA_PUT() macros
|
2012-06-27 15:36:44 -07:00 |
|
ipcomp6.c
|
ipv6: Add redirect support to all protocol icmp error handlers.
|
2012-07-12 00:25:15 -07:00 |
|
ipv6_sockglue.c
|
net: cleanup unsigned to unsigned int
|
2012-04-15 12:44:40 -04:00 |
|
Kconfig
|
xfrm: make xfrm_algo.c a module
|
2012-05-15 13:13:34 -04:00 |
|
Makefile
|
|
|
|
mcast.c
|
ipv6: fix unappropriate errno returned for non-multicast address
|
2012-07-17 01:35:03 -07:00 |
|
mip6.c
|
ipv6: correct the ipv6 option name - Pad0 to Pad1
|
2012-05-17 15:49:51 -04:00 |
|
ndisc.c
|
ipv6: Use icmpv6_notify() to propagate redirect, instead of rt6_redirect().
|
2012-07-12 00:33:37 -07:00 |
|
netfilter.c
|
|
|
|
proc.c
|
ipv6: fix per device IP snmp counters
|
2012-01-17 23:56:18 -05:00 |
|
protocol.c
|
inet: Sanitize inet{,6} protocol demux.
|
2012-06-19 18:56:21 -07:00 |
|
raw.c
|
ipv6: Add redirect support to all protocol icmp error handlers.
|
2012-07-12 00:25:15 -07:00 |
|
reassembly.c
|
ipv6: use skb coalescing in reassembly
|
2012-05-19 18:34:57 -04:00 |
|
route.c
|
ipv6: fix incorrect route 'expires' value passed to userspace
|
2012-07-29 23:18:31 -07:00 |
|
sit.c
|
net: Pass optional SKB and SK arguments to dst_ops->{update_pmtu,redirect}()
|
2012-07-17 03:29:28 -07:00 |
|
syncookies.c
|
net-tcp: Fast Open base
|
2012-07-19 10:55:36 -07:00 |
|
sysctl_net_ipv6.c
|
net: Delete all remaining instances of ctl_path
|
2012-04-20 21:22:30 -04:00 |
|
tcp_ipv6.c
|
net: tcp: ipv6_mapped needs sk_rx_dst_set method
|
2012-08-09 20:56:09 -07:00 |
|
tunnel6.c
|
net: ipv6: Standardize prefixes for message logging
|
2012-05-16 01:01:03 -04:00 |
|
udp.c
|
ipv6: Add redirect support to all protocol icmp error handlers.
|
2012-07-12 00:25:15 -07:00 |
|
udp_impl.h
|
|
|
|
udplite.c
|
|
|
|
xfrm6_input.c
|
|
|
|
xfrm6_mode_beet.c
|
ipsec: be careful of non existing mac headers
|
2012-02-23 16:50:45 -05:00 |
|
xfrm6_mode_ro.c
|
|
|
|
xfrm6_mode_transport.c
|
|
|
|
xfrm6_mode_tunnel.c
|
ipsec: be careful of non existing mac headers
|
2012-02-23 16:50:45 -05:00 |
|
xfrm6_output.c
|
xfrm6: remove unneeded NULL check in __xfrm6_output()
|
2012-02-01 02:52:48 -05:00 |
|
xfrm6_policy.c
|
net: Pass optional SKB and SK arguments to dst_ops->{update_pmtu,redirect}()
|
2012-07-17 03:29:28 -07:00 |
|
xfrm6_state.c
|
|
|
|
xfrm6_tunnel.c
|
net: cleanup unsigned to unsigned int
|
2012-04-15 12:44:40 -04:00 |