From owner-svn-src-stable@FreeBSD.ORG Sat Apr 17 04:19:18 2010 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E95141065670; Sat, 17 Apr 2010 04:19:18 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D717A8FC22; Sat, 17 Apr 2010 04:19:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3H4JI8P045592; Sat, 17 Apr 2010 04:19:18 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3H4JI69045589; Sat, 17 Apr 2010 04:19:18 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201004170419.o3H4JI69045589@svn.freebsd.org> From: Randall Stewart Date: Sat, 17 Apr 2010 04:19:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206744 - stable/8/sys/netinet X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 04:19:19 -0000 Author: rrs Date: Sat Apr 17 04:19:18 2010 New Revision: 206744 URL: http://svn.freebsd.org/changeset/base/206744 Log: MFC of 206281 Final MFC of all the IETF hack a-thon.. head and stable are now in sync ;-) Modified: stable/8/sys/netinet/sctp_indata.c stable/8/sys/netinet/sctputil.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/netinet/sctp_indata.c ============================================================================== --- stable/8/sys/netinet/sctp_indata.c Sat Apr 17 04:17:17 2010 (r206743) +++ stable/8/sys/netinet/sctp_indata.c Sat Apr 17 04:19:18 2010 (r206744) @@ -2275,8 +2275,7 @@ sctp_slide_mapping_arrays(struct sctp_tc asoc->cumulative_tsn = asoc->mapping_array_base_tsn + (at - 1); if (compare_with_wrap(asoc->cumulative_tsn, asoc->highest_tsn_inside_map, MAX_TSN) && - compare_with_wrap(asoc->cumulative_tsn, asoc->highest_tsn_inside_nr_map, MAX_TSN) - ) { + compare_with_wrap(asoc->cumulative_tsn, asoc->highest_tsn_inside_nr_map, MAX_TSN)) { #ifdef INVARIANTS panic("huh, cumack 0x%x greater than high-tsn 0x%x in map", asoc->cumulative_tsn, asoc->highest_tsn_inside_map); @@ -2378,7 +2377,7 @@ sctp_slide_mapping_arrays(struct sctp_tc asoc->nr_mapping_array[slide_from + ii]; } - for (ii = distance; ii <= asoc->mapping_array_size; ii++) { + for (ii = distance; ii < asoc->mapping_array_size; ii++) { asoc->mapping_array[ii] = 0; asoc->nr_mapping_array[ii] = 0; } Modified: stable/8/sys/netinet/sctputil.c ============================================================================== --- stable/8/sys/netinet/sctputil.c Sat Apr 17 04:17:17 2010 (r206743) +++ stable/8/sys/netinet/sctputil.c Sat Apr 17 04:19:18 2010 (r206744) @@ -1187,50 +1187,38 @@ sctp_init_asoc(struct sctp_inpcb *m, str void sctp_print_mapping_array(struct sctp_association *asoc) { - int i, limit; + unsigned int i, limit; - printf("Mapping size:%d baseTSN:%8.8x cumAck:%8.8x highestTSN:%8.8x\n", + printf("Mapping array size: %d, baseTSN: %8.8x, cumAck: %8.8x, highestTSN: (%8.8x, %8.8x).\n", asoc->mapping_array_size, asoc->mapping_array_base_tsn, asoc->cumulative_tsn, - asoc->highest_tsn_inside_map - ); - limit = asoc->mapping_array_size; - for (i = asoc->mapping_array_size; i >= 0; i--) { - if (asoc->mapping_array[i]) { - limit = i; + asoc->highest_tsn_inside_map, + asoc->highest_tsn_inside_nr_map); + for (limit = asoc->mapping_array_size; limit > 1; limit--) { + if (asoc->mapping_array[limit - 1]) { break; } } - if (limit == 0) - limit = 1; + printf("Renegable mapping array (last %d entries are zero):\n", asoc->mapping_array_size - limit); for (i = 0; i < limit; i++) { - printf("%2.2x ", asoc->mapping_array[i]); + printf("%2.2x%c", asoc->mapping_array[i], ((i + 1) % 16) ? ' ' : '\n'); if (((i + 1) % 16) == 0) printf("\n"); } - printf("\n"); - printf("NR Mapping size:%d baseTSN:%8.8x highestTSN:%8.8x\n", - asoc->mapping_array_size, - asoc->mapping_array_base_tsn, - asoc->highest_tsn_inside_nr_map - ); - limit = asoc->mapping_array_size; - for (i = asoc->mapping_array_size; i >= 0; i--) { - if (asoc->nr_mapping_array[i]) { - limit = i; + if (limit % 16) + printf("\n"); + for (limit = asoc->mapping_array_size; limit > 1; limit--) { + if (asoc->nr_mapping_array[limit - 1]) { break; } } - if (limit == 0) - limit = 1; - + printf("Non renegable mapping array (last %d entries are zero):\n", asoc->mapping_array_size - limit); for (i = 0; i < limit; i++) { - printf("%2.2x ", asoc->nr_mapping_array[i]); - if (((i + 1) % 16) == 0) - printf("\n"); + printf("%2.2x%c", asoc->mapping_array[i], ((i + 1) % 16) ? ' ' : '\n'); } - printf("\n"); + if (limit % 16) + printf("\n"); } int @@ -1240,9 +1228,7 @@ sctp_expand_mapping_array(struct sctp_as uint8_t *new_array1, *new_array2; uint32_t new_size; - new_size = asoc->mapping_array_size + ((needed + 7) / 8 + SCTP_MAPPING_ARRAY_INCR); - SCTP_MALLOC(new_array1, uint8_t *, new_size, SCTP_M_MAP); SCTP_MALLOC(new_array2, uint8_t *, new_size, SCTP_M_MAP); if ((new_array1 == NULL) || (new_array2 == NULL)) {