im ok with this, but you need sashan@ to ok it too. he's been working up to 
this anyway.

dlg

> On 24 Nov 2022, at 06:18, Vitaliy Makkoveev <m...@openbsd.org> wrote:
> 
> On Wed, Nov 23, 2022 at 02:59:05PM -0500, David Hill wrote:
>> Hello -
>> 
>> I am seeing splasserts on boot (before kern.splassert=2 can be set) with
>> -current.
>> 
>> ....
>> 
>> spdmem0 at iic0 addr 0x50: 8GB DDR3 SDRAM PC3-12800 SO-DIMM
>> isa0 at pcib0
>> isadma0 at isa0
>> vga0 at isa0 port 0x3b0/48 iomem 0xa0000/131072
>> wsdisplay at vga0 not configured
>> pcppi0 at isa0 port 0x61
>> spkr0 at pcppi0
>> vmm0 at mainbus0: VMX/EPT (using slow L1TF mitigation)
>> splassert: pfi_attach_ifgroup: want 2 have 0
>> splassert: pfi_group_addmember: want 2 have 0
>> splassert: pfi_attach_ifgroup: want 2 have 0
>> splassert: pfi_attach_ifgroup: want 2 have 0
>> splassert: pfi_group_addmember: want 2 have 0
>> 
>> 
>> - David
>> 
> 
> The netlock assertion within PF_LOCK() looks wrong. The netlock should
> be taken first, but only if both locks taken.
> 
> Index: sys/net/pfvar_priv.h
> ===================================================================
> RCS file: /cvs/src/sys/net/pfvar_priv.h,v
> retrieving revision 1.21
> diff -u -p -r1.21 pfvar_priv.h
> --- sys/net/pfvar_priv.h      11 Nov 2022 17:12:30 -0000      1.21
> +++ sys/net/pfvar_priv.h      23 Nov 2022 20:14:13 -0000
> @@ -278,7 +278,6 @@ extern struct rwlock      pf_lock;
> extern struct rwlock  pf_state_lock;
> 
> #define PF_LOCK()             do {                    \
> -             NET_ASSERT_LOCKED();                    \
>               rw_enter_write(&pf_lock);               \
>       } while (0)
> 

Reply via email to