Kernel panic on armv7 when PF is enabled
Date: Sun, 01 May 2022 03:13:43 UTC
After git bisecting the panic started since this commit. commit 78bc3d5e1712bc1649aa5574d2b8d153f9665113 Author: Kristof Provost < kp@FreeBSD.org > Date: Mon Feb 14 20:09:54 2022 +0100 vlan: allow net.link.vlan.mtag_pcp to be set per vnet The primary reason for this change is to facilitate testing. MFC after: 1 week sys/net/if_ethersubr.c | 9 +++++---- sys/net/if_vlan.c | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) The armv7 board boots from a NFS root, it can boot without any problem if PF is disabled. Any helps? add host ::1: gateway lo0 fib 0: route already in table add net fe80::: gateway ::1 add net ff02::: gateway ::1 add net ::ffff:0.0.0.0: gateway ::1 add net ::0.0.0.0: gateway ::1 Enabling pf. Kernel page fault with the following non-sleepable locks held: shared rm pf rulesets (pf rulesets) r = 0 (0xe3099430) locked @ /usr/src/sys/netpfil/pf/pf.c:6493 exclusive rw tcpinp (tcpinp) r = 0 (0xdb748d88) locked @ /usr/src/sys/netinet/tcp_usrreq.c:1008 stack backtrace: #0 0xc0355cac at witness_debugger+0x7c #1 0xc0356ef0 at witness_warn+0x3fc #2 0xc05ec048 at abort_handler+0x1d8 #3 0xc05cb5ac at exception_exit+0 #4 0xe3083c10 at pf_syncookie_validate+0x60 #5 0xe30496a8 at pf_test+0x518 #6 0xe306d768 at pf_check_out+0x30 #7 0xc0415b44 at pfil_run_hooks+0xbc #8 0xc0445cfc at ip_output+0xce8 #9 0xc045bc9c at tcp_default_output+0x20ac #10 0xc0471eb4 at tcp_usr_send+0x1ac #11 0xc0389464 at sosend_generic+0x490 #12 0xc0389790 at sosend+0x64 #13 0xc0502888 at clnt_vc_call+0x560 #14 0xc05009d8 at clnt_reconnect_call+0x170 #15 0xc01e7b14 at newnfs_request+0xb20 #16 0xc0230218 at nfscl_request+0x60 #17 0xc020d9bc at nfsrpc_getattr+0xb0 Fatal kernel mode data abort: 'Alignment Fault' on read trapframe: 0xdf1f1c90 FSR=00000001, FAR=d7840264, spsr=40000013 r0 =6a228eda, r1 =dac0d785, r2 =d7840264, r3 =db5527c0 r4 =df1f1e00, r5 =dac0d75f, r6 =00000018, r7 =d9422c00 r8 =c093e5e4, r9 =00000001, r10=df1f1f5c, r11=df1f1d38 r12=e3098dd0, ssp=df1f1d20, slr=e3083bdc, pc =e3083c10 panic: Fatal abort cpuid = 1 time = 1651366089 KDB: stack backtrace: db_trace_self() at db_trace_self pc = 0xc05c8c00 lr = 0xc007ac8c (db_trace_self_wrapper+0x30) sp = 0xdf1f1a68 fp = 0xdf1f1b80 db_trace_self_wrapper() at db_trace_self_wrapper+0x30 pc = 0xc007ac8c lr = 0xc02e289c (vpanic+0x170) sp = 0xdf1f1b88 fp = 0xdf1f1ba8 r4 = 0x00000100 r5 = 0x00000000 r6 = 0xc0780529 r7 = 0xc090ea10 vpanic() at vpanic+0x170 pc = 0xc02e289c lr = 0xc02e264c (doadump) sp = 0xdf1f1bb0 fp = 0xdf1f1bb4 r4 = 0xdf1f1c90 r5 = 0x00000013 r6 = 0xd7840264 r7 = 0x00000001 r8 = 0x00000001 r9 = 0xdb5527c0 r10 = 0xd7840264 doadump() at doadump pc = 0xc02e264c lr = 0xc05ec698 (abort_align) sp = 0xdf1f1bbc fp = 0xdf1f1be8 r4 = 0xd7840264 r5 = 0xdf1f1bb4 r6 = 0xc02e264c r10 = 0xdf1f1bbc abort_align() at abort_align pc = 0xc05ec698 lr = 0xc05ec198 (abort_handler+0x328) sp = 0xdf1f1bf0 fp = 0xdf1f1c88 r4 = 0x00000013 r5 = 0xd7840264 abort_handler() at abort_handler+0x328 pc = 0xc05ec198 lr = 0xc05cb5ac (exception_exit) sp = 0xdf1f1c90 fp = 0xdf1f1d38 r4 = 0xdf1f1e00 r5 = 0xdac0d75f r6 = 0x00000018 r7 = 0xd9422c00 r8 = 0xc093e5e4 r9 = 0x00000001 r10 = 0xdf1f1f5c exception_exit() at exception_exit pc = 0xc05cb5ac lr = 0xe3083bdc (pf_syncookie_validate+0x2c) sp = 0xdf1f1d20 fp = 0xdf1f1d38 r0 = 0x6a228eda r1 = 0xdac0d785 r2 = 0xd7840264 r3 = 0xdb5527c0 r4 = 0xdf1f1e00 r5 = 0xdac0d75f r6 = 0x00000018 r7 = 0xd9422c00 r8 = 0xc093e5e4 r9 = 0x00000001 r10 = 0xdf1f1f5c r12 = 0xe3098dd0 pf_syncookie_validate() at pf_syncookie_validate+0x60 pc = 0xe3083c10 lr = 0xe30496a8 (pf_test+0x518) sp = 0xdf1f1d40 fp = 0xdf1f1ea8 r4 = 0x00020000 r5 = 0xdb4a6100 r6 = 0x00000018 r7 = 0xd9422c00 r8 = 0x00000002 r9 = 0x00000001 pf_test() at pf_test+0x518 pc = 0xe30496a8 lr = 0xe306d768 (pf_check_out+0x30) sp = 0xdf1f1eb0 fp = 0xdf1f1ec0 r4 = 0xdf1f1f5c r5 = 0xe306d738 r6 = 0xdb6ba660 r7 = 0x00000000 r8 = 0xd9422c00 r9 = 0xdb748d80 r10 = 0xfff70000 pf_check_out() at pf_check_out+0x30 pc = 0xe306d768 lr = 0xc0415b44 (pfil_run_hooks+0xbc) sp = 0xdf1f1ec8 fp = 0xdf1f1ef0 r4 = 0x00020000 r5 = 0xe306d738 pfil_run_hooks() at pfil_run_hooks+0xbc pc = 0xc0415b44 lr = 0xc0445cfc (ip_output+0xce8) sp = 0xdf1f1ef8 fp = 0xdf1f1fa8 r4 = 0x0000010a r5 = 0x00000a0a r6 = 0xdb4a6158 r7 = 0xc0946908 r8 = 0xdb5bec00 r9 = 0xd9422c00 r10 = 0x000005dc ip_output() at ip_output+0xce8 pc = 0xc0445cfc lr = 0xc045bc9c (tcp_default_output+0x20ac) sp = 0xdf1f1fb0 fp = 0xdf1f20e0 r4 = 0x00000001 r5 = 0x00000000 r6 = 0x00000034 r7 = 0xdb746000 r8 = 0xdb4a616c r9 = 0xdb4a6100 r10 = 0xdb782000 tcp_default_output() at tcp_default_output+0x20ac pc = 0xc045bc9c lr = 0xc0471eb4 (tcp_usr_send+0x1ac) sp = 0xdf1f20e8 fp = 0xdf1f2160 r4 = 0xc0af955c r5 = 0xdb782000 r6 = 0x00000000 r7 = 0xdb746000 r8 = 0x00000000 r9 = 0xdb748d80 r10 = 0x00000000 tcp_usr_send() at tcp_usr_send+0x1ac pc = 0xc0471eb4 lr = 0xc0389464 (sosend_generic+0x490) sp = 0xdf1f2168 fp = 0xdf1f21d0 r4 = 0xc0471d08 r5 = 0x00044000 r6 = 0xdb746000 r7 = 0xdb5527c0 r8 = 0x00000000 r9 = 0xdb7461b8 r10 = 0xdb4b2900 sosend_generic() at sosend_generic+0x490 pc = 0xc0389464 lr = 0xc0389790 (sosend+0x64) sp = 0xdf1f21d8 fp = 0xdf1f2200 r4 = 0x00000000 r5 = 0xc0388fd4 r6 = 0xdb5527c0 r7 = 0x00000000 r8 = 0x5e4a6f28 r9 = 0x00000100 r10 = 0xc72fc490 sosend() at sosend+0x64 pc = 0xc0389790 lr = 0xc0502888 (clnt_vc_call+0x560) sp = 0xdf1f2208 fp = 0xdf1f22e8 r4 = 0xc076e132 r5 = 0xdf1f22ac r6 = 0xc72fc5a0 r7 = 0xc04fd348 r8 = 0xc72fc480 r10 = 0xc72fc490 clnt_vc_call() at clnt_vc_call+0x560 pc = 0xc0502888 lr = 0xc05009d8 (clnt_reconnect_call+0x170) sp = 0xdf1f22f0 fp = 0xdf1f2378 r4 = 0xc0502328 r5 = 0xc0768137 r6 = 0xdb65bc40 r7 = 0xc72fc610 r8 = 0xc72fc600 r9 = 0x00000000 r10 = 0xdf1f2438 clnt_reconnect_call() at clnt_reconnect_call+0x170 pc = 0xc05009d8 lr = 0xc01e7b14 (newnfs_request+0xb20) sp = 0xdf1f2380 fp = 0xdf1f24a8 r4 = 0x0000012c r5 = 0xc0500868 r6 = 0x00000000 r7 = 0x00000000 r8 = 0xdf1f2510 r9 = 0xc0726761 r10 = 0x00000000 newnfs_request() at newnfs_request+0xb20 pc = 0xc01e7b14 lr = 0xc0230218 (nfscl_request+0x60) sp = 0xdf1f24b0 fp = 0xdf1f24e8 r4 = 0x00000000 r5 = 0x000186a3 r6 = 0x00000003 r7 = 0x00000001 r8 = 0xdf1f26c8 r9 = 0xc0af955c r10 = 0x00000000 nfscl_request() at nfscl_request+0x60 pc = 0xc0230218 lr = 0xc020d9bc (nfsrpc_getattr+0xb0) sp = 0xdf1f24f0 fp = 0xdf1f2618 r4 = 0x00000000 r5 = 0xdb5afd00 r6 = 0xdb5527c0 r7 = 0xe29d453c nfsrpc_getattr() at nfsrpc_getattr+0xb0 pc = 0xc020d9bc lr = 0xc0223b88 (nfs_getattr+0xc8) sp = 0xdf1f2620 fp = 0xdf1f27b0 r4 = 0x00000000 r5 = 0xe29d453c r6 = 0xe29d6670 r7 = 0x00000000 r8 = 0xdb5527c0 r9 = 0xdf1f2830 r10 = 0xdb5527c0 nfs_getattr() at nfs_getattr+0xc8 pc = 0xc0223b88 lr = 0xc03b9b80 (vop_sigdefer+0x34) sp = 0xdf1f27b8 fp = 0xdf1f27c8 r4 = 0xdf1f2998 r5 = 0xffffffff r6 = 0xc0223ac0 r7 = 0x00000000 r8 = 0xdf1f2d60 r9 = 0xdb795800 vop_sigdefer() at vop_sigdefer+0x34 pc = 0xc03b9b80 lr = 0xc0221a00 (nfs_lookup+0x344) sp = 0xdf1f27d0 fp = 0xdf1f2aa8 r4 = 0xe29d6670 r5 = 0xdf1f2830 r6 = 0xe29d6660 r10 = 0xdb5527c0 nfs_lookup() at nfs_lookup+0x344 pc = 0xc0221a00 lr = 0xc03b9b80 (vop_sigdefer+0x34) sp = 0xdf1f2ab0 fp = 0xdf1f2ac0 r4 = 0xdf1f2ae4 r5 = 0x00000000 r6 = 0xc02216bc r7 = 0x00080000 r8 = 0xdf1f2d60 r9 = 0x00000002 r10 = 0x00000000 vop_sigdefer() at vop_sigdefer+0x34 pc = 0xc03b9b80 lr = 0xc03be55c (lookup+0x46c) sp = 0xdf1f2ac8 fp = 0xdf1f2b10 r4 = 0xdf1f2d00 r5 = 0xdb9e4ea8 r6 = 0xdf1f2d58 r10 = 0x00000000 lookup() at lookup+0x46c pc = 0xc03be55c lr = 0xc03bd450 (namei+0x3cc) sp = 0xdf1f2b18 fp = 0xdf1f2bb8 r4 = 0xdf1f2d00 r5 = 0xfffff81c r6 = 0x00000000 r7 = 0xdb3bcc90 r8 = 0xc0b5a48c r9 = 0xdb5527c0 r10 = 0xdf1f2d60 namei() at namei+0x3cc pc = 0xc03bd450 lr = 0xc03e4e98 (vn_open_cred+0x45c) sp = 0xdf1f2bc0 fp = 0xdf1f2cc8 r4 = 0x00000001 r5 = 0x00000000 r6 = 0x00100001 r7 = 0xdf1f2d60 r8 = 0xffffff9c r9 = 0xdf1f2d00 r10 = 0xdf1f2d58 vn_open_cred() at vn_open_cred+0x45c pc = 0xc03e4e98 lr = 0xc03e4a34 (vn_open+0x24) sp = 0xdf1f2cd0 fp = 0xdf1f2cd8 r4 = 0xdb5527c0 r5 = 0xdf1f2d00 r6 = 0x00000000 r7 = 0xdf1f2d00 r8 = 0xffffff9c r9 = 0x00000012 r10 = 0x20076b04 vn_open() at vn_open+0x24 pc = 0xc03e4a34 lr = 0xc03db428 (kern_openat+0x254) sp = 0xdf1f2ce0 fp = 0xdf1f2db8 kern_openat() at kern_openat+0x254 pc = 0xc03db428 lr = 0xc03db6b0 (sys_openat+0x2c) sp = 0xdf1f2dc0 fp = 0xdf1f2dc8 r4 = 0xdb5527c0 r5 = 0x00000001 r6 = 0xc08d99cc r7 = 0x00000000 r8 = 0x00000000 r9 = 0xdb552a68 r10 = 0xdba29c80 sys_openat() at sys_openat+0x2c pc = 0xc03db6b0 lr = 0xc05eb9b4 (swi_handler+0x15c) sp = 0xdf1f2dd0 fp = 0xdf1f2e40 swi_handler() at swi_handler+0x15c pc = 0xc05eb9b4 lr = 0xc05cb53c (swi_exit) sp = 0xdf1f2e48 fp = 0xbfbfe720 r4 = 0x2027d2f4 r5 = 0x00065c40 r6 = 0x20076ac8 r7 = 0x000001f3 r8 = 0x00000001 r9 = 0x00065c40 r10 = 0x00064d88 swi_exit() at swi_exit pc = 0xc05cb53c lr = 0xc05cb53c (swi_exit) sp = 0xdf1f2e48 fp = 0xbfbfe720 KDB: enter: panic [ thread pid 579 tid 100122 ] Stopped at kdb_enter+0x58: ldrb r15, [r15, r15, ror r15]!