Date: Sat, 16 Jun 2012 19:05:38 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r237169 - projects/pf/head/sys/contrib/pf/net Message-ID: <201206161905.q5GJ5ccT060853@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Sat Jun 16 19:05:38 2012 New Revision: 237169 URL: http://svn.freebsd.org/changeset/base/237169 Log: Re-do second part of r236718. The pfsync thread don't obtain any hash locks, but can dereference state keys. Thus, we need to remove state from pfsync queues prior to detaching keys. Modified: projects/pf/head/sys/contrib/pf/net/pf.c Modified: projects/pf/head/sys/contrib/pf/net/pf.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf.c Sat Jun 16 18:56:19 2012 (r237168) +++ projects/pf/head/sys/contrib/pf/net/pf.c Sat Jun 16 19:05:38 2012 (r237169) @@ -1477,12 +1477,12 @@ pf_unlink_state(struct pf_state *s, u_in pf_src_tree_remove_state(s); PF_HASHROW_UNLOCK(ih); - pf_detach_state(s); - refcount_release(&s->refs); - if (pfsync_delete_state_ptr != NULL) pfsync_delete_state_ptr(s); + pf_detach_state(s); + refcount_release(&s->refs); + return (pf_release_state(s)); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206161905.q5GJ5ccT060853>