Download raw body.
Use `sb_mtx' instead of `inp_mtx' in receive path for inet sockets
Use `sb_mtx' instead of `inp_mtx' in receive path for inet sockets
Use `sb_mtx' instead of `inp_mtx' in receive path for inet sockets
On Mon, Feb 12, 2024 at 03:25:14AM +0300, Vitaliy Makkoveev wrote: > This time only sbappendaddr() requires to hold sb_mtx for some > cases, so it uses sbmtxassertlocked() instead of soassertlocked(). I looks like regress already found something. This was a test with your diff applied. [-- MARK -- Sun Feb 11 21:30:00 2024] splassert: soassertlocked: want 0 have 1 Starting stack trace... soassertlocked(0) at soassertlocked+0xc7 soassertlocked(d7e26a68) at soassertlocked+0xc7 sbappendaddr(d7e26a68,d7e26adc,f58028c4,d8c73900,0) at sbappendaddr+0x21 divert_packet(d8c73900,1,9a02) at divert_packet+0x239 pf_test(2,1,d835c830,f5802a70) at pf_test+0x873 ip_input_if(f5802a70,f5802a5c,f5802a88,0,d835c830) at ip_input_if+0xab ipv4_input(d835c830,d8c73900) at ipv4_input+0x3a ether_input(d835c830,d8c73900) at ether_input+0x2c4 if_input_process(d835c830,f5802ac4) at if_input_process+0x4d ifiq_process(d835cb00) at ifiq_process+0x66 taskq_thread(d82e7000) at taskq_thread+0x84 End of stack trace. splassert: soassertlocked: want 0 have 1 Starting stack trace... soassertlocked(0) at soassertlocked+0xc7 soassertlocked(d7d0f43c) at soassertlocked+0xc7 sbappendaddr(d7d0f43c,d7d0f4b0,f580282c,d8db4600,0) at sbappendaddr+0x21 divert6_packet(d8db4600,1,9a02) at divert6_packet+0x250 pf_test(18,1,d835c830,f5802a70) at pf_test+0x929 ip6_input_if(f5802a70,f5802a5c,29,0,d835c830) at ip6_input_if+0x1bd ipv6_input(d835c830,d8db4600) at ipv6_input+0x2b ether_input(d835c830,d8db4600) at ether_input+0x2c4 if_input_process(d835c830,f5802ac4) at if_input_process+0x4d ifiq_process(d835cb00) at ifiq_process+0x66 taskq_thread(d82e7000) at taskq_thread+0x84 End of stack trace. splassert: soassertlocked: want 0 have 1 Starting stack trace... soassertlocked(0) at soassertlocked+0xc7 soassertlocked(d7e24e44) at soassertlocked+0xc7 sbappendaddr(d7e24e44,d7e24eb8,f59db8a4,d838dc00,0) at sbappendaddr+0x21 divert_packet(d838dc00,2,9a02) at divert_packet+0x239 pf_test(2,2,d835c830,f59dba60) at pf_test+0x873 ip_output(d838dc00,0,d7e2382c,0,0,d7e238b4,0) at ip_output+0x49a udp_output(d7e237e0,d838dc00,0,0) at udp_output+0x37a udp_send(d7e24bb4,d838dc00,0,0) at udp_send+0xbe sosend(d7e24bb4,0,f59dbb6c,d838dc00,0,0) at sosend+0x2d8 sendit(d7e6dd1c,1,f59dbbc0,0,f59dbc38) at sendit+0x2cc sys_sendto(d7e6dd1c,f59dbc40,f59dbc38) at sys_sendto+0x5c syscall(f59dbc80) at syscall+0x55e Xsyscall_untramp() at Xsyscall_untramp+0xa9 end of kernel End of stack trace. splassert: soassertlocked: want 0 have 1 Starting stack trace... soassertlocked(0) at soassertlocked+0xc7 soassertlocked(d7d0fbec) at soassertlocked+0xc7 sbappendaddr(d7d0fbec,d7d0fc60,f59db5d8,d9127d00,0) at sbappendaddr+0x21 divert6_packet(d9127d00,2,9a02) at divert6_packet+0x250 pf_test(18,2,d835c830,f59db7dc) at pf_test+0x929 ip6_output(d9127d00,0,d7e2343c,0,0,d7e234c4) at ip6_output+0xafe udp6_output(d7e233f0,d9127d00,0,0) at udp6_output+0x3fd udp_send(d7d0f43c,d9127d00,0,0) at udp_send+0xbe sosend(d7d0f43c,0,f59db94c,d9127d00,0,0) at sosend+0x2d8 sendit(d7e6dd1c,1,f59db9a0,0,f59dba18) at sendit+0x2cc sys_sendto(d7e6dd1c,f59dba20,f59dba18) at sys_sendto+0x5c syscall(f59dba60) at syscall+0x55e Xsyscall_untramp() at Xsyscall_untramp+0xa9 end of kernel End of stack trace. [-- MARK -- Sun Feb 11 21:35:00 2024]
Use `sb_mtx' instead of `inp_mtx' in receive path for inet sockets
Use `sb_mtx' instead of `inp_mtx' in receive path for inet sockets
Use `sb_mtx' instead of `inp_mtx' in receive path for inet sockets