On 25.11.2022. 10:12, Alexandr Nedvedicky wrote:
> Looks like we need to synchronize pfsync destroy with timer thread.
>
> thanks for great testing.
>
> regards
> sashan
>
> --------8<---------------8<---------------8<------------------8<--------
> diff --git a/sys/net/if_pfsync.c b/sys/net/if_pfsync.c
> index f69790ee98d..24963a546de 100644
> --- a/sys/net/if_pfsync.c
> +++ b/sys/net/if_pfsync.c
> @@ -1865,8 +1865,6 @@ pfsync_undefer(struct pfsync_deferral *pd, int drop)
> {
> struct pfsync_softc *sc = pfsyncif;
>
> - NET_ASSERT_LOCKED();
> -
> if (sc == NULL)
> return;
>
> @@ -2128,8 +2126,6 @@ pfsync_delete_state(struct pf_state *st)
> {
> struct pfsync_softc *sc = pfsyncif;
>
> - NET_ASSERT_LOCKED();
> -
> if (sc == NULL || !ISSET(sc->sc_if.if_flags, IFF_RUNNING))
> return;
>
> @@ -2188,8 +2184,6 @@ pfsync_clear_states(u_int32_t creatorid, const char
> *ifname)
> struct pfsync_clr clr;
> } __packed r;
>
> - NET_ASSERT_LOCKED();
> -
> if (sc == NULL || !ISSET(sc->sc_if.if_flags, IFF_RUNNING))
> return;
>
Hi,
yes, this diff helps and I can't panic box in the way i can without it.
I will play with this diff and try to trigger more panics ...
Thank you guys for work on unlocking pf and pfsync ...