__nf_register_net_hook jump label splat

4 messages, 2 authors, 2018-10-01 · open the first message on its own page

__nf_register_net_hook jump label splat

From: Borislav Petkov <bp@alien8.de>
Date: 2018-09-29 23:04:13

Hi people,

this is something new I'm triggering with rc5 + tip/master while rc4 +
tip/master is fine. Any ideas?

If I had to guess, it looks like this thing:

#ifdef HAVE_JUMP_LABEL
        static_key_slow_inc(&nf_hooks_needed[pf][reg->hooknum]);
#endif



[   24.472503] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   24.497078] Bridge firewalling registered
[   24.507989] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
[   24.517700] PGD 80284ff51067 P4D 80284ff51067 PUD 80284ff52067 PMD 0 
[   24.525895] Oops: 0000 [#1] PREEMPT SMP NOPTI
[   24.531949] CPU: 121 PID: 4848 Comm: wickedd Not tainted 4.19.0-rc5+ #1
[   24.549787] RIP: 0010:jump_label_update+0xa4/0xd0
[   24.556049] Code: 73 08 48 85 f6 74 31 48 8b 43 10 48 c7 c2 60 01 f0 81 48 85 c0 74 11 8b 90 b8 02 00 00 48 c1 e2 04 48 03 90 b0 02 00 00 31 c9 <83> 38 01 48 89 ef 0f 94 c1 e8 8e fd ff ff 48 8b 1b 48 85 db 75 be
[   24.578102] RSP: 0018:ffffc9000f783c70 EFLAGS: 00010246
[   24.584946] RAX: 0000000000000000 RBX: ffff884045145880 RCX: 0000000000000000
[   24.593679] RDX: ffffffff81f00160 RSI: ffffffff81efff00 RDI: ffffffff8204e220
[   24.601575] usb 3-2.2: device not accepting address 8, error -71
[   24.602418] RBP: ffffffff827ef800 R08: 0000000000000002 R09: 0000000000000000
[   24.602424] R10: ffff88407ea62f48 R11: 0000000000000000 R12: ffff884033dfcdc0
[   24.610307] usb 3-2-port2: unable to enumerate USB device
[   24.619267] R13: ffffffff821078d0 R14: 0000000000000000 R15: 0000000000000000
[   24.619271] FS:  00007f30357a4700(0000) GS:ffff88407ea40000(0000) knlGS:0000000000000000
[   24.619274] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   24.619276] CR2: 0000000000000000 CR3: 0000802853e20000 CR4: 00000000003406e0
[   24.619277] Call Trace:
[   24.619289]  static_key_slow_inc_cpuslocked+0x73/0xa0
[   24.682426]  static_key_slow_inc+0x16/0x20
[   24.682435]  __nf_register_net_hook+0x98/0x100
[   24.682440]  nf_register_net_hook+0x23/0x80
[   24.682445]  nf_register_net_hooks+0x3c/0x90
[   24.682452]  brnf_device_event+0x68/0xb0 [br_netfilter]
[   24.682461]  notifier_call_chain+0x47/0x70
[   24.682470]  register_netdevice+0x352/0x4c0
[   24.682475]  register_netdev+0x1f/0x30
[   24.682485]  br_add_bridge+0x4b/0x70 [bridge]
[   24.682500]  br_ioctl_deviceless_stub+0x112/0x250 [bridge]
[   24.705565] usb 3-2.3: new high-speed USB device number 9 using xhci_hcd
[   24.707752]  sock_ioctl+0x250/0x320
[   24.761176]  do_vfs_ioctl+0x92/0x5e0
[   24.761182]  ? __sys_recvmsg+0x45/0x80
[   24.761186]  ksys_ioctl+0x60/0x90
[   24.761191]  __x64_sys_ioctl+0x16/0x20
[   24.761198]  do_syscall_64+0x4f/0xe0
[   24.761206]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[   24.761212] RIP: 0033:0x7f3034f62417
[   24.761216] Code: 00 00 00 48 8b 05 71 8a 2b 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 41 8a 2b 00 f7 d8 64 89 01 48
[   24.761224] RSP: 002b:00007ffecdc9ca08 EFLAGS: 00000246
[   24.793641] usb 3-2.3: device descriptor read/64, error -71
[   24.796390]  ORIG_RAX: 0000000000000010
[   24.796397] RAX: ffffffffffffffda RBX: 0000000001236ff0 RCX: 00007f3034f62417
[   24.854147] RDX: 0000000001236ff0 RSI: 00000000000089a0 RDI: 0000000000000008
[   24.854149] RBP: 00007ffecdc9ca48 R08: 0000000000000000 R09: 0000000001297650
[   24.854150] R10: 000000006829aa3c R11: 0000000000000246 R12: 00000000012385f0
[   24.854152] R13: 000000000129a840 R14: 0000000001205700 R15: 0000000001208fc0
[   24.854156] Modules linked in: br_netfilter bridge stp llc iscsi_ibft iscsi_boot_sysfs msr ipmi_ssif nls_iso8859_1 nls_cp437 joydev amd64_edac_mod vfat edac_mce_amd fat kvm_amd hid_generic usbhid kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc e1000e aesni_intel aes_x86_64 crypto_simd cryptd ptp glue_helper pps_core sp5100_tco pcspkr ipmi_si ccp ipmi_devintf i2c_piix4 k10temp ipmi_msghandler pcc_cpufreq pinctrl_amd acpi_cpufreq button btrfs libcrc32c xor zstd_decompress zstd_compress xxhash ast i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops xhci_pci ttm xhci_hcd raid6_pq crc32c_intel drm usbcore dm_mirror dm_region_hash dm_log sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua efivarfs
[   24.890644] CR2: 0000000000000000
[   24.973524] ---[ end trace e5c10bd51bf12555 ]---
[   24.973529] RIP: 0010:jump_label_update+0xa4/0xd0
[   24.973532] Code: 73 08 48 85 f6 74 31 48 8b 43 10 48 c7 c2 60 01 f0 81 48 85 c0 74 11 8b 90 b8 02 00 00 48 c1 e2 04 48 03 90 b0 02 00 00 31 c9 <83> 38 01 48 89 ef 0f 94 c1 e8 8e fd ff ff 48 8b 1b 48 85 db 75 be
[   24.973534] RSP: 0018:ffffc9000f783c70 EFLAGS: 00010246
[   24.973536] RAX: 0000000000000000 RBX: ffff884045145880 RCX: 0000000000000000
[   24.973538] RDX: ffffffff81f00160 RSI: ffffffff81efff00 RDI: ffffffff8204e220
[   24.973539] RBP: ffffffff827ef800 R08: 0000000000000002 R09: 0000000000000000
[   24.973541] R10: ffff88407ea62f48 R11: 0000000000000000 R12: ffff884033dfcdc0
[   24.973542] R13: ffffffff821078d0 R14: 0000000000000000 R15: 0000000000000000
[   24.973545] FS:  00007f30357a4700(0000) GS:ffff88407ea40000(0000) knlGS:0000000000000000
[   24.973546] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   24.973548] CR2: 0000000000000000 CR3: 0000802853e20000 CR4: 00000000003406e0

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: __nf_register_net_hook jump label splat

