[Midnightbsd-cvs] src [8154] trunk: fix pseudo checksum calculation.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri Sep 16 18:22:46 EDT 2016


Revision: 8154
          http://svnweb.midnightbsd.org/src/?rev=8154
Author:   laffer1
Date:     2016-09-16 18:22:46 -0400 (Fri, 16 Sep 2016)
Log Message:
-----------
fix pseudo checksum calculation. this fixes ipfilter with network controllers that mplement partial rx csum offload

Modified Paths:
--------------
    trunk/Makefile.inc1
    trunk/gnu/usr.bin/gdb/Makefile.inc
    trunk/gnu/usr.bin/gdb/arch/amd64/Makefile
    trunk/gnu/usr.bin/gdb/arch/amd64/init.c
    trunk/gnu/usr.bin/gdb/arch/i386/Makefile
    trunk/gnu/usr.bin/gdb/arch/i386/init.c
    trunk/rescue/rescue/Makefile
    trunk/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
    trunk/sys/fs/ext2fs/ext2_bmap.c
    trunk/sys/fs/ext2fs/ext2_extern.h
    trunk/sys/fs/ext2fs/ext2_vnops.c
    trunk/usr.bin/grep/util.c

Modified: trunk/Makefile.inc1
===================================================================
--- trunk/Makefile.inc1	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/Makefile.inc1	2016-09-16 22:22:46 UTC (rev 8154)
@@ -169,7 +169,11 @@
 .endif
 WORLDTMP=	${OBJTREE}${.CURDIR}/tmp
 # /usr/games added for fortune which depend on strfile
