PERFORCE change 166476 for review

Andre Oppermann andre at FreeBSD.org
Thu Jul 23 20:54:27 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=166476

Change 166476 by andre at andre_t61 on 2009/07/23 20:54:23

	Be more consistent with the sequence space comparisons.
	Have uma_zalloc zero out the structure on allocation.

Affected files ...

.. //depot/projects/tcp_new/netinet/tcp_sack.c#12 edit

Differences ...

==== //depot/projects/tcp_new/netinet/tcp_sack.c#12 (text+ko) ====

@@ -267,7 +267,7 @@
 				sacked += SEQ_DELTA(tsb->tsb_blk.end, sack.tsb_blk.end);
 				tsb->tsb_blk.end = sack.tsb_blk.end;
 				while ((tsbn = RB_NEXT(tcp_sackblocks, &tp->snd_sackblocks, tsb)) != NULL &&
-				    SEQ_GEQ(tsbn->tsb_blk.start, tsb->tsb_blk.end)) {
+				    SEQ_GEQ(tsb->tsb_blk.end, tsbn->tsb_blk.start)) {
 					sacked -= SEQ_DELTA(sack.tsb_blk.end, tsbn->tsb_blk.start);
 					if (SEQ_GT(tsbn->tsb_blk.end, tsb->tsb_blk.end))
 						tsb->tsb_blk.end = tsbn->tsb_blk.end;
@@ -279,14 +279,14 @@
 				sacked += SEQ_DELTA(sack.tsb_blk.start, tsb->tsb_blk.start);
 				tsb->tsb_blk.start = sack.tsb_blk.start;
 				while ((tsbn = RB_PREV(tcp_sackblocks, &tp->snd_sackblocks, tsb)) != NULL &&
-				    SEQ_GEQ(tsbn->tsb_blk.end, tsb->tsb_blk.start)) {
+				    SEQ_LEQ(tsb->tsb_blk.start, tsbn->tsb_blk.end)) {
 					sacked -= SEQ_DELTA(sack.tsb_blk.start, tsbn->tsb_blk.end);
 					if (SEQ_LT(tsbn->tsb_blk.start, tsb->tsb_blk.start))
 						tsb->tsb_blk.start = tsbn->tsb_blk.start;
 					tcp_sack_free(tp, tsbn);
 				}
 			}
-		} else if ((tsb = (struct tcp_sack_block *)uma_zalloc(tcp_sackblock_zone, M_NOWAIT)) != NULL) {
+		} else if ((tsb = (struct tcp_sack_block *)uma_zalloc(tcp_sackblock_zone, (M_NOWAIT|M_ZERO))) != NULL) {
 			sacked += SEQ_DELTA(sack.tsb_blk.start, sack.tsb_blk.end);
 			tsb->tsb_blk.start = sack.tsb_blk.start;
 			tsb->tsb_blk.end = sack.tsb_blk.end;


More information about the p4-projects mailing list