From nobody@FreeBSD.org  Tue Nov 29 13:22:12 2011
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 81F13106564A
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 29 Nov 2011 13:22:12 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 713738FC0A
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 29 Nov 2011 13:22:12 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id pATDMB54032760
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 29 Nov 2011 13:22:11 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id pATDMB4g032741;
	Tue, 29 Nov 2011 13:22:11 GMT
	(envelope-from nobody)
Message-Id: <201111291322.pATDMB4g032741@red.freebsd.org>
Date: Tue, 29 Nov 2011 13:22:11 GMT
From: Matthieu Kraus <matthieu.kraus@s2008.tu-chemnitz.de>
To: freebsd-gnats-submit@FreeBSD.org
Subject: pfsync_defer return ignored with __FreeBSD__
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         162947
>Category:       kern
>Synopsis:       [pf] [patch] pfsync_defer return ignored with __FreeBSD__
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    glebius
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 29 13:30:12 UTC 2011
>Closed-Date:    Thu Dec 01 15:22:27 UTC 2011
>Last-Modified:  Thu Dec  1 15:30:11 UTC 2011
>Originator:     Matthieu Kraus
>Release:        FreeBSD 10.0-CURRENT arm
>Organization:
>Environment:
FreeBSD dreamplug 10.0-CURRENT FreeBSD 10.0-CURRENT #1 r228127M: Tue Nov 29 12:15:21 UTC 2011 root@dreamplug:/usr/obj/us
r/src/sys/DREAMPLUG arm
>Description:
similiar to the recent issue that caused pf to leak states due to discarding the wanted return of a function, this one seems ver
y similiar and seemed to cause slowly leaking mbufs for me (not sure how to verify it's exactly that)
>How-To-Repeat:
have device pfsync enabled in the kernel config
>Fix:
see attached patch

Patch attached with submission follows:

Index: sys/contrib/pf/net/pf.c
===================================================================
--- sys/contrib/pf/net/pf.c	(revision 228127)
+++ sys/contrib/pf/net/pf.c	(working copy)
@@ -3770,8 +3770,8 @@
 		 * replies through it.
 		 */
 #ifdef __FreeBSD__
-		if (pfsync_defer_ptr != NULL)
-			pfsync_defer_ptr(*sm, m);
+		if (pfsync_defer_ptr != NULL &&
+			pfsync_defer_ptr(*sm, m))
 #else
 		if (pfsync_defer(*sm, m))
 #endif


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-pf 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Tue Nov 29 14:36:01 UTC 2011 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=162947 
State-Changed-From-To: open->patched 
State-Changed-By: glebius 
State-Changed-When: Wed Nov 30 08:48:14 UTC 2011 
State-Changed-Why:  
Fixed in head/. 


Responsible-Changed-From-To: freebsd-pf->glebius 
Responsible-Changed-By: glebius 
Responsible-Changed-When: Wed Nov 30 08:48:14 UTC 2011 
Responsible-Changed-Why:  
Fixed in head/. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=162947 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/162947: commit references a PR
Date: Wed, 30 Nov 2011 08:47:31 +0000 (UTC)

 Author: glebius
 Date: Wed Nov 30 08:47:17 2011
 New Revision: 228150
 URL: http://svn.freebsd.org/changeset/base/228150
 
 Log:
   Return value should be conditional on return value of pfsync_defer_ptr()
   
   PR:		kern/162947
   Submitted by:	Matthieu Kraus <matthieu.kraus s2008.tu-chemnitz.de>
 
 Modified:
   head/sys/contrib/pf/net/pf.c
 
 Modified: head/sys/contrib/pf/net/pf.c
 ==============================================================================
 --- head/sys/contrib/pf/net/pf.c	Wed Nov 30 05:49:17 2011	(r228149)
 +++ head/sys/contrib/pf/net/pf.c	Wed Nov 30 08:47:17 2011	(r228150)
 @@ -3770,8 +3770,8 @@ pf_test_rule(struct pf_rule **rm, struct
  		 * replies through it.
  		 */
  #ifdef __FreeBSD__
 -		if (pfsync_defer_ptr != NULL)
 -			pfsync_defer_ptr(*sm, m);
 +		if (pfsync_defer_ptr != NULL &&
 +			pfsync_defer_ptr(*sm, m))
  #else
  		if (pfsync_defer(*sm, m))
  #endif
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/162947: commit references a PR
Date: Thu,  1 Dec 2011 15:15:22 +0000 (UTC)

 Author: glebius
 Date: Thu Dec  1 15:15:12 2011
 New Revision: 228182
 URL: http://svn.freebsd.org/changeset/base/228182
 
 Log:
   MFhead r228150:
   
     Return value should be conditional on return value of pfsync_defer_ptr()
   
     PR:		kern/162947
     Submitted by:	Matthieu Kraus <matthieu.kraus s2008.tu-chemnitz.de>
   
   Approved by:	re (kib)
 
 Modified:
   stable/9/sys/contrib/pf/net/pf.c
 Directory Properties:
   stable/9/sys/   (props changed)
   stable/9/sys/contrib/pf/   (props changed)
 
 Modified: stable/9/sys/contrib/pf/net/pf.c
 ==============================================================================
 --- stable/9/sys/contrib/pf/net/pf.c	Thu Dec  1 15:01:23 2011	(r228181)
 +++ stable/9/sys/contrib/pf/net/pf.c	Thu Dec  1 15:15:12 2011	(r228182)
 @@ -3770,8 +3770,8 @@ pf_test_rule(struct pf_rule **rm, struct
  		 * replies through it.
  		 */
  #ifdef __FreeBSD__
 -		if (pfsync_defer_ptr != NULL)
 -			pfsync_defer_ptr(*sm, m);
 +		if (pfsync_defer_ptr != NULL &&
 +			pfsync_defer_ptr(*sm, m))
  #else
  		if (pfsync_defer(*sm, m))
  #endif
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: glebius 
State-Changed-When: Thu Dec 1 15:21:54 UTC 2011 
State-Changed-Why:  
Fixed in stable/9, releng/9.0. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=162947 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/162947: commit references a PR
Date: Thu,  1 Dec 2011 15:20:50 +0000 (UTC)

 Author: glebius
 Date: Thu Dec  1 15:20:36 2011
 New Revision: 228183
 URL: http://svn.freebsd.org/changeset/base/228183
 
 Log:
   MFhead r228150:
   
     Return value should be conditional on return value of pfsync_defer_ptr()
   
     PR:		kern/162947
     Submitted by:	Matthieu Kraus <matthieu.kraus s2008.tu-chemnitz.de>
   
   Approved by:	re (kib)
 
 Modified:
   releng/9.0/sys/contrib/pf/net/pf.c
 Directory Properties:
   releng/9.0/sys/   (props changed)
   releng/9.0/sys/contrib/pf/   (props changed)
 
 Modified: releng/9.0/sys/contrib/pf/net/pf.c
 ==============================================================================
 --- releng/9.0/sys/contrib/pf/net/pf.c	Thu Dec  1 15:15:12 2011	(r228182)
 +++ releng/9.0/sys/contrib/pf/net/pf.c	Thu Dec  1 15:20:36 2011	(r228183)
 @@ -3770,8 +3770,8 @@ pf_test_rule(struct pf_rule **rm, struct
  		 * replies through it.
  		 */
  #ifdef __FreeBSD__
 -		if (pfsync_defer_ptr != NULL)
 -			pfsync_defer_ptr(*sm, m);
 +		if (pfsync_defer_ptr != NULL &&
 +			pfsync_defer_ptr(*sm, m))
  #else
  		if (pfsync_defer(*sm, m))
  #endif
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
>Unformatted:
