NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/58470: modunload if_wg crashes if no wgN interfaces have been created



>Number:         58470
>Category:       kern
>Synopsis:       modunload if_wg crashes if no wgN interfaces have been created
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 26 16:10:00 +0000 2024
>Originator:     campbell+netbsd%mumble.net@localhost
>Release:        current, 10
>Organization:
The NetWG Foundunloaded
>Environment:
>Description:
# modunload if_wg
[ 118370.9606438] panic: Trap: Data Abort (EL1): Translation Fault L2 with write access for 0000000000000000: pc ffffc000005fd838: str x1, [x21]

[ 118370.9606438] cpu0: Begin traceback...
[ 118370.9606438] trace fp ffffc000bf207710
[ 118370.9716538] fp ffffc000bf207740 vpanic() at ffffc000005f2970 netbsd:vpanic+0x1a0
[ 118370.9716538] fp ffffc000bf2077a0 panic() at ffffc000005f2a54 netbsd:panic+0x44
[ 118370.9818178] fp ffffc000bf207830 data_abort_handler() at ffffc000000b51e8 netbsd:data_abort_handler+0x718
[ 118370.9818178] tf ffffc000bf2078e0 el1_trap() at ffffc000000b6784 netbsd:el1_vectors+0x784
[ 118370.9936878] ---- Data Abort (EL1): trapframe 0xffffc000bf2078e0 (304 bytes) ----
[ 118370.9936878]     pc=ffffc000005fd838,   spsr=0000000020000005
[ 118370.9936878]    esr=0000000096000046,    far=0000000000000000
[ 118371.0029099]     x0=0000000000000002,     x1=ffffc000005fd5c0
[ 118371.0029099]     x2=ffffc00000bfdd00,     x3=0000000000000001
[ 118371.0029099]     x4=0000000000000000,     x5=0000000000000000
[ 118371.0029099]     x6=0000000000000007,     x7=0000000000000000
[ 118371.0029099]     x8=ffffc00000f49000,     x9=000000000000000f
[ 118371.0029099]    x10=ffff00007fbbf000,    x11=0000000000000000
[ 118371.0029099]    x12=0000000000000000,    x13=0000000000000000
[ 118371.0143349]    x14=0000000000000001,    x15=0000000000000000
[ 118371.0143349]    x16=ffffc00000004560,    x17=0000fad5e1e1dc84
[ 118371.0143349]    x18=0000000000000000,    x19=ffffc00001a00000
[ 118371.0143349]    x20=0000000000000000,    x21=0000000000000000
[ 118371.0143349]    x22=ffffc00001215f80,    x23=ffffc0000121a000
[ 118371.0244689]    x24=ffffc00000f44000,    x25=000000000000002f
[ 118371.0244689]    x26=0000000000000037,    x27=ffffc00000f54160
[ 118371.0244689]    x28=ffffc000005fd000, fp=x29=ffffc000bf207c10
[ 118371.0244689] lr=x30=ffffc000005fd800,     sp=ffffc000bf207c10
[ 118371.0244689] ------------------------------------------------
[ 118371.0244689] fp ffffc000bf207c10 workqueue_destroy() at ffffc000005fd838 netbsd:workqueue_destroy+0x64
[ 118371.0361287] fp ffffc000bf207c90 if_wg_modcmd() at ffffc00001a0b4d8 if_wg:if_wg_modcmd+0x58
[ 118371.0456108] fp ffffc000bf207cd0 module_do_unload() at ffffc000005983a4 netbsd:module_do_unload+0xc4
[ 118371.0456108] fp ffffc000bf207d30 module_unload() at ffffc0000059a220 netbsd:module_unload+0x40
[ 118371.0563616] fp ffffc000bf207d50 sys_modctl() at ffffc00000607578 netbsd:sys_modctl+0x318
[ 118371.0666035] fp ffffc000bf207e20 syscall() at ffffc000000b32fc netbsd:syscall+0x12c
[ 118371.0768117] tf ffffc000bf207ed0 el0_trap() at ffffc000000b67f0 netbsd:el1_trap_exit+0x68
[ 118371.0880649] ---- SVC Instruction Execution: trapframe 0xffffc000bf207ed0 (304 bytes) ----
[ 118371.0880649]     pc=0000fad5e1e1c838,   spsr=0000000020000000
[ 118371.0880649]    esr=00000000560000f6,    far=0000fad5e1f28ba0
[ 118371.0880649]     x0=0000000000000001,     x1=0000ffffffa0a30a
[ 118371.0880649]     x2=0000ffffffa09dc0,     x3=0000000000000001
[ 118371.0977353]     x4=0000fad5e21f58c8,     x5=0000000000000000
[ 118371.0977353]     x6=0000000000000000,     x7=0000fad5e21e2e63
[ 118371.0977353]     x8=0000000000000000,     x9=0000000000000000
[ 118371.0977353]    x10=0000000000000000,    x11=0000000000000000
[ 118371.0977353]    x12=0000000000000000,    x13=0000000000000000
[ 118371.0977353]    x14=0000000000000001,    x15=0000000000000000
[ 118371.0977353]    x16=0000fad5e1fd19d0,    x17=0000fad5e1e1dc84
[ 118371.0977353]    x18=0000000000000000,    x19=0000ffffffa09da8
[ 118371.1103645]    x20=0000000000000001,    x21=0000fad5e1e1c834
[ 118371.1103645]    x22=0000000000000002,    x23=0000000008aefda8
[ 118371.1103645]    x24=0000ffffffa0afe0,    x25=0000ffffef930000
[ 118371.1103645]    x26=0000000000000000,    x27=0000000000000000
[ 118371.1103645]    x28=0000000000000000, fp=x29=0000ffffffa09d60
[ 118371.1103645] lr=x30=0000000008ad0cd0,     sp=0000ffffffa09d30
[ 118371.1199806] ------------------------------------------------
[ 118371.1199806] cpu0: End traceback...
Stopped in pid 3628.3628 (modunload) at netbsd:cpu_Debugger+0xc:        ldp     x29, x30, [sp],#16

>How-To-Repeat:
# modload if_wg
# modunload if_wg

with no intervening `if wgN create'
>Fix:
Destroy workqueue and pktqueue conditionally, since they are lazily created when the first wgN interface is created, owing to annoying module initialization order issues.



Home | Main Index | Thread Index | Old Index