Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Jun 2012 17:22:20 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r236411 - stable/8/sys/net
Message-ID:  <201206011722.q51HMKm3032527@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Fri Jun  1 17:22:20 2012
New Revision: 236411
URL: http://svn.freebsd.org/changeset/base/236411

Log:
  MFC:	r236251
  
  Fix 32-bit shim for BIOCSETF to drop all packets buffered on the descriptor
  and reset statistics as it should.

Modified:
  stable/8/sys/net/bpf.c
Directory Properties:
  stable/8/sys/   (props changed)

Modified: stable/8/sys/net/bpf.c
==============================================================================
--- stable/8/sys/net/bpf.c	Fri Jun  1 17:17:46 2012	(r236410)
+++ stable/8/sys/net/bpf.c	Fri Jun  1 17:22:20 2012	(r236411)
@@ -1498,13 +1498,23 @@ bpf_setf(struct bpf_d *d, struct bpf_pro
 	struct bpf_program32 *fp32;
 	struct bpf_program fp_swab;
 
-	if (cmd == BIOCSETWF32 || cmd == BIOCSETF32 || cmd == BIOCSETFNR32) {
+	switch (cmd) {
+	case BIOCSETF32:
+	case BIOCSETWF32:
+	case BIOCSETFNR32:
 		fp32 = (struct bpf_program32 *)fp;
 		fp_swab.bf_len = fp32->bf_len;
 		fp_swab.bf_insns = (struct bpf_insn *)(uintptr_t)fp32->bf_insns;
 		fp = &fp_swab;
-		if (cmd == BIOCSETWF32)
+		switch (cmd) {
+		case BIOCSETF32:
+			cmd = BIOCSETF;
+			break;
+		case BIOCSETWF32:
 			cmd = BIOCSETWF;
+			break;
+		}
+		break;
 	}
 #endif
 	if (cmd == BIOCSETWF) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206011722.q51HMKm3032527>