From owner-svn-src-projects@FreeBSD.ORG Sat Jun 16 19:05:39 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0724B106564A; Sat, 16 Jun 2012 19:05:39 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E640B8FC08; Sat, 16 Jun 2012 19:05:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q5GJ5cN4060855; Sat, 16 Jun 2012 19:05:38 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q5GJ5ccT060853; Sat, 16 Jun 2012 19:05:38 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201206161905.q5GJ5ccT060853@svn.freebsd.org> From: Gleb Smirnoff Date: Sat, 16 Jun 2012 19:05:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r237169 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Jun 2012 19:05:39 -0000 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)); }