Eric Dumazet
bf50b606cf
tcp: repaired skbs must init their tso_segs
...
syzbot reported a WARN_ON(!tcp_skb_pcount(skb))
in tcp_send_loss_probe() [1]
This was caused by TCP_REPAIR sent skbs that inadvertenly
were missing a call to tcp_init_tso_segs()
[1]
WARNING: CPU: 1 PID: 0 at net/ipv4/tcp_output.c:2534 tcp_send_loss_probe+0x771/0x8a0 net/ipv4/tcp_output.c:2534
Kernel panic - not syncing: panic_on_warn set ...
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.0.0-rc7+ #77
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x172/0x1f0 lib/dump_stack.c:113
panic+0x2cb/0x65c kernel/panic.c:214
__warn.cold+0x20/0x45 kernel/panic.c:571
report_bug+0x263/0x2b0 lib/bug.c:186
fixup_bug arch/x86/kernel/traps.c:178 [inline]
fixup_bug arch/x86/kernel/traps.c:173 [inline]
do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:271
do_invalid_op+0x37/0x50 arch/x86/kernel/traps.c:290
invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:973
RIP: 0010:tcp_send_loss_probe+0x771/0x8a0 net/ipv4/tcp_output.c:2534
Code: 88 fc ff ff 4c 89 ef e8 ed 75 c8 fb e9 c8 fc ff ff e8 43 76 c8 fb e9 63 fd ff ff e8 d9 75 c8 fb e9 94 f9 ff ff e8 bf 03 91 fb <0f> 0b e9 7d fa ff ff e8 b3 03 91 fb 0f b6 1d 37 43 7a 03 31 ff 89
RSP: 0018:ffff8880ae907c60 EFLAGS: 00010206
RAX: ffff8880a989c340 RBX: 0000000000000000 RCX: ffffffff85dedbdb
RDX: 0000000000000100 RSI: ffffffff85dee0b1 RDI: 0000000000000005
RBP: ffff8880ae907c90 R08: ffff8880a989c340 R09: ffffed10147d1ae1
R10: ffffed10147d1ae0 R11: ffff8880a3e8d703 R12: ffff888091b90040
R13: ffff8880a3e8d540 R14: 0000000000008000 R15: ffff888091b90860
tcp_write_timer_handler+0x5c0/0x8a0 net/ipv4/tcp_timer.c:583
tcp_write_timer+0x10e/0x1d0 net/ipv4/tcp_timer.c:607
call_timer_fn+0x190/0x720 kernel/time/timer.c:1325
expire_timers kernel/time/timer.c:1362 [inline]
__run_timers kernel/time/timer.c:1681 [inline]
__run_timers kernel/time/timer.c:1649 [inline]
run_timer_softirq+0x652/0x1700 kernel/time/timer.c:1694
__do_softirq+0x266/0x95a kernel/softirq.c:292
invoke_softirq kernel/softirq.c:373 [inline]
irq_exit+0x180/0x1d0 kernel/softirq.c:413
exiting_irq arch/x86/include/asm/apic.h:536 [inline]
smp_apic_timer_interrupt+0x14a/0x570 arch/x86/kernel/apic/apic.c:1062
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:807
</IRQ>
RIP: 0010:native_safe_halt+0x2/0x10 arch/x86/include/asm/irqflags.h:58
Code: ff ff ff 48 89 c7 48 89 45 d8 e8 59 0c a1 fa 48 8b 45 d8 e9 ce fe ff ff 48 89 df e8 48 0c a1 fa eb 82 90 90 90 90 90 90 fb f4 <c3> 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 f4 c3 90 90 90 90 90 90
RSP: 0018:ffff8880a98afd78 EFLAGS: 00000286 ORIG_RAX: ffffffffffffff13
RAX: 1ffffffff1125061 RBX: ffff8880a989c340 RCX: 0000000000000000
RDX: dffffc0000000000 RSI: 0000000000000001 RDI: ffff8880a989cbbc
RBP: ffff8880a98afda8 R08: ffff8880a989c340 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000001
R13: ffffffff889282f8 R14: 0000000000000001 R15: 0000000000000000
arch_cpu_idle+0x10/0x20 arch/x86/kernel/process.c:555
default_idle_call+0x36/0x90 kernel/sched/idle.c:93
cpuidle_idle_call kernel/sched/idle.c:153 [inline]
do_idle+0x386/0x570 kernel/sched/idle.c:262
cpu_startup_entry+0x1b/0x20 kernel/sched/idle.c:353
start_secondary+0x404/0x5c0 arch/x86/kernel/smpboot.c:271
secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243
Kernel Offset: disabled
Rebooting in 86400 seconds..
Fixes: 79861919b889 ("tcp: fix TCP_REPAIR xmit queue setup")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Cc: Andrey Vagin <avagin@openvz.org>
Cc: Soheil Hassas Yeganeh <soheil@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-23 18:43:25 -08:00
..
2019-01-11 18:05:41 -08:00
2019-02-11 17:43:17 +01:00
2018-12-15 13:23:02 -08:00
2018-09-26 20:30:55 -07:00
2018-10-12 09:47:39 -07:00
2018-09-17 19:37:46 -07:00
2018-10-02 22:28:17 -07:00
2019-01-04 12:47:06 -08:00
2018-12-19 11:21:37 -08:00
2019-01-28 11:20:58 +01:00
2019-01-15 13:33:44 -08:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-12-30 12:57:04 -08:00
2018-11-06 15:00:45 -08:00
2019-01-15 13:33:44 -08:00
2019-01-15 22:01:31 -08:00
2019-01-22 11:52:17 -08:00
2018-07-03 10:29:26 +09:00
2018-11-08 17:13:08 -08:00
2018-10-29 20:26:06 -07:00
2018-11-07 22:31:07 -08:00
2019-02-12 13:35:57 -05:00
2018-11-08 18:40:30 -08:00
2018-12-24 15:27:56 -08:00
2018-04-07 22:32:32 -04:00
2019-02-08 21:50:15 -08:00
2018-12-20 11:53:36 -08:00
2018-12-15 11:50:40 -08:00
2019-02-21 16:02:10 -08:00
2019-01-18 14:05:14 -08:00
2017-11-02 11:10:55 +01:00
2018-12-19 11:21:37 -08:00
2019-01-10 09:27:20 -05:00
2018-12-24 16:19:56 -08:00
2019-01-24 17:54:12 -08:00
2019-01-09 14:00:37 +01:00
2018-09-26 20:30:55 -07:00
2018-12-20 11:53:36 -08:00
2018-11-08 17:13:08 -08:00
2018-10-19 11:03:06 -07:00
2018-12-20 11:53:36 -08:00
2018-07-24 14:10:43 -07:00
2018-10-15 12:23:19 -07:00
2018-11-06 15:00:45 -08:00
2018-07-16 17:51:48 +02:00
2018-05-23 15:14:12 -04:00
2018-10-02 22:28:17 -07:00
2018-11-30 13:26:54 -08:00
2018-11-08 17:13:08 -08:00
2018-12-20 11:53:36 -08:00
2019-02-08 21:50:15 -08:00
2018-09-21 19:37:59 -07:00
2018-11-07 16:12:38 -08:00
2018-11-08 20:46:17 -08:00
2018-12-20 23:47:09 +01:00
2018-10-15 22:56:42 -07:00
2017-11-15 14:09:52 +09:00
2018-10-10 22:26:00 -07:00
2018-10-10 22:26:00 -07:00
2017-12-20 14:00:25 -05:00
2017-12-13 15:51:12 -05:00
2018-02-28 12:03:47 -05:00
2018-11-30 13:26:53 -08:00
2019-02-17 15:46:58 -08:00
2018-12-28 12:11:47 -08:00
2018-08-31 23:10:35 -07:00
2018-01-31 10:26:30 -05:00
2018-12-15 13:23:02 -08:00
2019-02-23 18:43:25 -08:00
2018-09-21 19:37:59 -07:00
2018-09-21 19:37:59 -07:00
2019-01-10 16:55:41 -05:00
2018-10-16 12:38:41 -07:00
2017-09-29 06:07:00 +01:00
2017-11-02 11:10:55 +01:00
2017-08-30 11:20:08 -07:00
2019-02-17 15:46:58 -08:00
2018-11-08 17:13:08 -08:00
2018-10-28 19:27:21 -07:00
2019-01-17 15:01:08 -08:00
2018-12-15 13:23:02 -08:00
2018-12-03 14:15:26 -08:00
2019-02-22 16:05:11 -08:00
2019-01-17 15:01:08 -08:00
2018-09-04 10:26:30 +02:00
2018-09-04 10:26:30 +02:00
2018-03-07 10:54:29 +01:00
2018-03-04 17:49:17 -05:00
2018-03-27 13:18:09 -04:00
2018-11-08 17:13:08 -08:00
2017-11-02 11:10:55 +01:00