+.if defined(NO_WORLDTMP)
+BPATH=		${PATH}
+.else
 BPATH=		${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/usr/games
+.endif
 XPATH=		${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin:${WORLDTMP}/usr/games
 STRICTTMPPATH=	${BPATH}:${XPATH}
 TMPPATH=	${STRICTTMPPATH}:${PATH}

Modified: trunk/gnu/usr.bin/gdb/Makefile.inc
===================================================================
--- trunk/gnu/usr.bin/gdb/Makefile.inc	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/gnu/usr.bin/gdb/Makefile.inc	2016-09-16 22:22:46 UTC (rev 8154)
@@ -45,6 +45,7 @@
 CFLAGS+= -I${CNTRB_BU}/include
 CFLAGS+= -I${CNTRB_GDB}/include
 CFLAGS+= -I${CNTRB_BU}/bfd
+DEBUG_FLAGS=	-g -O0
 
 GENSRCS+= nm.h tm.h
 

Modified: trunk/gnu/usr.bin/gdb/arch/amd64/Makefile
===================================================================
--- trunk/gnu/usr.bin/gdb/arch/amd64/Makefile	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/gnu/usr.bin/gdb/arch/amd64/Makefile	2016-09-16 22:22:46 UTC (rev 8154)
@@ -5,7 +5,7 @@
 LIBSRCS+= fbsd-proc.c fbsd-threads.c gcore.c
 LIBSRCS+= amd64-nat.c amd64bsd-nat.c amd64fbsd-nat.c
 .endif
-LIBSRCS+= solib.c solib-svr4.c
+LIBSRCS+= solib.c solib-svr4.c solib-legacy.c
 LIBSRCS+= amd64-tdep.c amd64fbsd-tdep.c i386-tdep.c i386bsd-tdep.c \
 	i386fbsd-tdep-fixed.c i387-tdep.c
 

Modified: trunk/gnu/usr.bin/gdb/arch/amd64/init.c
===================================================================
--- trunk/gnu/usr.bin/gdb/arch/amd64/init.c	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/gnu/usr.bin/gdb/arch/amd64/init.c	2016-09-16 22:22:46 UTC (rev 8154)
@@ -12,6 +12,7 @@
 extern initialize_file_ftype _initialize_corelow;
 extern initialize_file_ftype _initialize_solib;
 extern initialize_file_ftype _initialize_svr4_solib;
+extern initialize_file_ftype _initialize_svr4_lm;
 extern initialize_file_ftype _initialize_ser_hardwire;
 extern initialize_file_ftype _initialize_ser_pipe;
 extern initialize_file_ftype _initialize_ser_tcp;
@@ -126,6 +127,7 @@
   _initialize_corelow ();
   _initialize_solib ();
   _initialize_svr4_solib ();
+  _initialize_svr4_lm ();
   _initialize_ser_hardwire ();
   _initialize_ser_pipe ();
   _initialize_ser_tcp ();

Modified: trunk/gnu/usr.bin/gdb/arch/i386/Makefile
===================================================================
--- trunk/gnu/usr.bin/gdb/arch/i386/Makefile	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/gnu/usr.bin/gdb/arch/i386/Makefile	2016-09-16 22:22:46 UTC (rev 8154)
@@ -5,7 +5,7 @@
 LIBSRCS+= fbsd-proc.c fbsd-threads.c gcore.c
 LIBSRCS+= i386-nat.c i386bsd-nat.c i386fbsd-nat.c
 .endif
-LIBSRCS+= solib.c solib-svr4.c
+LIBSRCS+= solib.c solib-svr4.c solib-legacy.c
 LIBSRCS+= i386-tdep.c i386bsd-tdep.c i386fbsd-tdep-fixed.c i387-tdep.c
 
 nm.h:

Modified: trunk/gnu/usr.bin/gdb/arch/i386/init.c
===================================================================
--- trunk/gnu/usr.bin/gdb/arch/i386/init.c	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/gnu/usr.bin/gdb/arch/i386/init.c	2016-09-16 22:22:46 UTC (rev 8154)
@@ -11,6 +11,7 @@
 extern initialize_file_ftype _initialize_corelow;
 extern initialize_file_ftype _initialize_solib;
 extern initialize_file_ftype _initialize_svr4_solib;
+extern initialize_file_ftype _initialize_svr4_lm;
 extern initialize_file_ftype _initialize_ser_hardwire;
 extern initialize_file_ftype _initialize_ser_pipe;
 extern initialize_file_ftype _initialize_ser_tcp;
@@ -126,6 +127,7 @@
   _initialize_corelow ();
   _initialize_solib ();
   _initialize_svr4_solib ();
+  _initialize_svr4_lm ();
   _initialize_ser_hardwire ();
   _initialize_ser_pipe ();
   _initialize_ser_tcp ();

Modified: trunk/rescue/rescue/Makefile
===================================================================
--- trunk/rescue/rescue/Makefile	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/rescue/rescue/Makefile	2016-09-16 22:22:46 UTC (rev 8154)
@@ -123,9 +123,9 @@
 CRUNCH_LIBS+= -lipx
 .endif
 .if ${MK_ZFS} != "no"
-CRUNCH_LIBS+= -lavl -lnvpair -lpthread -lzfs -luutil -lumem
+CRUNCH_LIBS+= -lavl -lnvpair -lzfs -lpthread -luutil -lumem
 .endif
-CRUNCH_LIBS+= -lgeom -lbsdxml -ljail -lkiconv -lmd -lreadline -lsbuf -lufs -lz
+CRUNCH_LIBS+= -lgeom -lbsdxml -ljail -lkiconv -lmd -lsbuf -lufs -lz
 
 .if ${MACHINE_CPUARCH} == "i386"
 CRUNCH_PROGS_sbin+= bsdlabel sconfig fdisk

Modified: trunk/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
===================================================================
--- trunk/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c	2016-09-16 22:22:46 UTC (rev 8154)
@@ -1357,7 +1357,9 @@
 		else
 			sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr,
 					htonl(m->m_pkthdr.csum_data +
-					fin->fin_ip->ip_len + fin->fin_p));
+					fin->fin_ip->ip_len -
+					(fin->fin_ip->ip_hl << 2) +
+					fin->fin_p));
 		sum ^= 0xffff;
 		if (sum != 0) {
 			fin->fin_flx |= FI_BAD;

Modified: trunk/sys/fs/ext2fs/ext2_bmap.c
===================================================================
--- trunk/sys/fs/ext2fs/ext2_bmap.c	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/sys/fs/ext2fs/ext2_bmap.c	2016-09-16 22:22:46 UTC (rev 8154)
@@ -66,7 +66,6 @@
 		int *a_runb;
 	} */ *ap;
 {
-	int32_t blkno;
 	int error;
 
 	/*
@@ -78,9 +77,8 @@
 	if (ap->a_bnp == NULL)
 		return (0);
 
-	error = ext2_bmaparray(ap->a_vp, ap->a_bn, &blkno,
+	error = ext2_bmaparray(ap->a_vp, ap->a_bn, ap->a_bnp,
 	    ap->a_runp, ap->a_runb);
-	*ap->a_bnp = blkno;
 	return (error);
 }
 
@@ -101,8 +99,8 @@
 int
 ext2_bmaparray(vp, bn, bnp, runp, runb)
 	struct vnode *vp;
-	int32_t bn;
-	int32_t *bnp;
+	daddr_t bn;
+	daddr_t *bnp;
 	int *runp;
 	int *runb;
 {
@@ -112,8 +110,8 @@
 	struct mount *mp;
 	struct vnode *devvp;
 	struct indir a[NIADDR+1], *ap;
-	int32_t daddr;
-	long metalbn;
+	daddr_t daddr;
+	daddr_t metalbn;
 	int error, num, maxrun = 0, bsize;
 	int *nump;
 
@@ -147,7 +145,7 @@
 		if (*bnp == 0) {
 			*bnp = -1;
 		} else if (runp) {
-			int32_t bnb = bn;
+			daddr_t bnb = bn;
 			for (++bn; bn < NDADDR && *runp < maxrun &&
 			    is_sequential(ump, ip->i_db[bn - 1], ip->i_db[bn]);
 			    ++bn, ++*runp);

Modified: trunk/sys/fs/ext2fs/ext2_extern.h
===================================================================
--- trunk/sys/fs/ext2fs/ext2_extern.h	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/sys/fs/ext2fs/ext2_extern.h	2016-09-16 22:22:46 UTC (rev 8154)
@@ -54,7 +54,7 @@
 void	ext2_blkfree(struct inode *, int32_t, long);
 int32_t	ext2_blkpref(struct inode *, int32_t, int, int32_t *, int32_t);
 int	ext2_bmap(struct vop_bmap_args *);
-int	ext2_bmaparray(struct vnode *, int32_t, int32_t *, int *, int *);
+int	ext2_bmaparray(struct vnode *, daddr_t, daddr_t *, int *, int *);
 void	ext2_clusteracct(struct m_ext2fs *, char *, int, daddr_t, int);
 void	ext2_dirbad(struct inode *ip, doff_t offset, char *how);
 void	ext2_ei2i(struct ext2fs_dinode *, struct inode *);

Modified: trunk/sys/fs/ext2fs/ext2_vnops.c
===================================================================
--- trunk/sys/fs/ext2fs/ext2_vnops.c	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/sys/fs/ext2fs/ext2_vnops.c	2016-09-16 22:22:46 UTC (rev 8154)
@@ -1429,7 +1429,6 @@
 	struct vnode *vp = ap->a_vp;
 	struct inode *ip;
 	struct bufobj *bo;
-	int32_t blkno;
 	int error;
 
 	ip = VTOI(vp);
@@ -1436,8 +1435,7 @@
 	if (vp->v_type == VBLK || vp->v_type == VCHR)
 		panic("ext2_strategy: spec");
 	if (bp->b_blkno == bp->b_lblkno) {
-		error = ext2_bmaparray(vp, bp->b_lblkno, &blkno, NULL, NULL);
-		bp->b_blkno = blkno;
+		error = ext2_bmaparray(vp, bp->b_lblkno, &bp->b_blkno, NULL, NULL);
 		if (error) {
 			bp->b_error = error;
 			bp->b_ioflags |= BIO_ERROR;
@@ -1444,14 +1442,15 @@
 			bufdone(bp);
 			return (0);
 		}
-		if ((long)bp->b_blkno == -1)
+		if (bp->b_blkno == -1)
 			vfs_bio_clrbuf(bp);
 	}
-	if ((long)bp->b_blkno == -1) {
+	if (bp->b_blkno == -1) {
 		bufdone(bp);
 		return (0);
 	}
 	bp->b_iooffset = dbtob(bp->b_blkno);
+	printf("%s: bp->b_iooffset %lld, bp->b_blkno %lld\n", __func__, (long long) bp->b_iooffset, (long long) bp->b_blkno);
 	bo = VFSTOEXT2(vp->v_mount)->um_bo;
 	BO_STRATEGY(bo, bp);
 	return (0);
@@ -1752,6 +1751,7 @@
 		if (bytesinfile < xfersize)
 			xfersize = bytesinfile;
 
+		printf("%s: lbn %lld\n", __func__, (long long) lbn);
 		if (lblktosize(fs, nextlbn) >= ip->i_size)
 			error = bread(vp, lbn, size, NOCRED, &bp);
 		else if ((vp->v_mount->mnt_flag & MNT_NOCLUSTERR) == 0)

Modified: trunk/usr.bin/grep/util.c
===================================================================
--- trunk/usr.bin/grep/util.c	2016-09-16 22:21:44 UTC (rev 8153)
+++ trunk/usr.bin/grep/util.c	2016-09-16 22:22:46 UTC (rev 8154)
@@ -336,10 +336,6 @@
 			break;
 		}
 
-		/* One pass if we are not recording matches */
-		if ((color == NULL && !oflag) || qflag || lflag)
-			break;
-
 		if (st == (size_t)pmatch.rm_so)
 			break; 	/* No matches */
 	}



More information about the Midnightbsd-cvs mailing list