From: Florian Westphal <fw@strlen.de>
Date: 2018-09-30 17:39:46

Borislav Petkov [off-list ref] wrote:
Hi people,

this is something new I'm triggering with rc5 + tip/master while rc4 +
tip/master is fine. Any ideas?
No clue.  I don't see any netfilter changes between rc4 & rc5.
I just tried to set up a bridge on rc5 with call-iptables=1
and I see no such splat.
If I had to guess, it looks like this thing:

#ifdef HAVE_JUMP_LABEL
        static_key_slow_inc(&nf_hooks_needed[pf][reg->hooknum]);
#endif
Strange, these static keys have been there for years.
Any chance you could send your .config or bisect this?

Thanks.

Re: __nf_register_net_hook jump label splat

From: Borislav Petkov <bp@alien8.de>
Date: 2018-09-30 18:31:35

On Sun, Sep 30, 2018 at 07:39:30PM +0200, Florian Westphal wrote:
Strange, these static keys have been there for years.
Any chance you could send your .config or bisect this?
.config attached. Lemme try to bisect it, see how far I'll get.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Re: __nf_register_net_hook jump label splat

From: Borislav Petkov <bp@alien8.de>
Date: 2018-10-01 20:57:57

On Sun, Sep 30, 2018 at 08:31:19PM +0200, Borislav Petkov wrote:
On Sun, Sep 30, 2018 at 07:39:30PM +0200, Florian Westphal wrote:
quoted
Strange, these static keys have been there for years.
Any chance you could send your .config or bisect this?
.config attached. Lemme try to bisect it, see how far I'll get.
Hmm, so I can't reproduce anymore. Maybe it was something I fat-fingered
here. In any case, rc6 + tip/master boots fine and I'll watch out in the
next days whether it really is gone.

Thx.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help