From owner-svn-src-stable-11@freebsd.org Mon May 7 06:58:22 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7DE93FA8889; Mon, 7 May 2018 06:58:22 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1D2F674E1E; Mon, 7 May 2018 06:58:22 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0B0AC17E41; Mon, 7 May 2018 06:58:22 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w476wLK5056663; Mon, 7 May 2018 06:58:21 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w476wJcb056653; Mon, 7 May 2018 06:58:19 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201805070658.w476wJcb056653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Mon, 7 May 2018 06:58:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333312 - in stable/11: . contrib/tzdata X-SVN-Group: stable-11 X-SVN-Commit-Author: philip X-SVN-Commit-Paths: in stable/11: . contrib/tzdata X-SVN-Commit-Revision: 333312 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 06:58:23 -0000 Author: philip Date: Mon May 7 06:58:19 2018 New Revision: 333312 URL: https://svnweb.freebsd.org/changeset/base/333312 Log: MFC r333247: Import tzdata 2018e North Korea switches back to +09 on 2018-05-05. This version more correctly models time stamps in time zones with negative DST such as Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and Africa/Windhoek (1994/2017). This does not affect the UT offsets, only time zone abbreviations and the tm_isdst flag. Approved by: re (kib) Modified: stable/11/UPDATING stable/11/contrib/tzdata/Makefile stable/11/contrib/tzdata/NEWS stable/11/contrib/tzdata/africa stable/11/contrib/tzdata/asia stable/11/contrib/tzdata/australasia stable/11/contrib/tzdata/europe stable/11/contrib/tzdata/theory.html stable/11/contrib/tzdata/version stable/11/contrib/tzdata/ziguard.awk Directory Properties: stable/11/ (props changed) Modified: stable/11/UPDATING ============================================================================== --- stable/11/UPDATING Sun May 6 21:29:29 2018 (r333311) +++ stable/11/UPDATING Mon May 7 06:58:19 2018 (r333312) @@ -16,6 +16,13 @@ from older versions of FreeBSD, try WITHOUT_CLANG and the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. +20180504: + The tz database (tzdb) has been updated to 2018e. This version more + correctly models time stamps in time zones with negative DST such as + Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and + Africa/Windhoek (1994/2017). This does not affect the UT offsets, only + time zone abbreviations and the tm_isdst flag. + 20180409: The use of RSS hash from the network card aka flowid has been disabled by default for lagg(4) as it's currently incompatible with Modified: stable/11/contrib/tzdata/Makefile ============================================================================== --- stable/11/contrib/tzdata/Makefile Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/Makefile Mon May 7 06:58:19 2018 (r333312) @@ -21,7 +21,7 @@ DATAFORM= main # Change the line below for your time zone (after finding the zone you want in # the time zone files, or adding it to a time zone file). -# Alternately, if you discover you've got the wrong time zone, you can just +# Alternatively, if you discover you've got the wrong time zone, you can just # zic -l rightzone # to correct things. # Use the command @@ -38,7 +38,7 @@ LOCALTIME= GMT # template file are used to determine "spring forward" and "fall back" days and # times; the environment variable itself specifies UT offsets of standard and # daylight saving time. -# Alternately, if you discover you've got the wrong time zone, you can just +# Alternatively, if you discover you've got the wrong time zone, you can just # zic -p rightzone # to correct things. # Use the command @@ -236,14 +236,16 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fno-common \ $(GCC_INSTRUMENT) \ -Wall -Wextra \ -Walloc-size-larger-than=100000 -Warray-bounds=2 \ - -Wbad-function-cast -Wcast-align -Wdate-time \ + -Wbad-function-cast -Wcast-align=strict -Wdate-time \ -Wdeclaration-after-statement -Wdouble-promotion \ -Wformat=2 -Wformat-overflow=2 -Wformat-signedness -Wformat-truncation \ -Winit-self -Wjump-misses-init -Wlogical-op \ -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ -Wold-style-definition -Woverlength-strings -Wpointer-arith \ - -Wshadow -Wshift-overflow=2 -Wstrict-prototypes -Wstringop-overflow=5 \ + -Wshadow -Wshift-overflow=2 -Wstrict-prototypes -Wstringop-overflow=4 \ + -Wstringop-truncation -Wsuggest-attribute=cold \ -Wsuggest-attribute=const -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure \ -Wtrampolines -Wundef -Wuninitialized -Wunused \ -Wvariadic-macros -Wvla -Wwrite-strings \ @@ -514,6 +516,7 @@ VERSION_DEPS= \ tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ workman.sh yearistype.sh \ zdump.8 zdump.c zic.8 zic.c \ + ziguard.awk zishrink.awk \ zone.tab zone1970.tab zoneinfo2tdf.pl # And for the benefit of csh users on systems that assume the user @@ -559,8 +562,8 @@ version: $(VERSION_DEPS) # These files can be tailored by setting BACKWARD, PACKRATDATA, etc. vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) - $(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \ - >$@.out + $(AWK) -v DATAFORM=`expr $@ : '\(.*\).zi'` -f ziguard.awk \ + $(TDATA) $(PACKRATDATA) >$@.out mv $@.out $@ tzdata.zi: $(DATAFORM).zi version version=`sed 1q version` && \ @@ -900,6 +903,13 @@ check_time_t_alternatives: done rm -fr time_t.dir +TRADITIONAL_ASC = \ + tzcode$(VERSION).tar.gz.asc \ + tzdata$(VERSION).tar.gz.asc +ALL_ASC = $(TRADITIONAL_ASC) \ + tzdata$(VERSION)-rearguard.tar.gz.asc \ + tzdb-$(VERSION).tar.lz.asc + tarballs traditional_tarballs signatures traditional_signatures: version VERSION=`cat version` && \ $(MAKE) VERSION="$$VERSION" $@_version @@ -907,12 +917,13 @@ tarballs traditional_tarballs signatures traditional_s # These *_version rules are intended for use if VERSION is set by some # other means. Ordinarily these rules are used only by the above # non-_version rules, which set VERSION on the 'make' command line. -tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz +tarballs_version: traditional_tarballs_version \ + tzdata$(VERSION)-rearguard.tar.gz \ + tzdb-$(VERSION).tar.lz traditional_tarballs_version: \ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz -signatures_version: traditional_signatures_version tzdb-$(VERSION).tar.lz.asc -traditional_signatures_version: \ - tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc \ +signatures_version: $(ALL_ASC) +traditional_signatures_version: $(TRADITIONAL_ASC) tzcode$(VERSION).tar.gz: set-timestamps.out LC_ALL=C && export LC_ALL && \ @@ -927,6 +938,26 @@ tzdata$(VERSION).tar.gz: set-timestamps.out gzip $(GZIPFLAGS) >$@.out mv $@.out $@ +tzdata$(VERSION)-rearguard.tar.gz: rearguard.zi set-timestamps.out + rm -fr tzdata$(VERSION)-rearguard.dir + mkdir tzdata$(VERSION)-rearguard.dir + ln $(COMMON) $(DATA) $(MISC) tzdata$(VERSION)-rearguard.dir + cd tzdata$(VERSION)-rearguard.dir && \ + rm -f $(TDATA) $(PACKRATDATA) version + for f in $(TDATA) $(PACKRATDATA); do \ + rearf=tzdata$(VERSION)-rearguard.dir/$$f; \ + $(AWK) -v DATAFORM=rearguard -f ziguard.awk $$f >$$rearf && \ + touch -cmr `ls -t ziguard.awk $$f` $$rearf || exit; \ + done + sed '1s/$$/-rearguard/' \ + tzdata$(VERSION)-rearguard.dir/version + touch -cmr version tzdata$(VERSION)-rearguard.dir/version + LC_ALL=C && export LC_ALL && \ + (cd tzdata$(VERSION)-rearguard.dir && \ + tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \ + gzip $(GZIPFLAGS)) >$@.out + mv $@.out $@ + tzdb-$(VERSION).tar.lz: set-timestamps.out rm -fr tzdb-$(VERSION) mkdir tzdb-$(VERSION) @@ -937,12 +968,10 @@ tzdb-$(VERSION).tar.lz: set-timestamps.out mv $@.out $@ tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz - gpg --armor --detach-sign $? - tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz - gpg --armor --detach-sign $? - +tzdata$(VERSION)-rearguard.tar.gz.asc: tzdata$(VERSION)-rearguard.tar.gz tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz +$(ALL_ASC): gpg --armor --detach-sign $? typecheck: Modified: stable/11/contrib/tzdata/NEWS ============================================================================== --- stable/11/contrib/tzdata/NEWS Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/NEWS Mon May 7 06:58:19 2018 (r333312) @@ -1,5 +1,69 @@ News for the tz database +Release 2018e - 2018-05-01 23:42:51 -0700 + + Briefly: + + North Korea switches back to +09 on 2018-05-05. + The main format uses negative DST again, for Ireland etc. + 'make tarballs' now also builds a rearguard tarball. + New 's' and 'd' suffixes in SAVE columns of Rule and Zone lines. + + Changes to past and future time stamps + + North Korea switches back from +0830 to +09 on 2018-05-05. + (Thanks to Kang Seonghoon, Arthur David Olson, Seo Sanghyeon, + and Tim Parenti.) + + Bring back the negative-DST changes of 2018a, except be more + compatible with data parsers that do not support negative DST. + Also, this now affects historical time stamps in Namibia and the + former Czechoslovakia, not just Ireland. The main format now uses + negative DST to model time stamps in Europe/Dublin (from 1971 on), + Europe/Prague (1946/7), and Africa/Windhoek (1994/2017). This + does not affect UT offsets, only time zone abbreviations and the + tm_isdst flag. Also, this does not affect rearguard or vanguard + formats; effectively the main format now uses vanguard instead of + rearguard format. Data parsers that do not support negative DST + can still use data from the rearguard tarball described below. + + Changes to build procedure + + The command 'make tarballs' now also builds the tarball + tzdataVERSION-rearguard.tar.gz, which is like tzdataVERSION.tar.gz + except that it uses rearguard format intended for trailing-edge + data parsers. + + Changes to data format and to code + + The SAVE column of Rule and Zone lines can now have an 's' or 'd' + suffix, which specifies whether the adjusted time is standard time + or daylight saving time. If no suffix is given, daylight saving + time is used if and only if the SAVE column is nonzero; this is + the longstanding behavior. Although this new feature is not used + in tzdata, it could be used to specify the legal time in Namibia + 1994-2017, as opposed to the popular time (see below). + + Changes to past time stamps + + From 1994 through 2017 Namibia observed DST in winter, not summer. + That is, it used negative DST, as Ireland still does. This change + does not affect UTC offsets; it affects only the tm_isdst flag and + the abbreviation used during summer, which is now CAT, not WAST. + Although (as noted by Michael Deckers) summer and winter time were + both simply called "standard time" in Namibian law, in common + practice winter time was considered to be DST (as noted by Stephen + Colebourne). The full effect of this change is only in vanguard + format; in rearguard and main format, the tm_isdst flag is still + zero in winter and nonzero in summer. + + In 1946/7 Czechoslovakia also observed negative DST in winter. + The full effect of this change is only in vanguard format; in + rearguard and main formats, it is modeled as plain GMT without + daylight saving. Also, the dates of some 1944/5 DST transitions + in Czechoslovakia have been changed. + + Release 2018d - 2018-03-22 07:05:46 -0700 Briefly: @@ -39,7 +103,7 @@ Release 2018d - 2018-03-22 07:05:46 -0700 Enderbury and Kiritimati skipped New Year's Eve 1994, not New Year's Day 1995. (Thanks to Kerry Shetline.) - Fix the 1912-01-01 transition for Portugual and its colonies. + Fix the 1912-01-01 transition for Portugal and its colonies. This transition was at 00:00 according to the new UT offset, not according to the old one. Also assume that Cape Verde switched on the same date as the rest, not in 1907. This affects Modified: stable/11/contrib/tzdata/africa ============================================================================== --- stable/11/contrib/tzdata/africa Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/africa Mon May 7 06:58:19 2018 (r333312) @@ -6,7 +6,7 @@ # tz@iana.org for general use in the future). For more, please see # the file CONTRIBUTING in the tz distribution. -# From Paul Eggert (2017-02-20): +# From Paul Eggert (2017-04-09): # # Unless otherwise specified, the source for data through 1990 is: # Thomas G. Shanks and Rique Pottenger, The International Atlas (6th edition), @@ -52,7 +52,7 @@ # cannot now come up with solid citations. # # I invented the following abbreviations; corrections are welcome! -# +02 WAST West Africa Summer Time +# +02 WAST West Africa Summer Time (no longer used) # +03 CAST Central Africa Summer Time (no longer used) # +03 SAST South Africa Summer Time (no longer used) # +03 EAT East Africa Time @@ -967,6 +967,10 @@ Link Africa/Maputo Africa/Lusaka # Zambia # commence at OOhOO on Monday 21 March 1994 and shall end at 02h00 on # Sunday 4 September 1994. +# From Michael Deckers (2017-04-06): +# ... both summer and winter time are called "standard" +# (which differs from the use in Ireland) ... + # From Petronella Sibeene (2007-03-30): # http://allafrica.com/stories/200703300178.html # While the entire country changes its time, Katima Mulilo and other @@ -992,19 +996,42 @@ Link Africa/Maputo Africa/Lusaka # Zambia # the same time they would normally start DST, the first Sunday in September: # https://www.timeanddate.com/news/time/namibia-new-time-zone.html +# From Paul Eggert (2017-04-09): +# Before the change, summer and winter time were both standard time legally. +# However in common parlance, winter time was considered to be DST. See, e.g.: +# http://www.nbc.na/news/namibias-winter-time-could-be-scrapped.2706 +# https://zone.my.na/news/times-are-changing-in-namibia +# https://www.newera.com.na/2017/02/23/namibias-winter-time-might-be-repealed/ +# Use plain "WAT" and "CAT" for the time zone abbreviations, to be compatible +# with Namibia's neighbors. + # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Namibia 1994 only - Mar 21 0:00 0 - -Rule Namibia 1994 2016 - Sep Sun>=1 2:00 1:00 S -Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 - +# Vanguard section, for zic and other parsers that support negative DST. +Rule Namibia 1994 only - Mar 21 0:00 -1:00 WAT +Rule Namibia 1994 2017 - Sep Sun>=1 2:00 0 CAT +Rule Namibia 1995 2017 - Apr Sun>=1 2:00 -1:00 WAT +# Rearguard section, for parsers that do not support negative DST. +#Rule Namibia 1994 only - Mar 21 0:00 0 WAT +#Rule Namibia 1994 2017 - Sep Sun>=1 2:00 1:00 CAT +#Rule Namibia 1995 2017 - Apr Sun>=1 2:00 0 WAT +# End of rearguard section. + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 1:30 - +0130 1903 Mar 2:00 - SAST 1942 Sep 20 2:00 2:00 1:00 SAST 1943 Mar 21 2:00 2:00 - SAST 1990 Mar 21 # independence - 2:00 - CAT 1994 Mar 21 0:00 - 1:00 Namibia WA%sT 2017 Sep 3 2:00 - 2:00 - CAT +# Vanguard section, for zic and other parsers that support negative DST. + 2:00 Namibia %s +# Rearguard section, for parsers that do not support negative DST. +# 2:00 - CAT 1994 Mar 21 0:00 +# From Paul Eggert (2017-04-07): +# The official date of the 2017 rule change was 2017-10-24. See: +# http://www.lac.org.na/laws/annoSTAT/Namibian%20Time%20Act%209%20of%202017.pdf +# 1:00 Namibia %s 2017 Oct 24 +# 2:00 - CAT +# End of rearguard section. # Niger # See Africa/Lagos. Modified: stable/11/contrib/tzdata/asia ============================================================================== --- stable/11/contrib/tzdata/asia Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/asia Mon May 7 06:58:19 2018 (r333312) @@ -1983,6 +1983,19 @@ Rule ROK 1987 1988 - Oct Sun>=8 3:00 0 S # There is no common English-language abbreviation for this time zone. # Use KST, as that's what we already use for 1954-1961 in ROK. +# From Kang Seonghoon (2018-04-29): +# North Korea will revert its time zone from UTC+8:30 (PYT; Pyongyang +# Time) back to UTC+9 (KST; Korea Standard Time). +# +# From Seo Sanghyeon (2018-04-30): +# Rodong Sinmun 2018-04-30 announced Pyongyang Time transition plan. +# https://www.nknews.org/kcna/wp-content/uploads/sites/5/2018/04/rodong-2018-04-30.pdf +# ... the transition date is 2018-05-05 ... Citation should be Decree +# No. 2232 of April 30, 2018, of the Presidium of the Supreme People's +# Assembly, as published in Rodong Sinmun. +# From Tim Parenti (2018-04-29): +# It appears to be the front page story at the top in the right-most column. + # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Seoul 8:27:52 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 @@ -1994,7 +2007,8 @@ Zone Asia/Pyongyang 8:23:00 - LMT 1908 Apr 1 8:30 - KST 1912 Jan 1 9:00 - JST 1945 Aug 24 9:00 - KST 2015 Aug 15 00:00 - 8:30 - KST + 8:30 - KST 2018 May 5 + 9:00 - KST ############################################################################### @@ -2658,7 +2672,7 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # From Sharef Mustafa (2018-03-16): # Palestine summer time will start on Mar 24th 2018 by advancing the # clock by 60 minutes as per Palestinian cabinet decision published on -# the offical website, though the decree did not specify the exact +# the official website, though the decree did not specify the exact # time of the time shift. # http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817 # Modified: stable/11/contrib/tzdata/australasia ============================================================================== --- stable/11/contrib/tzdata/australasia Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/australasia Mon May 7 06:58:19 2018 (r333312) @@ -1085,6 +1085,15 @@ Zone Pacific/Wallis 12:15:20 - LMT 1901 # (1999-09-27) writes that Giles Meteorological Station uses # South Australian time even though it's located in Western Australia. +# From Paul Eggert (2018-04-01): +# The Guardian Express of Perth, Australia reported today that the +# government decided to advance the clocks permanently on January 1, +# 2019, from UT +08 to UT +09. The article noted that an exemption +# would be made for people aged 61 and over, who "can apply in writing +# to have the extra hour of sunshine removed from their area." See: +# Daylight saving coming to WA in 2019. Guardian Express. 2018-04-01. +# https://www.communitynews.com.au/guardian-express/news/exclusive-daylight-savings-coming-wa-summer-2018/ + # Queensland # From Paul Eggert (2018-02-26): Modified: stable/11/contrib/tzdata/europe ============================================================================== --- stable/11/contrib/tzdata/europe Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/europe Mon May 7 06:58:19 2018 (r333312) @@ -528,13 +528,13 @@ Link Europe/London Europe/Isle_of_Man # summer and negative daylight saving time in winter. It is for when # negative SAVE values are used. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -#Rule Eire 1971 only - Oct 31 2:00u -1:00 GMT -#Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 IST -#Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 GMT -#Rule Eire 1981 max - Mar lastSun 1:00u 0 IST -#Rule Eire 1981 1989 - Oct Sun>=23 1:00u -1:00 GMT -#Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 GMT -#Rule Eire 1996 max - Oct lastSun 1:00u -1:00 GMT +Rule Eire 1971 only - Oct 31 2:00u -1:00 - +Rule Eire 1972 1980 - Mar Sun>=16 2:00u 0 - +Rule Eire 1972 1980 - Oct Sun>=23 2:00u -1:00 - +Rule Eire 1981 max - Mar lastSun 1:00u 0 - +Rule Eire 1981 1989 - Oct Sun>=23 1:00u -1:00 - +Rule Eire 1990 1995 - Oct Sun>=22 1:00u -1:00 - +Rule Eire 1996 max - Oct lastSun 1:00u -1:00 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 @@ -548,11 +548,11 @@ Zone Europe/Dublin -0:25:00 - LMT 1880 Aug 2 0:00 - GMT 1948 Apr 18 2:00s 0:00 GB-Eire GMT/IST 1968 Oct 27 # The next line is for when negative SAVE values are used. -# 1:00 Eire IST/GMT + 1:00 Eire IST/GMT # These three lines are for when SAVE values are always nonnegative. - 1:00 - IST 1971 Oct 31 2:00u - 0:00 GB-Eire GMT/IST 1996 - 0:00 EU GMT/IST +# 1:00 - IST 1971 Oct 31 2:00u +# 0:00 GB-Eire GMT/IST 1996 +# 0:00 EU GMT/IST ############################################################################### @@ -970,18 +970,30 @@ Zone Europe/Sofia 1:33:16 - LMT 1880 # Please see the 'asia' file for Asia/Nicosia. # Czech Republic / Czechia +# +# From Paul Eggert (2018-04-15): +# The source for Czech data is: Kdy začíná a končí letní čas. 2018-04-15. +# https://kalendar.beda.cz/kdy-zacina-a-konci-letni-cas +# We know of no English-language name for historical Czech winter time; +# abbreviate it as "GMT", as it happened to be GMT. +# # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Czech 1945 only - Apr 8 2:00s 1:00 S -Rule Czech 1945 only - Nov 18 2:00s 0 - +Rule Czech 1945 only - Apr Mon>=1 2:00s 1:00 S +Rule Czech 1945 only - Oct 1 2:00s 0 - Rule Czech 1946 only - May 6 2:00s 1:00 S Rule Czech 1946 1949 - Oct Sun>=1 2:00s 0 - -Rule Czech 1947 only - Apr 20 2:00s 1:00 S -Rule Czech 1948 only - Apr 18 2:00s 1:00 S +Rule Czech 1947 1948 - Apr Sun>=15 2:00s 1:00 S Rule Czech 1949 only - Apr 9 2:00s 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Prague 0:57:44 - LMT 1850 0:57:44 - PMT 1891 Oct # Prague Mean Time - 1:00 C-Eur CE%sT 1944 Sep 17 2:00s + 1:00 C-Eur CE%sT 1945 May 9 + 1:00 Czech CE%sT 1946 Dec 1 3:00 +# Vanguard section, for zic and other parsers that support negative DST. + 1:00 -1:00 GMT 1947 Feb 23 2:00 +# Rearguard section, for parsers that do not support negative DST. +# 0:00 - GMT 1947 Feb 23 2:00 +# End of rearguard section. 1:00 Czech CE%sT 1979 1:00 EU CE%sT # Use Europe/Prague also for Slovakia. @@ -2016,7 +2028,7 @@ Rule Neth 1938 1939 - May 15 2:00s 1:00 S Rule Neth 1945 only - Apr 2 2:00s 1:00 S Rule Neth 1945 only - Sep 16 2:00s 0 - # -# Amsterdam Mean Time was +00:19:32.13 exactly, but the .13 is omitted +# Amsterdam Mean Time was +00:19:32.13, but the .13 is omitted # below because the current format requires GMTOFF to be an integer. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Europe/Amsterdam 0:19:32 - LMT 1835 Modified: stable/11/contrib/tzdata/theory.html ============================================================================== --- stable/11/contrib/tzdata/theory.html Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/theory.html Mon May 7 06:58:19 2018 (r333312) @@ -32,7 +32,7 @@ all computer-based clocks that track civil time. It organizes time zone and daylight saving time data by partitioning the world into regions -whose clocks all agree about timestamps that occur after the of the POSIX Epoch (1970-01-01 00:00:00 backzone that is distributed along with the database proper, this file is less reliable and does not necessarily follow database guidelines. @@ -68,7 +68,7 @@ standard for UNIX-like systems. As of this writing, the current edition of POSIX is: The Open -Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 +Group Base Specifications Issue 7, IEEE Std 1003.1-2017, 2018 Edition. Because the database's scope encompasses real-world changes to civil timekeeping, its model for describing time is more complex than the @@ -79,7 +79,7 @@ flip back and forth between two alternatives, and the can change at times. Whether and when a tz region changes its clock, and even the region's notional base offset from UTC, are variable. -It doesn't even really make sense to talk about a region's +It does not always make sense to talk about a region's "base offset", since it is not necessarily a single number.

@@ -92,8 +92,8 @@ Each tz region has a unique corresponds to a set of time zone rules. Inexperienced users are not expected to select these names unaided. Distributors should provide documentation and/or a simple selection -interface that explains the names; for one example, see the 'tzselect' -program in the tz code. +interface that explains the names; for one example, see the +tzselect program in the tz code. The Unicode Common Locale Data Repository contains data that may be useful for other selection interfaces. @@ -137,6 +137,9 @@ region. North and South America share the same area, 'America'. Typical names are 'Africa/Cairo', 'America/New_York', and 'Pacific/Honolulu'. +Some names are further qualified to help avoid confusion; for example, +'America/Indiana/Petersburg' distinguishes Petersburg, +Indiana from other Petersburgs in America.

@@ -159,7 +162,8 @@ in decreasing order of importance: TZ strings. A file name component must not exceed 14 characters or start with '-'. - E.g., prefer 'Brunei' to 'Bandar_Seri_Begawan'. + E.g., prefer Asia/Brunei to + Asia/Bandar_Seri_Begawan. Exceptions: see the discussion of legacy names below.

  • @@ -177,8 +181,8 @@ in decreasing order of importance: name AB (ignoring case), then B must not start with '/', as a regular file cannot have the same name as a directory in POSIX. - For example, 'America/New_York' precludes - 'America/New_York/Bronx'. + For example, America/New_York precludes + America/New_York/Bronx.
  • Uninhabited regions like the North Pole and Bouvet Island @@ -193,50 +197,56 @@ in decreasing order of importance:
  • If all the clocks in a region have agreed since 1970, - don't bother to include more than one location + do not bother to include more than one location even if subregions' clocks disagreed before 1970. Otherwise these tables would become annoyingly large.
  • If a name is ambiguous, use a less ambiguous alternative; e.g., many cities are named San José and Georgetown, so - prefer 'Costa_Rica' to 'San_Jose' and - 'Guyana' to 'Georgetown'. + prefer America/Costa_Rica to + America/San_Jose and America/Guyana + to America/Georgetown.
  • Keep locations compact. Use cities or small islands, not countries or regions, so that any future changes do not split individual locations into different tz regions. - E.g., prefer 'Paris' to 'France', since + E.g., prefer Europe/Paris to Europe/France, + since France has had multiple time zones.
  • - Use mainstream English spelling, e.g., prefer 'Rome' - to 'Roma', and prefer 'Athens' to the - Greek 'Αθήνα' or the Romanized 'Athína'. + Use mainstream English spelling, e.g., prefer + Europe/Rome to Europe/Roma, and + prefer Europe/Athens to the Greek + Europe/Αθήνα or the Romanized + Europe/Athína. The POSIX file name restrictions encourage this guideline.
  • Use the most populous among locations in a region, - e.g., prefer 'Shanghai' to - 'Beijing'. + e.g., prefer Asia/Shanghai to + Asia/Beijing. Among locations with similar populations, pick the best-known - location, e.g., prefer 'Rome' to - 'Milan'. + location, e.g., prefer Europe/Rome to + Europe/Milan.
  • - Use the singular form, e.g., prefer 'Canary' to - 'Canaries'. + Use the singular form, e.g., prefer Atlantic/Canary to + Atlantic/Canaries.
  • Omit common suffixes like '_Islands' and '_City', unless that would lead to ambiguity. - E.g., prefer 'Cayman' to - 'Cayman_Islands' and 'Guatemala' to - 'Guatemala_City', but prefer - 'Mexico_City' to 'Mexico' + E.g., prefer America/Cayman to + America/Cayman_Islands and + America/Guatemala to + America/Guatemala_City, but prefer + America/Mexico_City to + America/Mexico because the country of Mexico has several time zones.
  • @@ -245,13 +255,14 @@ in decreasing order of importance:
  • Omit '.' from abbreviations in names. - E.g., prefer 'St_Helena' to 'St._Helena'. + E.g., prefer Atlantic/St_Helena to + Atlantic/St._Helena.
  • Do not change established names if they only marginally violate the above guidelines. - For example, don't change the existing name 'Rome' to - 'Milan' merely because Milan's population has grown + For example, do not change the existing name Europe/Rome to + Europe/Milan merely because Milan's population has grown to be somewhat greater than Rome's.
  • @@ -318,8 +329,10 @@ in decreasing order of importance: Use three to six characters that are ASCII alphanumerics or '+' or '-'. Previous editions of this database also used characters like - ' ' and '?', but these characters have a - special meaning to the shell and cause commands like + space and '?', but these characters have a + special meaning to the + UNIX shell + and cause commands like 'set `date`' to have unexpected effects. @@ -688,7 +701,7 @@ href="https://www.dissentmagazine.org/blog/booked-a-gl subsecond accuracy is needed.
  • - Civil time was not based on atomic time before 1972, and we don't + Civil time was not based on atomic time before 1972, and we do not know the history of earth's rotation accurately enough to map tzsetwall; - if such code is moved to "old" systems that don't - provide tzsetwall, you won't be able to generate an + if such code is moved to "old" systems that do not + provide tzsetwall, you will not be able to generate an executable program. (These functions also arrange for local wall clock time to be used if tzset is called – directly or - indirectly – and there's no TZ environment + indirectly – and there is no TZ environment variable; portable applications should not, however, rely on this - behavior since it's not the way SVR2 systems behave.) + behavior since it is not the way SVR2 + systems behave.)
  • Negative time_t values are supported, on systems @@ -1040,7 +1055,7 @@ The vestigial APIs are:
  • The 7th Edition UNIX timezone function is not present in this - package; it's impossible to reliably map timezone's + package; it is impossible to reliably map timezone's arguments (a "minutes west of GMT" value and a "daylight saving time in effect" flag) to a time zone abbreviation, and we refuse to guess. @@ -1052,7 +1067,9 @@ The vestigial APIs are: zone abbreviation to use.
  • - The 4.2BSD gettimeofday function is not + The 4.2BSD + gettimeofday function is not used in this package. This formerly let users obtain the current UTC offset and DST flag, but this functionality was removed in @@ -1061,7 +1078,7 @@ The vestigial APIs are:
  • In SVR2, time conversion fails for near-minimum or near-maximum time_t values when doing conversions - for places that don't use UT. + for places that do not use UT. This package takes care to do these conversions correctly. A comment in the source code tells how to get compatibly wrong results. @@ -1155,10 +1172,10 @@ based on guesswork and these guesses may be corrected Calendrical issues are a bit out of scope for a time zone database, but they indicate the sort of problems that we would run into if we extended the time zone database further into the past. -An excellent resource in this area is Nachum Dershowitz and Edward M. -Reingold, Calendrical -Calculations: Third Edition, Cambridge University Press (2008). +An excellent resource in this area is Edward M. Reingold +and Nachum Dershowitz, Calendrical +Calculations: The Ultimate Edition, Cambridge University Press (2018). Other information and sources are given in the file 'calendars' in the tz distribution. They sometimes disagree. @@ -1170,11 +1187,11 @@ They sometimes disagree.

    Some people's work schedules use Mars time. -Jet Propulsion Laboratory (JPL) coordinators have kept Mars time on -and off at least since 1997 for the +Jet Propulsion Laboratory (JPL) coordinators kept Mars time on +and off during the Mars Pathfinder mission. -Some of their family members have also adapted to Mars time. +Some of their family members also adapted to Mars time. Dozens of special Mars watches were built for JPL workers who kept Mars time during the Mars Exploration Rovers mission (2004). These timepieces look like normal Seikos and Citizens but use Mars @@ -1262,7 +1279,7 @@ Sources for time on other planets: Jia-Rui Chong, "Workdays Fit for a Martian", Los Angeles Times - (2004-01-14), pp A1, A20-A21. + (2004-01-14), pp A1, A20–A21.

  • Tom Chmielewski, Modified: stable/11/contrib/tzdata/version ============================================================================== --- stable/11/contrib/tzdata/version Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/version Mon May 7 06:58:19 2018 (r333312) @@ -1 +1 @@ -2018d +2018e Modified: stable/11/contrib/tzdata/ziguard.awk ============================================================================== --- stable/11/contrib/tzdata/ziguard.awk Sun May 6 21:29:29 2018 (r333311) +++ stable/11/contrib/tzdata/ziguard.awk Mon May 7 06:58:19 2018 (r333312) @@ -13,20 +13,31 @@ # rearguard format. BEGIN { - dst_type["vanguard.zi"] = 1 - dst_type["main.zi"] = 1 - dst_type["rearguard.zi"] = 1 + dataform_type["vanguard"] = 1 + dataform_type["main"] = 1 + dataform_type["rearguard"] = 1 - # The command line should set OUTFILE to the name of the output file. - if (!dst_type[outfile]) exit 1 - vanguard = outfile == "vanguard.zi" + # The command line should set DATAFORM. + if (!dataform_type[DATAFORM]) exit 1 + vanguard = DATAFORM == "vanguard" } /^Zone/ { zone = $2 } -outfile != "main.zi" { +DATAFORM != "main" { in_comment = /^#/ + uncomment = comment_out = 0 + # If the line should differ due to Czechoslovakia using negative SAVE values, + # uncomment the desired version and comment out the undesired one. + if (zone == "Europe/Prague" && /1947 Feb 23/) { + if (($(in_comment + 2) != "-") == vanguard) { + uncomment = in_comment + } else { + comment_out = !in_comment + } + } + # If this line should differ due to Ireland using negative SAVE values, # uncomment the desired version and comment out the undesired one. Rule_Eire = /^#?Rule[\t ]+Eire[\t ]/ @@ -37,10 +48,37 @@ outfile != "main.zi" { if ((Rule_Eire \ || (Zone_Dublin_post_1968 && $(in_comment + 3) == "IST/GMT")) \ == vanguard) { - sub(/^#/, "") - } else if (/^[^#]/) { - sub(/^/, "#") + uncomment = in_comment + } else { + comment_out = !in_comment } + } + + # If this line should differ due to Namibia using Rule SAVE suffixes, + # uncomment the desired version and comment out the undesired one. + Rule_Namibia = /^#?Rule[\t ]+Namibia[\t ]/ + Zone_using_Namibia_rule \ + = (zone == "Africa/Windhoek" \ + && ($(in_comment + 2) == "Namibia" \ + || (1994 <= $(in_comment + 4) && $(in_comment + 4) <= 2017) \ + || in_comment + 3 == NF)) + if (Rule_Namibia || Zone_using_Namibia_rule) { + if ((Rule_Namibia \ + ? ($(in_comment + 9) ~ /^-/ \ + || ($(in_comment + 9) == 0 && $(in_comment + 10) == "CAT")) \ + : $(in_comment + 1) == "2:00" && $(in_comment + 2) == "Namibia") \ + == vanguard) { + uncomment = in_comment + } else { + comment_out = !in_comment + } + } + + if (uncomment) { + sub(/^#/, "") + } + if (comment_out) { + sub(/^/, "#") } } From owner-svn-src-stable-11@freebsd.org Mon May 7 15:07:27 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 72612FB4298; Mon, 7 May 2018 15:07:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 198F17C2B8; Mon, 7 May 2018 15:07:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 140B51CE9D; Mon, 7 May 2018 15:07:27 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47F7QpY035027; Mon, 7 May 2018 15:07:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47F7QPX035026; Mon, 7 May 2018 15:07:26 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <201805071507.w47F7QPX035026@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 7 May 2018 15:07:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333323 - stable/11/sys/compat/linuxkpi/common/include/linux X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/compat/linuxkpi/common/include/linux X-SVN-Commit-Revision: 333323 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 15:07:27 -0000 Author: hselasky Date: Mon May 7 15:07:26 2018 New Revision: 333323 URL: https://svnweb.freebsd.org/changeset/base/333323 Log: MFC r333108: Define USEC_PER_MSEC and USEC_PER_SEC in the LinuxKPI. Approved by: re (marius) Sponsored by: Mellanox Technologies Modified: stable/11/sys/compat/linuxkpi/common/include/linux/time.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/compat/linuxkpi/common/include/linux/time.h ============================================================================== --- stable/11/sys/compat/linuxkpi/common/include/linux/time.h Mon May 7 14:44:55 2018 (r333322) +++ stable/11/sys/compat/linuxkpi/common/include/linux/time.h Mon May 7 15:07:26 2018 (r333323) @@ -32,6 +32,9 @@ #define NSEC_PER_MSEC 1000000L #define NSEC_PER_SEC 1000000000L +#define USEC_PER_MSEC 1000L +#define USEC_PER_SEC 1000000L + #include #include From owner-svn-src-stable-11@freebsd.org Mon May 7 16:21:54 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C552FB5E9A; Mon, 7 May 2018 16:21:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 099A86CAD6; Mon, 7 May 2018 16:21:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 046761DBCF; Mon, 7 May 2018 16:21:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47GLr6O074070; Mon, 7 May 2018 16:21:53 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47GLr8b074069; Mon, 7 May 2018 16:21:53 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805071621.w47GLr8b074069@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 7 May 2018 16:21:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333326 - stable/11/release/tools X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/tools X-SVN-Commit-Revision: 333326 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 16:21:54 -0000 Author: gjb Date: Mon May 7 16:21:53 2018 New Revision: 333326 URL: https://svnweb.freebsd.org/changeset/base/333326 Log: MFC r333262, r333264: r333262: Ensure the ports and src trees are available on GCE images, satisfying a requirement to allow FreeBSD to be considered a top-tier supported OS in Google Compute Engine. r333264: Fix a typo. Approved by: re (kib) Sponsored by: The FreeBSD Foundation Modified: stable/11/release/tools/gce.conf Directory Properties: stable/11/ (props changed) Modified: stable/11/release/tools/gce.conf ============================================================================== --- stable/11/release/tools/gce.conf Mon May 7 15:24:03 2018 (r333325) +++ stable/11/release/tools/gce.conf Mon May 7 16:21:53 2018 (r333326) @@ -85,6 +85,29 @@ debug.trace_on_panic=1 debug.debugger_on_panic=0 EOF + # To meet GCE marketplace requirements, extract the src.txz and + # ports.txz distributions to the target virtual machine disk image + # and fetch the sources for the third-party software installed on + # the image. + if [ ! -c "${DESTDIR}/dev/null" ]; then + mkdir -p ${DESTDIR}/dev + mount -t devfs devfs ${DESTDIR}/dev + fi + if [ -e "${DESTDIR}/../ftp/src.txz" ]; then + tar fxJ ${DESTDIR}/../ftp/src.txz -C ${DESTDIR} + fi + if [ -e "${DESTDIR}/../ftp/ports.txz" ]; then + tar fxJ ${DESTDIR}/../ftp/ports.txz -C ${DESTDIR} + _INSTALLED_PACKAGES=$(chroot ${DESTDIR} pkg info -o -q -a) + for PACKAGE in ${_INSTALLED_PACKAGES}; do + chroot ${DESTDIR} \ + make -C /usr/ports/${PACKAGE} fetch + done + fi + if [ -c "${DESTDIR}/dev/null" ]; then + umount_loop ${DESTDIR}/dev + fi + ## XXX: Verify this is needed. I do not see this requirement ## in the docs, and it impairs the ability to boot-test a copy ## of the image prior to packaging for upload to GCE. From owner-svn-src-stable-11@freebsd.org Mon May 7 20:41:25 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9C54FBC5F6; Mon, 7 May 2018 20:41:24 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 97FFC68970; Mon, 7 May 2018 20:41:24 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 79899205CA; Mon, 7 May 2018 20:41:24 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47KfOHQ008645; Mon, 7 May 2018 20:41:24 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47KfOsk008644; Mon, 7 May 2018 20:41:24 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201805072041.w47KfOsk008644@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Mon, 7 May 2018 20:41:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333331 - stable/11/sys/dev/ixl X-SVN-Group: stable-11 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: stable/11/sys/dev/ixl X-SVN-Commit-Revision: 333331 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 20:41:25 -0000 Author: erj Date: Mon May 7 20:41:24 2018 New Revision: 333331 URL: https://svnweb.freebsd.org/changeset/base/333331 Log: MFC r319797, r320972: r319797: ixl(4)/ixlv(4): Fix some busdma tags and improper map NULL. r320972: ixl(4)/ixlv(4): Stop leaking every busdma entry in receive path Approved by: re (marius) Modified: stable/11/sys/dev/ixl/ixl_txrx.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/ixl/ixl_txrx.c ============================================================================== --- stable/11/sys/dev/ixl/ixl_txrx.c Mon May 7 20:38:09 2018 (r333330) +++ stable/11/sys/dev/ixl/ixl_txrx.c Mon May 7 20:41:24 2018 (r333331) @@ -428,7 +428,7 @@ ixl_allocate_tx_data(struct ixl_queue *que) /* * Setup DMA descriptor areas. */ - if ((error = bus_dma_tag_create(NULL, /* parent */ + if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ @@ -445,7 +445,7 @@ ixl_allocate_tx_data(struct ixl_queue *que) } /* Make a special tag for TSO */ - if ((error = bus_dma_tag_create(NULL, /* parent */ + if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ @@ -930,7 +930,6 @@ ixl_txeof(struct ixl_queue *que) buf->map); m_freem(buf->m_head); buf->m_head = NULL; - buf->map = NULL; } buf->eop_index = -1; @@ -1093,7 +1092,7 @@ ixl_allocate_rx_data(struct ixl_queue *que) return (error); } - if ((error = bus_dma_tag_create(NULL, /* parent */ + if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ @@ -1109,7 +1108,7 @@ ixl_allocate_rx_data(struct ixl_queue *que) return (error); } - if ((error = bus_dma_tag_create(NULL, /* parent */ + if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ @@ -1575,6 +1574,18 @@ ixl_rxeof(struct ixl_queue *que, int count) vtag = le16toh(cur->wb.qword0.lo_dword.l2tag1); else vtag = 0; + + /* Remove device access to the rx buffers. */ + if (rbuf->m_head != NULL) { + bus_dmamap_sync(rxr->htag, rbuf->hmap, + BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(rxr->htag, rbuf->hmap); + } + if (rbuf->m_pack != NULL) { + bus_dmamap_sync(rxr->ptag, rbuf->pmap, + BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(rxr->ptag, rbuf->pmap); + } /* ** Make sure bad packets are discarded, From owner-svn-src-stable-11@freebsd.org Mon May 7 21:26:07 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1A1FFFBD64C; Mon, 7 May 2018 21:26:07 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id ABE5271987; Mon, 7 May 2018 21:26:06 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9DD4020D6D; Mon, 7 May 2018 21:26:06 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47LQ6ZK029741; Mon, 7 May 2018 21:26:06 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47LQ6Zm029739; Mon, 7 May 2018 21:26:06 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201805072126.w47LQ6Zm029739@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Mon, 7 May 2018 21:26:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333336 - in stable/11: sbin/ifconfig sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: in stable/11: sbin/ifconfig sys/net X-SVN-Commit-Revision: 333336 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 21:26:07 -0000 Author: erj Date: Mon May 7 21:26:05 2018 New Revision: 333336 URL: https://svnweb.freebsd.org/changeset/base/333336 Log: MFC r326571: ifconfig(8): Display extended compliance code string for SFP transceivers Approved by: re (marius, gjb) Modified: stable/11/sbin/ifconfig/sfp.c stable/11/sys/net/sff8472.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/ifconfig/sfp.c ============================================================================== --- stable/11/sbin/ifconfig/sfp.c Mon May 7 21:09:21 2018 (r333335) +++ stable/11/sbin/ifconfig/sfp.c Mon May 7 21:26:05 2018 (r333336) @@ -69,7 +69,7 @@ struct _nv { const char *find_value(struct _nv *x, int value); const char *find_zero_bit(struct _nv *x, int value, int sz); -/* SFF-8472 Rev. 11.4 table 3.4: Connector values */ +/* SFF-8024 Rev. 4.1 Table 4-3: Connector Types */ static struct _nv conn[] = { { 0x00, "Unknown" }, { 0x01, "SC" }, @@ -87,7 +87,8 @@ static struct _nv conn[] = { { 0x20, "HSSDC II" }, { 0x21, "Copper pigtail" }, { 0x22, "RJ45" }, - { 0x23, "No separate connector" }, /* SFF-8436 */ + { 0x23, "No separable connector" }, + { 0x24, "MXC 2x16" }, { 0, NULL } }; @@ -183,10 +184,17 @@ static struct _nv eth_1040g[] = { }; #define SFF_8636_EXT_COMPLIANCE 0x80 -/* SFF-8024 Rev. 3.4 table 4.4: Extended Specification Compliance */ +/* SFF-8024 Rev. 4.2 table 4-4: Extended Specification Compliance */ static struct _nv eth_extended_comp[] = { { 0xFF, "Reserved" }, - { 0x1A, "2 lambda DWDM 100G" }, + { 0x21, "100G PAM4 BiDi" }, + { 0x20, "100G SWDM4" }, + { 0x1F, "40G SWDM4" }, + { 0x1E, "2.5GBASE-T" }, + { 0x1D, "5GBASE-T" }, + { 0x1C, "10GBASE-T Short Reach" }, + { 0x1B, "100G 1550nm WDM" }, + { 0x1A, "100GE-DWDM2" }, { 0x19, "100G ACC or 25GAUI C2M ACC" }, { 0x18, "100G AOC or 25GAUI C2M AOC" }, { 0x17, "100G CLR4" }, @@ -198,23 +206,24 @@ static struct _nv eth_extended_comp[] = { { 0x11, "4 x 10GBASE-SR" }, { 0x10, "40GBASE-ER4" }, { 0x0F, "Reserved" }, + { 0x0E, "Reserved" }, { 0x0D, "25GBASE-CR CA-N" }, { 0x0C, "25GBASE-CR CA-S" }, { 0x0B, "100GBASE-CR4 or 25GBASE-CR CA-L" }, { 0x0A, "Reserved" }, - { 0x09, "100G CWDM4 MSA without FEC" }, - { 0x08, "100G ACC (Active Copper Cable)" }, + { 0x09, "Obsolete" }, + { 0x08, "100G ACC (Active Copper Cable) or 25GAUI C2M ACC" }, { 0x07, "100G PSM4 Parallel SMF" }, - { 0x06, "100G CWDM4 MSA with FEC" }, + { 0x06, "100G CWDM4" }, { 0x05, "100GBASE-SR10" }, - { 0x04, "100GBASE-ER4" }, - { 0x03, "100GBASE-LR4" }, - { 0x02, "100GBASE-SR4" }, - { 0x01, "100G AOC (Active Optical Cable) or 25GAUI C2M ACC" }, + { 0x04, "100GBASE-ER4 or 25GBASE-ER" }, + { 0x03, "100GBASE-LR4 or 25GBASE-LR" }, + { 0x02, "100GBASE-SR4 or 25GBASE-SR" }, + { 0x01, "100G AOC (Active Optical Cable) or 25GAUI C2M AOC" }, { 0x00, "Unspecified" } }; -/* SFF-8636 Rev. 2.5 table 6.3: Revision compliance */ +/* SFF-8636 Rev. 2.9 table 6.3: Revision compliance */ static struct _nv rev_compl[] = { { 0x1, "SFF-8436 rev <=4.8" }, { 0x2, "SFF-8436 rev <=4.8" }, @@ -222,7 +231,8 @@ static struct _nv rev_compl[] = { { 0x4, "SFF-8636 rev <=1.4" }, { 0x5, "SFF-8636 rev <=1.5" }, { 0x6, "SFF-8636 rev <=2.0" }, - { 0x7, "SFF-8636 rev <=2.5" }, + { 0x7, "SFF-8636 rev <=2.7" }, + { 0x8, "SFF-8636 rev >=2.8" }, { 0x0, "Unspecified" } }; @@ -378,17 +388,20 @@ get_sfp_transceiver_class(struct i2c_info *ii, char *b const char *tech_class; uint8_t code; - unsigned char qbuf[8]; - read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START, 8, (uint8_t *)qbuf); - - /* Check 10G Ethernet/IB first */ - read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START, 1, &code); - tech_class = find_zero_bit(eth_10g, code, 1); - if (tech_class == NULL) { - /* No match. Try Ethernet 1G */ - read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START + 3, - 1, (caddr_t)&code); - tech_class = find_zero_bit(eth_compat, code, 1); + /* Use extended compliance code if it's valid */ + read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS, 1, &code); + if (code != 0) + tech_class = find_value(eth_extended_comp, code); + else { + /* Next, check 10G Ethernet/IB CCs */ + read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START, 1, &code); + tech_class = find_zero_bit(eth_10g, code, 1); + if (tech_class == NULL) { + /* No match. Try Ethernet 1G */ + read_i2c(ii, SFF_8472_BASE, SFF_8472_TRANS_START + 3, + 1, (caddr_t)&code); + tech_class = find_zero_bit(eth_compat, code, 1); + } } if (tech_class == NULL) Modified: stable/11/sys/net/sff8472.h ============================================================================== --- stable/11/sys/net/sff8472.h Mon May 7 21:09:21 2018 (r333335) +++ stable/11/sys/net/sff8472.h Mon May 7 21:26:05 2018 (r333336) @@ -377,7 +377,7 @@ enum { /* * Table 3.2 Identifier values. - * Identifier constants has taken from SFF-8024 rev 2.9 table 4.1 + * Identifier constants has taken from SFF-8024 rev 4.2 table 4.1 * (as referenced by table 3.2 footer) * */ enum { @@ -398,13 +398,15 @@ enum { SFF_8024_ID_CXP = 0xE, /* CXP */ SFF_8024_ID_HD4X = 0xF, /* Shielded Mini Multilane HD 4X */ SFF_8024_ID_HD8X = 0x10, /* Shielded Mini Multilane HD 8X */ - SFF_8024_ID_QSFP28 = 0x11, /* QSFP28 */ + SFF_8024_ID_QSFP28 = 0x11, /* QSFP28 or later */ SFF_8024_ID_CXP2 = 0x12, /* CXP2 (aka CXP28) */ SFF_8024_ID_CDFP = 0x13, /* CDFP (Style 1/Style 2) */ SFF_8024_ID_SMM4 = 0x14, /* Shielded Mini Multilate HD 4X Fanout */ SFF_8024_ID_SMM8 = 0x15, /* Shielded Mini Multilate HD 8X Fanout */ SFF_8024_ID_CDFP3 = 0x16, /* CDFP (Style3) */ - SFF_8024_ID_LAST = SFF_8024_ID_CDFP3 + SFF_8024_ID_MICROQSFP = 0x17, /* microQSFP */ + SFF_8024_ID_QSFP_DD = 0x18, /* QSFP-DD 8X Pluggable Transceiver */ + SFF_8024_ID_LAST = SFF_8024_ID_QSFP_DD }; static const char *sff_8024_id[SFF_8024_ID_LAST + 1] = {"Unknown", @@ -429,7 +431,9 @@ static const char *sff_8024_id[SFF_8024_ID_LAST + 1] = "CDFP", "SMM4", "SMM8", - "CDFP3"}; + "CDFP3", + "microQSFP", + "QSFP-DD"}; /* Keep compatibility with old definitions */ #define SFF_8472_ID_UNKNOWN SFF_8024_ID_UNKNOWN From owner-svn-src-stable-11@freebsd.org Mon May 7 21:42:25 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 68E78FBDED6; Mon, 7 May 2018 21:42:25 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1655275A16; Mon, 7 May 2018 21:42:25 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 110A721096; Mon, 7 May 2018 21:42:25 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47LgPUD041012; Mon, 7 May 2018 21:42:25 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47LgN1R041002; Mon, 7 May 2018 21:42:23 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805072142.w47LgN1R041002@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Mon, 7 May 2018 21:42:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333338 - in stable/11/sys: dev/bnxt kern net sys X-SVN-Group: stable-11 X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: in stable/11/sys: dev/bnxt kern net sys X-SVN-Commit-Revision: 333338 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 21:42:25 -0000 Author: shurd Date: Mon May 7 21:42:22 2018 New Revision: 333338 URL: https://svnweb.freebsd.org/changeset/base/333338 Log: Merge iflib changes to 11-STABLE MFC r300147, r300153, r300154, r300215, r301563, r301567, r302372, r307560, r307562, r307563, r307568, r308792, r311039, r311837, r312755, r312903, r312905, r312924, r313248, r315217, r315245, r315288, r316278, r316281, r316502, r316596, r317756, r319917, r319921, r319984, r319989, r320059, r320609, r320611, r321253, r321629, r321630, r322337, r322338, r322823, r323077, r323825, r323876, r323879, r323887, r323941, r323942, r323943, r323944, r323954, r324038, r324318, r324937, r325166, r325167, r325168, r325201, r325241, r325245, r325487, r325494, r325901, r326033, r326369, r326370, r326432, r326577, r326578, r326702, r326706, r326775, r327013, r327017, r327052, r327072, r327098, r327242, r327244, r327247, r329651, r329742, r330289, r330715, r330721, r332419, r332422, r332729 Reviewed by: sbruno Approved by: re (delphij@) Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15142 Modified: stable/11/sys/dev/bnxt/bnxt.h stable/11/sys/dev/bnxt/bnxt_hwrm.c stable/11/sys/dev/bnxt/bnxt_txrx.c stable/11/sys/dev/bnxt/if_bnxt.c stable/11/sys/kern/kern_cpuset.c stable/11/sys/kern/kern_intr.c stable/11/sys/kern/subr_gtaskqueue.c stable/11/sys/net/ifdi_if.m stable/11/sys/net/iflib.c stable/11/sys/net/iflib.h stable/11/sys/net/mp_ring.c stable/11/sys/sys/_task.h stable/11/sys/sys/cpuset.h stable/11/sys/sys/interrupt.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/bnxt/bnxt.h ============================================================================== --- stable/11/sys/dev/bnxt/bnxt.h Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/dev/bnxt/bnxt.h Mon May 7 21:42:22 2018 (r333338) @@ -203,6 +203,8 @@ __FBSDID("$FreeBSD$"); /* Chip info */ #define BNXT_TSO_SIZE UINT16_MAX +#define BNXT_MIN_FRAME_SIZE 52 /* Frames must be padded to this size for some A0 chips */ + /* NVRAM access */ enum bnxt_nvm_directory_type { BNX_DIR_TYPE_UNUSED = 0, @@ -427,6 +429,7 @@ struct bnxt_ring { uint32_t ring_size; /* Must be a power of two */ uint16_t id; /* Logical ID */ uint16_t phys_id; + struct bnxt_full_tpa_start *tpa_start; }; struct bnxt_cp_ring { @@ -552,7 +555,6 @@ struct bnxt_softc { struct sysctl_ctx_list hw_stats; struct sysctl_oid *hw_stats_oid; - struct bnxt_full_tpa_start *tpa_start; struct bnxt_ver_info *ver_info; struct bnxt_nvram_info *nvm_info; }; Modified: stable/11/sys/dev/bnxt/bnxt_hwrm.c ============================================================================== --- stable/11/sys/dev/bnxt/bnxt_hwrm.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/dev/bnxt/bnxt_hwrm.c Mon May 7 21:42:22 2018 (r333338) @@ -931,7 +931,7 @@ bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc, struc /* TODO: Calculate this based on ring size? */ req.max_agg_segs = htole16(3); /* Base this in the allocated TPA start size... */ - req.max_aggs = htole16(2); + req.max_aggs = htole16(7); /* * TODO: max_agg_timer? * req.mag_agg_timer = htole32(XXX); Modified: stable/11/sys/dev/bnxt/bnxt_txrx.c ============================================================================== --- stable/11/sys/dev/bnxt/bnxt_txrx.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/dev/bnxt/bnxt_txrx.c Mon May 7 21:42:22 2018 (r333338) @@ -48,17 +48,19 @@ __FBSDID("$FreeBSD$"); */ static int bnxt_isc_txd_encap(void *sc, if_pkt_info_t pi); -static void bnxt_isc_txd_flush(void *sc, uint16_t txqid, uint32_t pidx); -static int bnxt_isc_txd_credits_update(void *sc, uint16_t txqid, uint32_t cidx, - bool clear); +static void bnxt_isc_txd_flush(void *sc, uint16_t txqid, qidx_t pidx); +static int bnxt_isc_txd_credits_update(void *sc, uint16_t txqid, bool clear); -static void bnxt_isc_rxd_refill(void *sc, uint16_t rxqid, uint8_t flid, +static void bnxt_isc_rxd_refill(void *sc, if_rxd_update_t iru); + +/* uint16_t rxqid, uint8_t flid, uint32_t pidx, uint64_t *paddrs, caddr_t *vaddrs, uint16_t count, uint16_t buf_size); +*/ static void bnxt_isc_rxd_flush(void *sc, uint16_t rxqid, uint8_t flid, - uint32_t pidx); -static int bnxt_isc_rxd_available(void *sc, uint16_t rxqid, uint32_t idx, - int budget); + qidx_t pidx); +static int bnxt_isc_rxd_available(void *sc, uint16_t rxqid, qidx_t idx, + qidx_t budget); static int bnxt_isc_rxd_pkt_get(void *sc, if_rxd_info_t ri); static int bnxt_intr(void *sc); @@ -172,7 +174,7 @@ bnxt_isc_txd_encap(void *sc, if_pkt_info_t pi) } static void -bnxt_isc_txd_flush(void *sc, uint16_t txqid, uint32_t pidx) +bnxt_isc_txd_flush(void *sc, uint16_t txqid, qidx_t pidx) { struct bnxt_softc *softc = (struct bnxt_softc *)sc; struct bnxt_ring *tx_ring = &softc->tx_rings[txqid]; @@ -185,7 +187,7 @@ bnxt_isc_txd_flush(void *sc, uint16_t txqid, uint32_t } static int -bnxt_isc_txd_credits_update(void *sc, uint16_t txqid, uint32_t idx, bool clear) +bnxt_isc_txd_credits_update(void *sc, uint16_t txqid, bool clear) { struct bnxt_softc *softc = (struct bnxt_softc *)sc; struct bnxt_cp_ring *cpr = &softc->tx_cp_rings[txqid]; @@ -249,16 +251,30 @@ done: } static void -bnxt_isc_rxd_refill(void *sc, uint16_t rxqid, uint8_t flid, - uint32_t pidx, uint64_t *paddrs, - caddr_t *vaddrs, uint16_t count, uint16_t len) +bnxt_isc_rxd_refill(void *sc, if_rxd_update_t iru) { struct bnxt_softc *softc = (struct bnxt_softc *)sc; struct bnxt_ring *rx_ring; struct rx_prod_pkt_bd *rxbd; uint16_t type; uint16_t i; + uint16_t rxqid; + uint16_t count, len; + uint32_t pidx; + uint8_t flid; + uint64_t *paddrs; + caddr_t *vaddrs; + qidx_t *frag_idxs; + rxqid = iru->iru_qsidx; + count = iru->iru_count; + len = iru->iru_buf_size; + pidx = iru->iru_pidx; + flid = iru->iru_flidx; + vaddrs = iru->iru_vaddrs; + paddrs = iru->iru_paddrs; + frag_idxs = iru->iru_idxs; + if (flid == 0) { rx_ring = &softc->rx_rings[rxqid]; type = RX_PROD_PKT_BD_TYPE_RX_PROD_PKT; @@ -273,8 +289,8 @@ bnxt_isc_rxd_refill(void *sc, uint16_t rxqid, uint8_t rxbd[pidx].flags_type = htole16(type); rxbd[pidx].len = htole16(len); /* No need to byte-swap the opaque value */ - rxbd[pidx].opaque = ((rxqid & 0xff) << 24) | (flid << 16) - | pidx; + rxbd[pidx].opaque = (((rxqid & 0xff) << 24) | (flid << 16) + | (frag_idxs[i])); rxbd[pidx].addr = htole64(paddrs[i]); if (++pidx == rx_ring->ring_size) pidx = 0; @@ -284,7 +300,7 @@ bnxt_isc_rxd_refill(void *sc, uint16_t rxqid, uint8_t static void bnxt_isc_rxd_flush(void *sc, uint16_t rxqid, uint8_t flid, - uint32_t pidx) + qidx_t pidx) { struct bnxt_softc *softc = (struct bnxt_softc *)sc; struct bnxt_ring *rx_ring; @@ -310,12 +326,11 @@ bnxt_isc_rxd_flush(void *sc, uint16_t rxqid, uint8_t f } static int -bnxt_isc_rxd_available(void *sc, uint16_t rxqid, uint32_t idx, int budget) +bnxt_isc_rxd_available(void *sc, uint16_t rxqid, qidx_t idx, qidx_t budget) { struct bnxt_softc *softc = (struct bnxt_softc *)sc; struct bnxt_cp_ring *cpr = &softc->rx_cp_rings[rxqid]; struct rx_pkt_cmpl *rcp; - struct rx_tpa_start_cmpl *rtpa; struct rx_tpa_end_cmpl *rtpae; struct cmpl_base *cmp = (struct cmpl_base *)cpr->ring.vaddr; int avail = 0; @@ -324,7 +339,6 @@ bnxt_isc_rxd_available(void *sc, uint16_t rxqid, uint3 uint8_t ags; int i; uint16_t type; - uint8_t agg_id; for (;;) { NEXT_CP_CONS_V(&cpr->ring, cons, v_bit); @@ -374,18 +388,11 @@ bnxt_isc_rxd_available(void *sc, uint16_t rxqid, uint3 avail++; break; case CMPL_BASE_TYPE_RX_TPA_START: - rtpa = (void *)&cmp[cons]; - agg_id = (rtpa->agg_id & - RX_TPA_START_CMPL_AGG_ID_MASK) >> - RX_TPA_START_CMPL_AGG_ID_SFT; - softc->tpa_start[agg_id].low = *rtpa; NEXT_CP_CONS_V(&cpr->ring, cons, v_bit); CMPL_PREFETCH_NEXT(cpr, cons); if (!CMP_VALID(&cmp[cons], v_bit)) goto cmpl_invalid; - softc->tpa_start[agg_id].high = - ((struct rx_tpa_start_cmpl_hi *)cmp)[cons]; break; case CMPL_BASE_TYPE_RX_AGG: break; @@ -510,7 +517,7 @@ bnxt_pkt_get_tpa(struct bnxt_softc *softc, if_rxd_info /* Get the agg_id */ agg_id = (agend->agg_id & RX_TPA_END_CMPL_AGG_ID_MASK) >> RX_TPA_END_CMPL_AGG_ID_SFT; - tpas = &softc->tpa_start[agg_id]; + tpas = &(softc->rx_rings[ri->iri_qsidx].tpa_start[agg_id]); /* Extract from the first 16-byte BD */ if (le16toh(tpas->low.flags_type) & RX_TPA_START_CMPL_FLAGS_RSS_VALID) { @@ -530,8 +537,8 @@ bnxt_pkt_get_tpa(struct bnxt_softc *softc, if_rxd_info RX_TPA_END_CMPL_AGG_BUFS_SFT; ri->iri_nfrags = ags + 1; /* No need to byte-swap the opaque value */ - ri->iri_frags[0].irf_flid = (tpas->low.opaque >> 16) & 0xff; - ri->iri_frags[0].irf_idx = tpas->low.opaque & 0xffff; + ri->iri_frags[0].irf_flid = ((tpas->low.opaque >> 16) & 0xff); + ri->iri_frags[0].irf_idx = (tpas->low.opaque & 0xffff); ri->iri_frags[0].irf_len = le16toh(tpas->low.len); ri->iri_len = le16toh(tpas->low.len); @@ -567,8 +574,8 @@ bnxt_pkt_get_tpa(struct bnxt_softc *softc, if_rxd_info acp = &((struct rx_abuf_cmpl *)cpr->ring.vaddr)[cpr->cons]; /* No need to byte-swap the opaque value */ - ri->iri_frags[i].irf_flid = (acp->opaque >> 16) & 0xff; - ri->iri_frags[i].irf_idx = acp->opaque & 0xffff; + ri->iri_frags[i].irf_flid = ((acp->opaque >> 16) & 0xff); + ri->iri_frags[i].irf_idx = (acp->opaque & 0xffff); ri->iri_frags[i].irf_len = le16toh(acp->len); ri->iri_len += le16toh(acp->len); } @@ -576,8 +583,8 @@ bnxt_pkt_get_tpa(struct bnxt_softc *softc, if_rxd_info /* And finally, the empty BD at the end... */ ri->iri_nfrags++; /* No need to byte-swap the opaque value */ - ri->iri_frags[i].irf_flid = (agend->opaque >> 16) % 0xff; - ri->iri_frags[i].irf_idx = agend->opaque & 0xffff; + ri->iri_frags[i].irf_flid = ((agend->opaque >> 16) & 0xff); + ri->iri_frags[i].irf_idx = (agend->opaque & 0xffff); ri->iri_frags[i].irf_len = le16toh(agend->len); ri->iri_len += le16toh(agend->len); @@ -590,9 +597,12 @@ bnxt_isc_rxd_pkt_get(void *sc, if_rxd_info_t ri) { struct bnxt_softc *softc = (struct bnxt_softc *)sc; struct bnxt_cp_ring *cpr = &softc->rx_cp_rings[ri->iri_qsidx]; + struct cmpl_base *cmp_q = (struct cmpl_base *)cpr->ring.vaddr; struct cmpl_base *cmp; + struct rx_tpa_start_cmpl *rtpa; uint16_t flags_type; uint16_t type; + uint8_t agg_id; for (;;) { NEXT_CP_CONS_V(&cpr->ring, cpr->cons, cpr->v_bit); @@ -609,9 +619,18 @@ bnxt_isc_rxd_pkt_get(void *sc, if_rxd_info_t ri) case CMPL_BASE_TYPE_RX_TPA_END: return bnxt_pkt_get_tpa(softc, ri, cpr, flags_type); case CMPL_BASE_TYPE_RX_TPA_START: + rtpa = (void *)&cmp_q[cpr->cons]; + agg_id = (rtpa->agg_id & + RX_TPA_START_CMPL_AGG_ID_MASK) >> + RX_TPA_START_CMPL_AGG_ID_SFT; + softc->rx_rings[ri->iri_qsidx].tpa_start[agg_id].low = *rtpa; + NEXT_CP_CONS_V(&cpr->ring, cpr->cons, cpr->v_bit); ri->iri_cidx = RING_NEXT(&cpr->ring, ri->iri_cidx); CMPL_PREFETCH_NEXT(cpr, cpr->cons); + + softc->rx_rings[ri->iri_qsidx].tpa_start[agg_id].high = + ((struct rx_tpa_start_cmpl_hi *)cmp_q)[cpr->cons]; break; default: device_printf(softc->dev, Modified: stable/11/sys/dev/bnxt/if_bnxt.c ============================================================================== --- stable/11/sys/dev/bnxt/if_bnxt.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/dev/bnxt/if_bnxt.c Mon May 7 21:42:22 2018 (r333338) @@ -235,6 +235,8 @@ MODULE_DEPEND(bnxt, pci, 1, 1, 1); MODULE_DEPEND(bnxt, ether, 1, 1, 1); MODULE_DEPEND(bnxt, iflib, 1, 1, 1); +IFLIB_PNP_INFO(pci, bnxt, bnxt_vendor_info_array); + static device_method_t bnxt_iflib_methods[] = { DEVMETHOD(ifdi_tx_queues_alloc, bnxt_tx_queues_alloc), DEVMETHOD(ifdi_rx_queues_alloc, bnxt_rx_queues_alloc), @@ -255,7 +257,8 @@ static device_method_t bnxt_iflib_methods[] = { DEVMETHOD(ifdi_update_admin_status, bnxt_update_admin_status), DEVMETHOD(ifdi_intr_enable, bnxt_intr_enable), - DEVMETHOD(ifdi_queue_intr_enable, bnxt_queue_intr_enable), + DEVMETHOD(ifdi_tx_queue_intr_enable, bnxt_queue_intr_enable), + DEVMETHOD(ifdi_rx_queue_intr_enable, bnxt_queue_intr_enable), DEVMETHOD(ifdi_intr_disable, bnxt_disable_intr), DEVMETHOD(ifdi_msix_intr_assign, bnxt_msix_intr_assign), @@ -279,10 +282,9 @@ char bnxt_driver_version[] = "FreeBSD base"; extern struct if_txrx bnxt_txrx; static struct if_shared_ctx bnxt_sctx_init = { .isc_magic = IFLIB_MAGIC, - .isc_txrx = &bnxt_txrx, .isc_driver = &bnxt_iflib_driver, .isc_nfl = 2, // Number of Free Lists - .isc_flags = IFLIB_HAS_RXCQ | IFLIB_HAS_TXCQ, + .isc_flags = IFLIB_HAS_RXCQ | IFLIB_HAS_TXCQ | IFLIB_NEED_ETHER_PAD, .isc_q_align = PAGE_SIZE, .isc_tx_maxsize = BNXT_TSO_SIZE, .isc_tx_maxsegsize = BNXT_TSO_SIZE, @@ -494,6 +496,17 @@ bnxt_rx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, softc->rx_rings[i].vaddr = vaddrs[i * nrxqs + 1]; softc->rx_rings[i].paddr = paddrs[i * nrxqs + 1]; + /* Allocate the TPA start buffer */ + softc->rx_rings[i].tpa_start = malloc(sizeof(struct bnxt_full_tpa_start) * + (RX_TPA_START_CMPL_AGG_ID_MASK >> RX_TPA_START_CMPL_AGG_ID_SFT), + M_DEVBUF, M_NOWAIT | M_ZERO); + if (softc->rx_rings[i].tpa_start == NULL) { + rc = -ENOMEM; + device_printf(softc->dev, + "Unable to allocate space for TPA\n"); + goto tpa_alloc_fail; + } + /* Allocate the AG ring */ softc->ag_rings[i].phys_id = (uint16_t)HWRM_NA_SIGNATURE; softc->ag_rings[i].softc = softc; @@ -559,7 +572,10 @@ rss_grp_alloc_fail: iflib_dma_free(&softc->vnic_info.rss_hash_key_tbl); rss_hash_alloc_fail: iflib_dma_free(&softc->vnic_info.mc_list); +tpa_alloc_fail: mc_list_alloc_fail: + for (i = i - 1; i >= 0; i--) + free(softc->rx_rings[i].tpa_start, M_DEVBUF); iflib_dma_free(&softc->rx_stats); hw_stats_alloc_fail: free(softc->grp_info, M_DEVBUF); @@ -623,16 +639,6 @@ bnxt_attach_pre(if_ctx_t ctx) if (rc) goto dma_fail; - /* Allocate the TPA start buffer */ - softc->tpa_start = malloc(sizeof(struct bnxt_full_tpa_start) * - (RX_TPA_START_CMPL_AGG_ID_MASK >> RX_TPA_START_CMPL_AGG_ID_SFT), - M_DEVBUF, M_NOWAIT | M_ZERO); - if (softc->tpa_start == NULL) { - rc = ENOMEM; - device_printf(softc->dev, - "Unable to allocate space for TPA\n"); - goto tpa_failed; - } /* Get firmware version and compare with driver */ softc->ver_info = malloc(sizeof(struct bnxt_ver_info), @@ -681,6 +687,20 @@ bnxt_attach_pre(if_ctx_t ctx) goto failed; iflib_set_mac(ctx, softc->func.mac_addr); + scctx->isc_txrx = &bnxt_txrx; + scctx->isc_tx_csum_flags = (CSUM_IP | CSUM_TCP | CSUM_UDP | + CSUM_TCP_IPV6 | CSUM_UDP_IPV6 | CSUM_TSO); + scctx->isc_capenable = + /* These are translated to hwassit bits */ + IFCAP_TXCSUM | IFCAP_TXCSUM_IPV6 | IFCAP_TSO4 | IFCAP_TSO6 | + /* These are checked by iflib */ + IFCAP_LRO | IFCAP_VLAN_HWFILTER | + /* These are part of the iflib mask */ + IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6 | IFCAP_VLAN_MTU | + IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWTSO | + /* These likely get lost... */ + IFCAP_VLAN_HWCSUM | IFCAP_JUMBO_MTU; + /* Get the queue config */ rc = bnxt_hwrm_queue_qportcfg(softc); if (rc) { @@ -700,6 +720,9 @@ bnxt_attach_pre(if_ctx_t ctx) scctx->isc_tx_tso_size_max = BNXT_TSO_SIZE; scctx->isc_tx_tso_segsize_max = BNXT_TSO_SIZE; scctx->isc_vectors = softc->func.max_cp_rings; + scctx->isc_min_frame_size = BNXT_MIN_FRAME_SIZE; + scctx->isc_txrx = &bnxt_txrx; + if (scctx->isc_nrxd[0] < ((scctx->isc_nrxd[1] * 4) + scctx->isc_nrxd[2])) device_printf(softc->dev, @@ -717,12 +740,12 @@ bnxt_attach_pre(if_ctx_t ctx) scctx->isc_nrxd[1]; scctx->isc_rxqsizes[2] = sizeof(struct rx_prod_pkt_bd) * scctx->isc_nrxd[2]; - scctx->isc_max_rxqsets = min(pci_msix_count(softc->dev)-1, + scctx->isc_nrxqsets_max = min(pci_msix_count(softc->dev)-1, softc->func.max_cp_rings - 1); - scctx->isc_max_rxqsets = min(scctx->isc_max_rxqsets, + scctx->isc_nrxqsets_max = min(scctx->isc_nrxqsets_max, softc->func.max_rx_rings); - scctx->isc_max_txqsets = min(softc->func.max_rx_rings, - softc->func.max_cp_rings - scctx->isc_max_rxqsets - 1); + scctx->isc_ntxqsets_max = min(softc->func.max_rx_rings, + softc->func.max_cp_rings - scctx->isc_nrxqsets_max - 1); scctx->isc_rss_table_size = HW_HASH_INDEX_SIZE; scctx->isc_rss_table_mask = scctx->isc_rss_table_size - 1; @@ -780,8 +803,6 @@ nvm_alloc_fail: ver_fail: free(softc->ver_info, M_DEVBUF); ver_alloc_fail: - free(softc->tpa_start, M_DEVBUF); -tpa_failed: bnxt_free_hwrm_dma_mem(softc); dma_fail: BNXT_HWRM_LOCK_DESTROY(softc); @@ -795,7 +816,6 @@ bnxt_attach_post(if_ctx_t ctx) { struct bnxt_softc *softc = iflib_get_softc(ctx); if_t ifp = iflib_get_ifp(ctx); - int capabilities, enabling; int rc; bnxt_create_config_sysctls_post(softc); @@ -810,26 +830,6 @@ bnxt_attach_post(if_ctx_t ctx) bnxt_add_media_types(softc); ifmedia_set(softc->media, IFM_ETHER | IFM_AUTO); - if_sethwassist(ifp, (CSUM_TCP | CSUM_UDP | CSUM_TCP_IPV6 | - CSUM_UDP_IPV6 | CSUM_TSO)); - - capabilities = - /* These are translated to hwassit bits */ - IFCAP_TXCSUM | IFCAP_TXCSUM_IPV6 | IFCAP_TSO4 | IFCAP_TSO6 | - /* These are checked by iflib */ - IFCAP_LRO | IFCAP_VLAN_HWFILTER | - /* These are part of the iflib mask */ - IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6 | IFCAP_VLAN_MTU | - IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWTSO | - /* These likely get lost... */ - IFCAP_VLAN_HWCSUM | IFCAP_JUMBO_MTU; - - if_setcapabilities(ifp, capabilities); - - enabling = capabilities; - - if_setcapenable(ifp, enabling); - softc->scctx->isc_max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; @@ -863,7 +863,8 @@ bnxt_detach(if_ctx_t ctx) SLIST_FOREACH_SAFE(tag, &softc->vnic_info.vlan_tags, next, tmp) free(tag, M_DEVBUF); iflib_dma_free(&softc->def_cp_ring_mem); - free(softc->tpa_start, M_DEVBUF); + for (i = 0; i < softc->nrxqsets; i++) + free(softc->rx_rings[i].tpa_start, M_DEVBUF); free(softc->ver_info, M_DEVBUF); free(softc->nvm_info, M_DEVBUF); @@ -995,14 +996,17 @@ bnxt_init(if_ctx_t ctx) if (rc) goto fail; -#ifdef notyet - /* Enable LRO/TPA/GRO */ + /* + * Enable LRO/TPA/GRO + * TBD: + * Enable / Disable HW_LRO based on + * ifconfig lro / ifconfig -lro setting + */ rc = bnxt_hwrm_vnic_tpa_cfg(softc, &softc->vnic_info, (if_getcapenable(iflib_get_ifp(ctx)) & IFCAP_LRO) ? HWRM_VNIC_TPA_CFG_INPUT_FLAGS_TPA : 0); if (rc) goto fail; -#endif for (i = 0; i < softc->ntxqsets; i++) { /* Allocate the statistics context */ @@ -1489,7 +1493,7 @@ bnxt_msix_intr_assign(if_ctx_t ctx, int msix) for (i=0; iscctx->isc_nrxqsets; i++) { rc = iflib_irq_alloc_generic(ctx, &softc->rx_cp_rings[i].irq, - softc->rx_cp_rings[i].ring.id + 1, IFLIB_INTR_RX, + softc->rx_cp_rings[i].ring.id + 1, IFLIB_INTR_RXTX, bnxt_handle_rx_cp, &softc->rx_cp_rings[i], i, "rx_cp"); if (rc) { device_printf(iflib_get_dev(ctx), @@ -1500,8 +1504,7 @@ bnxt_msix_intr_assign(if_ctx_t ctx, int msix) } for (i=0; iscctx->isc_ntxqsets; i++) - iflib_softirq_alloc_generic(ctx, i + 1, IFLIB_INTR_TX, NULL, i, - "tx_cp"); + iflib_softirq_alloc_generic(ctx, NULL, IFLIB_INTR_TX, NULL, i, "tx_cp"); return rc; Modified: stable/11/sys/kern/kern_cpuset.c ============================================================================== --- stable/11/sys/kern/kern_cpuset.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/kern/kern_cpuset.c Mon May 7 21:42:22 2018 (r333338) @@ -1127,6 +1127,8 @@ kern_cpuset_getaffinity(struct thread *td, cpulevel_t case CPU_WHICH_JAIL: break; case CPU_WHICH_IRQ: + case CPU_WHICH_INTRHANDLER: + case CPU_WHICH_ITHREAD: case CPU_WHICH_DOMAIN: error = EINVAL; goto out; @@ -1157,7 +1159,9 @@ kern_cpuset_getaffinity(struct thread *td, cpulevel_t CPU_COPY(&set->cs_mask, mask); break; case CPU_WHICH_IRQ: - error = intr_getaffinity(id, mask); + case CPU_WHICH_INTRHANDLER: + case CPU_WHICH_ITHREAD: + error = intr_getaffinity(id, which, mask); break; case CPU_WHICH_DOMAIN: if (id < 0 || id >= MAXMEMDOM) @@ -1260,6 +1264,8 @@ kern_cpuset_setaffinity(struct thread *td, cpulevel_t case CPU_WHICH_JAIL: break; case CPU_WHICH_IRQ: + case CPU_WHICH_INTRHANDLER: + case CPU_WHICH_ITHREAD: case CPU_WHICH_DOMAIN: error = EINVAL; goto out; @@ -1289,7 +1295,9 @@ kern_cpuset_setaffinity(struct thread *td, cpulevel_t } break; case CPU_WHICH_IRQ: - error = intr_setaffinity(id, mask); + case CPU_WHICH_INTRHANDLER: + case CPU_WHICH_ITHREAD: + error = intr_setaffinity(id, which, mask); break; default: error = EINVAL; Modified: stable/11/sys/kern/kern_intr.c ============================================================================== --- stable/11/sys/kern/kern_intr.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/kern/kern_intr.c Mon May 7 21:42:22 2018 (r333338) @@ -287,13 +287,11 @@ intr_event_create(struct intr_event **event, void *sou /* * Bind an interrupt event to the specified CPU. Note that not all * platforms support binding an interrupt to a CPU. For those - * platforms this request will fail. For supported platforms, any - * associated ithreads as well as the primary interrupt context will - * be bound to the specificed CPU. Using a cpu id of NOCPU unbinds + * platforms this request will fail. Using a cpu id of NOCPU unbinds * the interrupt event. */ -int -intr_event_bind(struct intr_event *ie, int cpu) +static int +_intr_event_bind(struct intr_event *ie, int cpu, bool bindirq, bool bindithread) { lwpid_t id; int error; @@ -313,35 +311,75 @@ intr_event_bind(struct intr_event *ie, int cpu) * If we have any ithreads try to set their mask first to verify * permissions, etc. */ - mtx_lock(&ie->ie_lock); - if (ie->ie_thread != NULL) { - id = ie->ie_thread->it_thread->td_tid; - mtx_unlock(&ie->ie_lock); - error = cpuset_setithread(id, cpu); - if (error) - return (error); - } else - mtx_unlock(&ie->ie_lock); - error = ie->ie_assign_cpu(ie->ie_source, cpu); - if (error) { + if (bindithread) { mtx_lock(&ie->ie_lock); if (ie->ie_thread != NULL) { - cpu = ie->ie_cpu; id = ie->ie_thread->it_thread->td_tid; mtx_unlock(&ie->ie_lock); - (void)cpuset_setithread(id, cpu); + error = cpuset_setithread(id, cpu); + if (error) + return (error); } else mtx_unlock(&ie->ie_lock); + } + if (bindirq) + error = ie->ie_assign_cpu(ie->ie_source, cpu); + if (error) { + if (bindithread) { + mtx_lock(&ie->ie_lock); + if (ie->ie_thread != NULL) { + cpu = ie->ie_cpu; + id = ie->ie_thread->it_thread->td_tid; + mtx_unlock(&ie->ie_lock); + (void)cpuset_setithread(id, cpu); + } else + mtx_unlock(&ie->ie_lock); + } return (error); } - mtx_lock(&ie->ie_lock); - ie->ie_cpu = cpu; - mtx_unlock(&ie->ie_lock); + if (bindirq) { + mtx_lock(&ie->ie_lock); + ie->ie_cpu = cpu; + mtx_unlock(&ie->ie_lock); + } return (error); } +/* + * Bind an interrupt event to the specified CPU. For supported platforms, any + * associated ithreads as well as the primary interrupt context will be bound + * to the specificed CPU. + */ +int +intr_event_bind(struct intr_event *ie, int cpu) +{ + + return (_intr_event_bind(ie, cpu, true, true)); +} + +/* + * Bind an interrupt event to the specified CPU, but do not bind associated + * ithreads. + */ +int +intr_event_bind_irqonly(struct intr_event *ie, int cpu) +{ + + return (_intr_event_bind(ie, cpu, true, false)); +} + +/* + * Bind an interrupt event's ithread to the specified CPU. + */ +int +intr_event_bind_ithread(struct intr_event *ie, int cpu) +{ + + return (_intr_event_bind(ie, cpu, false, true)); +} + static struct intr_event * intr_lookup(int irq) { @@ -358,7 +396,7 @@ intr_lookup(int irq) } int -intr_setaffinity(int irq, void *m) +intr_setaffinity(int irq, int mode, void *m) { struct intr_event *ie; cpuset_t *mask; @@ -382,26 +420,62 @@ intr_setaffinity(int irq, void *m) ie = intr_lookup(irq); if (ie == NULL) return (ESRCH); - return (intr_event_bind(ie, cpu)); + switch (mode) { + case CPU_WHICH_IRQ: + return (intr_event_bind(ie, cpu)); + case CPU_WHICH_INTRHANDLER: + return (intr_event_bind_irqonly(ie, cpu)); + case CPU_WHICH_ITHREAD: + return (intr_event_bind_ithread(ie, cpu)); + default: + return (EINVAL); + } } int -intr_getaffinity(int irq, void *m) +intr_getaffinity(int irq, int mode, void *m) { struct intr_event *ie; + struct thread *td; + struct proc *p; cpuset_t *mask; + lwpid_t id; + int error; mask = m; ie = intr_lookup(irq); if (ie == NULL) return (ESRCH); + + error = 0; CPU_ZERO(mask); - mtx_lock(&ie->ie_lock); - if (ie->ie_cpu == NOCPU) - CPU_COPY(cpuset_root, mask); - else - CPU_SET(ie->ie_cpu, mask); - mtx_unlock(&ie->ie_lock); + switch (mode) { + case CPU_WHICH_IRQ: + case CPU_WHICH_INTRHANDLER: + mtx_lock(&ie->ie_lock); + if (ie->ie_cpu == NOCPU) + CPU_COPY(cpuset_root, mask); + else + CPU_SET(ie->ie_cpu, mask); + mtx_unlock(&ie->ie_lock); + break; + case CPU_WHICH_ITHREAD: + mtx_lock(&ie->ie_lock); + if (ie->ie_thread == NULL) { + mtx_unlock(&ie->ie_lock); + CPU_COPY(cpuset_root, mask); + } else { + id = ie->ie_thread->it_thread->td_tid; + mtx_unlock(&ie->ie_lock); + error = cpuset_which(CPU_WHICH_TID, id, &p, &td, NULL); + if (error != 0) + return (error); + CPU_COPY(&td->td_cpuset->cs_mask, mask); + PROC_UNLOCK(p); + } + default: + return (EINVAL); + } return (0); } Modified: stable/11/sys/kern/subr_gtaskqueue.c ============================================================================== --- stable/11/sys/kern/subr_gtaskqueue.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/kern/subr_gtaskqueue.c Mon May 7 21:42:22 2018 (r333338) @@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include -static MALLOC_DEFINE(M_GTASKQUEUE, "taskqueue", "Task Queues"); +static MALLOC_DEFINE(M_GTASKQUEUE, "gtaskqueue", "Group Task Queues"); static void gtaskqueue_thread_enqueue(void *); static void gtaskqueue_thread_loop(void *arg); @@ -134,8 +134,10 @@ _gtaskqueue_create(const char *name, int mflags, snprintf(tq_name, TASKQUEUE_NAMELEN, "%s", (name) ? name : "taskqueue"); queue = malloc(sizeof(struct gtaskqueue), M_GTASKQUEUE, mflags | M_ZERO); - if (!queue) + if (!queue) { + free(tq_name, M_GTASKQUEUE); return (NULL); + } STAILQ_INIT(&queue->tq_queue); TAILQ_INIT(&queue->tq_active); @@ -663,10 +665,10 @@ taskqgroup_attach(struct taskqgroup *qgroup, struct gr void *uniq, int irq, char *name) { cpuset_t mask; - int qid; + int qid, error; gtask->gt_uniq = uniq; - gtask->gt_name = name; + snprintf(gtask->gt_name, GROUPTASK_NAMELEN, "%s", name ? name : "grouptask"); gtask->gt_irq = irq; gtask->gt_cpu = -1; mtx_lock(&qgroup->tqg_lock); @@ -679,7 +681,9 @@ taskqgroup_attach(struct taskqgroup *qgroup, struct gr CPU_ZERO(&mask); CPU_SET(qgroup->tqg_queue[qid].tgc_cpu, &mask); mtx_unlock(&qgroup->tqg_lock); - intr_setaffinity(irq, &mask); + error = intr_setaffinity(irq, CPU_WHICH_IRQ, &mask); + if (error) + printf("%s: setaffinity failed for %s: %d\n", __func__, gtask->gt_name, error); } else mtx_unlock(&qgroup->tqg_lock); } @@ -688,7 +692,7 @@ static void taskqgroup_attach_deferred(struct taskqgroup *qgroup, struct grouptask *gtask) { cpuset_t mask; - int qid, cpu; + int qid, cpu, error; mtx_lock(&qgroup->tqg_lock); qid = taskqgroup_find(qgroup, gtask->gt_uniq); @@ -698,9 +702,11 @@ taskqgroup_attach_deferred(struct taskqgroup *qgroup, CPU_ZERO(&mask); CPU_SET(cpu, &mask); - intr_setaffinity(gtask->gt_irq, &mask); - + error = intr_setaffinity(gtask->gt_irq, CPU_WHICH_IRQ, &mask); mtx_lock(&qgroup->tqg_lock); + if (error) + printf("%s: %s setaffinity failed: %d\n", __func__, gtask->gt_name, error); + } qgroup->tqg_queue[qid].tgc_cnt++; @@ -716,11 +722,11 @@ taskqgroup_attach_cpu(struct taskqgroup *qgroup, struc void *uniq, int cpu, int irq, char *name) { cpuset_t mask; - int i, qid; + int i, qid, error; qid = -1; gtask->gt_uniq = uniq; - gtask->gt_name = name; + snprintf(gtask->gt_name, GROUPTASK_NAMELEN, "%s", name ? name : "grouptask"); gtask->gt_irq = irq; gtask->gt_cpu = cpu; mtx_lock(&qgroup->tqg_lock); @@ -732,6 +738,7 @@ taskqgroup_attach_cpu(struct taskqgroup *qgroup, struc } if (qid == -1) { mtx_unlock(&qgroup->tqg_lock); + printf("%s: qid not found for %s cpu=%d\n", __func__, gtask->gt_name, cpu); return (EINVAL); } } else @@ -744,8 +751,11 @@ taskqgroup_attach_cpu(struct taskqgroup *qgroup, struc CPU_ZERO(&mask); CPU_SET(cpu, &mask); - if (irq != -1 && tqg_smp_started) - intr_setaffinity(irq, &mask); + if (irq != -1 && tqg_smp_started) { + error = intr_setaffinity(irq, CPU_WHICH_IRQ, &mask); + if (error) + printf("%s: setaffinity failed: %d\n", __func__, error); + } return (0); } @@ -753,7 +763,7 @@ static int taskqgroup_attach_cpu_deferred(struct taskqgroup *qgroup, struct grouptask *gtask) { cpuset_t mask; - int i, qid, irq, cpu; + int i, qid, irq, cpu, error; qid = -1; irq = gtask->gt_irq; @@ -767,6 +777,7 @@ taskqgroup_attach_cpu_deferred(struct taskqgroup *qgro } if (qid == -1) { mtx_unlock(&qgroup->tqg_lock); + printf("%s: qid not found for %s cpu=%d\n", __func__, gtask->gt_name, cpu); return (EINVAL); } qgroup->tqg_queue[qid].tgc_cnt++; @@ -778,8 +789,11 @@ taskqgroup_attach_cpu_deferred(struct taskqgroup *qgro CPU_ZERO(&mask); CPU_SET(cpu, &mask); - if (irq != -1) - intr_setaffinity(irq, &mask); + if (irq != -1) { + error = intr_setaffinity(irq, CPU_WHICH_IRQ, &mask); + if (error) + printf("%s: setaffinity failed: %d\n", __func__, error); + } return (0); } @@ -793,7 +807,7 @@ taskqgroup_detach(struct taskqgroup *qgroup, struct gr if (qgroup->tqg_queue[i].tgc_taskq == gtask->gt_taskqueue) break; if (i == qgroup->tqg_cnt) - panic("taskqgroup_detach: task not in group\n"); + panic("taskqgroup_detach: task %s not in group\n", gtask->gt_name); qgroup->tqg_queue[i].tgc_cnt--; LIST_REMOVE(gtask, gt_list); mtx_unlock(&qgroup->tqg_lock); @@ -815,7 +829,7 @@ taskqgroup_binder(void *ctx) thread_unlock(curthread); if (error) - printf("taskqgroup_binder: setaffinity failed: %d\n", + printf("%s: setaffinity failed: %d\n", __func__, error); free(gtask, M_DEVBUF); } @@ -858,7 +872,7 @@ _taskqgroup_adjust(struct taskqgroup *qgroup, int cnt, return (EINVAL); } if (qgroup->tqg_adjusting) { - printf("taskqgroup_adjust failed: adjusting\n"); + printf("%s failed: adjusting\n", __func__); return (EBUSY); } qgroup->tqg_adjusting = 1; Modified: stable/11/sys/net/ifdi_if.m ============================================================================== --- stable/11/sys/net/ifdi_if.m Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/net/ifdi_if.m Mon May 7 21:42:22 2018 (r333338) @@ -195,11 +195,16 @@ METHOD void intr_disable { if_ctx_t _ctx; }; -METHOD int queue_intr_enable { +METHOD int rx_queue_intr_enable { if_ctx_t _ctx; uint16_t _qid; } DEFAULT null_queue_intr_enable; +METHOD int tx_queue_intr_enable { + if_ctx_t _ctx; + uint16_t _qid; +} DEFAULT null_queue_intr_enable; + METHOD void link_intr_enable { if_ctx_t _ctx; } DEFAULT null_void_op; @@ -229,6 +234,7 @@ METHOD int promisc_set { METHOD void crcstrip_set { if_ctx_t _ctx; int _onoff; + int _strip; }; # @@ -332,4 +338,6 @@ METHOD int sysctl_int_delay { if_int_delay_info_t _iidi; } DEFAULT null_sysctl_int_delay; - +METHOD void debug { + if_ctx_t _ctx; +} DEFAULT null_void_op; Modified: stable/11/sys/net/iflib.c ============================================================================== --- stable/11/sys/net/iflib.c Mon May 7 21:32:08 2018 (r333337) +++ stable/11/sys/net/iflib.c Mon May 7 21:42:22 2018 (r333338) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2014-2016, Matthew Macy + * Copyright (c) 2014-2017, Matthew Macy * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include "opt_inet.h" #include "opt_inet6.h" #include "opt_acpi.h" +#include "opt_sched.h" #include #include @@ -59,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -68,6 +70,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -93,9 +97,10 @@ __FBSDID("$FreeBSD$"); #include #endif - +#include /* - * enable accounting of every mbuf as it comes in to and goes out of iflib's software descriptor references + * enable accounting of every mbuf as it comes in to and goes out of + * iflib's software descriptor references */ #define MEMORY_LOGGING 0 /* @@ -134,10 +139,13 @@ typedef struct iflib_rxq *iflib_rxq_t; struct iflib_fl; typedef struct iflib_fl *iflib_fl_t; +static void iru_init(if_rxd_update_t iru, iflib_rxq_t rxq, uint8_t flid); + typedef struct iflib_filter_info { driver_filter_t *ifi_filter; void *ifi_filter_arg; struct grouptask *ifi_task; + void *ifi_ctx; } *iflib_filter_info_t; struct iflib_ctx { @@ -156,7 +164,6 @@ struct iflib_ctx { struct mtx ifc_mtx; uint16_t ifc_nhwtxqs; - uint16_t ifc_nhwrxqs; iflib_txq_t ifc_txqs; iflib_rxq_t ifc_rxqs; @@ -167,7 +174,6 @@ struct iflib_ctx { int ifc_link_state; int ifc_link_irq; - int ifc_pause_frames; int ifc_watchdog_events; struct cdev *ifc_led_dev; struct resource *ifc_msix_mem; @@ -182,9 +188,10 @@ struct iflib_ctx { uint16_t ifc_sysctl_ntxqs; uint16_t ifc_sysctl_nrxqs; uint16_t ifc_sysctl_qs_eq_override; + uint16_t ifc_sysctl_rx_budget; - uint16_t ifc_sysctl_ntxds[8]; - uint16_t ifc_sysctl_nrxds[8]; + qidx_t ifc_sysctl_ntxds[8]; + qidx_t ifc_sysctl_nrxds[8]; struct if_txrx ifc_txrx; #define isc_txd_encap ifc_txrx.ift_txd_encap #define isc_txd_flush ifc_txrx.ift_txd_flush @@ -252,7 +259,9 @@ iflib_get_sctx(if_ctx_t ctx) return (ctx->ifc_sctx); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-11@freebsd.org Mon May 7 22:33:41 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA028FC00AC; Mon, 7 May 2018 22:33:41 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BCC185801; Mon, 7 May 2018 22:33:41 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 431872189A; Mon, 7 May 2018 22:33:41 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47MXfAx067938; Mon, 7 May 2018 22:33:41 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47MXfmv067937; Mon, 7 May 2018 22:33:41 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805072233.w47MXfmv067937@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Mon, 7 May 2018 22:33:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333340 - stable/11/sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: stable/11/sys/net X-SVN-Commit-Revision: 333340 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 22:33:41 -0000 Author: shurd Date: Mon May 7 22:33:40 2018 New Revision: 333340 URL: https://svnweb.freebsd.org/changeset/base/333340 Log: Direct commit to stable/11 to fix botched r333338 netmap nm_intr is not part of stable/11 Approved by: re (marius@) Sponsored by: Limelight Networks Modified: stable/11/sys/net/iflib.c Modified: stable/11/sys/net/iflib.c ============================================================================== --- stable/11/sys/net/iflib.c Mon May 7 22:29:32 2018 (r333339) +++ stable/11/sys/net/iflib.c Mon May 7 22:33:40 2018 (r333340) @@ -1114,22 +1114,6 @@ iflib_netmap_rxsync(struct netmap_kring *kring, int fl return (netmap_fl_refill(rxq, kring, nm_i, false)); } -static void -iflib_netmap_intr(struct netmap_adapter *na, int onoff) -{ - struct ifnet *ifp = na->ifp; - if_ctx_t ctx = ifp->if_softc; - - CTX_LOCK(ctx); - if (onoff) { - IFDI_INTR_ENABLE(ctx); - } else { - IFDI_INTR_DISABLE(ctx); - } - CTX_UNLOCK(ctx); -} - - static int iflib_netmap_attach(if_ctx_t ctx) { @@ -1148,7 +1132,6 @@ iflib_netmap_attach(if_ctx_t ctx) na.nm_txsync = iflib_netmap_txsync; na.nm_rxsync = iflib_netmap_rxsync; na.nm_register = iflib_netmap_register; - na.nm_intr = iflib_netmap_intr; na.num_tx_rings = ctx->ifc_softc_ctx.isc_ntxqsets; na.num_rx_rings = ctx->ifc_softc_ctx.isc_nrxqsets; return (netmap_attach(&na)); From owner-svn-src-stable-11@freebsd.org Mon May 7 23:10:03 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 401F1FC0B77; Mon, 7 May 2018 23:10:03 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E00C16DAFD; Mon, 7 May 2018 23:10:02 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D63B921D7F; Mon, 7 May 2018 23:10:02 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47NA2QZ087193; Mon, 7 May 2018 23:10:02 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47NA2we087192; Mon, 7 May 2018 23:10:02 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805072310.w47NA2we087192@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Mon, 7 May 2018 23:10:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333341 - stable/11/sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: stable/11/sys/net X-SVN-Commit-Revision: 333341 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 23:10:03 -0000 Author: shurd Date: Mon May 7 23:10:02 2018 New Revision: 333341 URL: https://svnweb.freebsd.org/changeset/base/333341 Log: MFC r333253-r333254 Fixes invalid free()s when iflib_queues_alloc() fails, and remove unused brscp variable. Approved by: re (gjb@) Modified: stable/11/sys/net/iflib.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/net/iflib.c ============================================================================== --- stable/11/sys/net/iflib.c Mon May 7 22:33:40 2018 (r333340) +++ stable/11/sys/net/iflib.c Mon May 7 23:10:02 2018 (r333341) @@ -4719,17 +4719,12 @@ iflib_queues_alloc(if_ctx_t ctx) int nfree_lists = sctx->isc_nfl ? sctx->isc_nfl : 1; caddr_t *vaddrs; uint64_t *paddrs; - struct ifmp_ring **brscp; KASSERT(ntxqs > 0, ("number of queues per qset must be at least 1")); KASSERT(nrxqs > 0, ("number of queues per qset must be at least 1")); - brscp = NULL; - txq = NULL; - rxq = NULL; - /* Allocate the TX ring struct memory */ - if (!(txq = + if (!(ctx->ifc_txqs = (iflib_txq_t) malloc(sizeof(struct iflib_txq) * ntxqsets, M_IFLIB, M_NOWAIT | M_ZERO))) { device_printf(dev, "Unable to allocate TX ring memory\n"); @@ -4738,7 +4733,7 @@ iflib_queues_alloc(if_ctx_t ctx) } /* Now allocate the RX */ - if (!(rxq = + if (!(ctx->ifc_rxqs = (iflib_rxq_t) malloc(sizeof(struct iflib_rxq) * nrxqsets, M_IFLIB, M_NOWAIT | M_ZERO))) { device_printf(dev, "Unable to allocate RX ring memory\n"); @@ -4746,8 +4741,8 @@ iflib_queues_alloc(if_ctx_t ctx) goto rx_fail; } - ctx->ifc_txqs = txq; - ctx->ifc_rxqs = rxq; + txq = ctx->ifc_txqs; + rxq = ctx->ifc_rxqs; /* * XXX handle allocation failure @@ -4905,19 +4900,13 @@ iflib_queues_alloc(if_ctx_t ctx) /* XXX handle allocation failure changes */ err_rx_desc: err_tx_desc: +rx_fail: if (ctx->ifc_rxqs != NULL) free(ctx->ifc_rxqs, M_IFLIB); ctx->ifc_rxqs = NULL; if (ctx->ifc_txqs != NULL) free(ctx->ifc_txqs, M_IFLIB); ctx->ifc_txqs = NULL; -rx_fail: - if (brscp != NULL) - free(brscp, M_IFLIB); - if (rxq != NULL) - free(rxq, M_IFLIB); - if (txq != NULL) - free(txq, M_IFLIB); fail: return (err); } From owner-svn-src-stable-11@freebsd.org Mon May 7 23:23:13 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 58697FC12F3; Mon, 7 May 2018 23:23:13 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E179970BEB; Mon, 7 May 2018 23:23:12 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D6273220B7; Mon, 7 May 2018 23:23:12 +0000 (UTC) (envelope-from erj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w47NNCCk096876; Mon, 7 May 2018 23:23:12 GMT (envelope-from erj@FreeBSD.org) Received: (from erj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w47NNBmY096870; Mon, 7 May 2018 23:23:11 GMT (envelope-from erj@FreeBSD.org) Message-Id: <201805072323.w47NNBmY096870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: erj set sender to erj@FreeBSD.org using -f From: Eric Joyner Date: Mon, 7 May 2018 23:23:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333343 - in stable/11/sys: conf dev/ixl modules/ixl X-SVN-Group: stable-11 X-SVN-Commit-Author: erj X-SVN-Commit-Paths: in stable/11/sys: conf dev/ixl modules/ixl X-SVN-Commit-Revision: 333343 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 May 2018 23:23:13 -0000 Author: erj Date: Mon May 7 23:23:11 2018 New Revision: 333343 URL: https://svnweb.freebsd.org/changeset/base/333343 Log: MFC r333149: ixl(4): Update to 1.9.9-k Major changes: - Support for descriptor writeback mode (required by ixlv(4) for AVF support) - Ability to disable firmware LLDP agent by user - Fix for TX queue hang when using TSO - Separate descriptor ring sizes for TX and RX rings Approved by: re (marius) Relnotes: yes Sponsored by: Intel Corporation Added: stable/11/sys/dev/ixl/i40e_dcb.c - copied unchanged from r333149, head/sys/dev/ixl/i40e_dcb.c stable/11/sys/dev/ixl/i40e_dcb.h - copied unchanged from r333149, head/sys/dev/ixl/i40e_dcb.h stable/11/sys/dev/ixl/virtchnl.h - copied unchanged from r333149, head/sys/dev/ixl/virtchnl.h Deleted: stable/11/sys/dev/ixl/i40e_virtchnl.h Modified: stable/11/sys/conf/files.amd64 stable/11/sys/dev/ixl/i40e_adminq.c stable/11/sys/dev/ixl/i40e_adminq.h stable/11/sys/dev/ixl/i40e_adminq_cmd.h stable/11/sys/dev/ixl/i40e_alloc.h stable/11/sys/dev/ixl/i40e_common.c stable/11/sys/dev/ixl/i40e_devids.h stable/11/sys/dev/ixl/i40e_hmc.c stable/11/sys/dev/ixl/i40e_hmc.h stable/11/sys/dev/ixl/i40e_lan_hmc.c stable/11/sys/dev/ixl/i40e_lan_hmc.h stable/11/sys/dev/ixl/i40e_nvm.c stable/11/sys/dev/ixl/i40e_osdep.c stable/11/sys/dev/ixl/i40e_osdep.h stable/11/sys/dev/ixl/i40e_prototype.h stable/11/sys/dev/ixl/i40e_register.h stable/11/sys/dev/ixl/i40e_status.h stable/11/sys/dev/ixl/i40e_type.h stable/11/sys/dev/ixl/if_ixl.c stable/11/sys/dev/ixl/if_ixlv.c stable/11/sys/dev/ixl/ixl.h stable/11/sys/dev/ixl/ixl_iw.c stable/11/sys/dev/ixl/ixl_iw.h stable/11/sys/dev/ixl/ixl_iw_int.h stable/11/sys/dev/ixl/ixl_pf.h stable/11/sys/dev/ixl/ixl_pf_i2c.c stable/11/sys/dev/ixl/ixl_pf_iov.c stable/11/sys/dev/ixl/ixl_pf_iov.h stable/11/sys/dev/ixl/ixl_pf_main.c stable/11/sys/dev/ixl/ixl_pf_qmgr.c stable/11/sys/dev/ixl/ixl_pf_qmgr.h stable/11/sys/dev/ixl/ixl_txrx.c stable/11/sys/dev/ixl/ixlv.h stable/11/sys/dev/ixl/ixlv_vc_mgr.h stable/11/sys/dev/ixl/ixlvc.c stable/11/sys/modules/ixl/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Mon May 7 23:10:12 2018 (r333342) +++ stable/11/sys/conf/files.amd64 Mon May 7 23:23:11 2018 (r333343) @@ -274,6 +274,8 @@ dev/ixl/i40e_nvm.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" dev/ixl/i40e_adminq.c optional ixl pci | ixlv pci \ compile-with "${NORMAL_C} -I$S/dev/ixl" +dev/ixl/i40e_dcb.c optional ixl pci \ + compile-with "${NORMAL_C} -I$S/dev/ixl" dev/fdc/fdc.c optional fdc dev/fdc/fdc_acpi.c optional fdc dev/fdc/fdc_isa.c optional fdc isa Modified: stable/11/sys/dev/ixl/i40e_adminq.c ============================================================================== --- stable/11/sys/dev/ixl/i40e_adminq.c Mon May 7 23:10:12 2018 (r333342) +++ stable/11/sys/dev/ixl/i40e_adminq.c Mon May 7 23:23:11 2018 (r333343) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2013-2015, Intel Corporation + Copyright (c) 2013-2017, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -644,6 +644,24 @@ enum i40e_status_code i40e_init_adminq(struct i40e_hw &oem_lo); hw->nvm.oem_ver = ((u32)oem_hi << 16) | oem_lo; + /* The ability to RX (not drop) 802.1ad frames was added in API 1.7 */ + if ((hw->aq.api_maj_ver > 1) || + ((hw->aq.api_maj_ver == 1) && + (hw->aq.api_min_ver >= 7))) + hw->flags |= I40E_HW_FLAG_802_1AD_CAPABLE; + + if (hw->mac.type == I40E_MAC_XL710 && + hw->aq.api_maj_ver == I40E_FW_API_VERSION_MAJOR && + hw->aq.api_min_ver >= I40E_MINOR_VER_GET_LINK_INFO_XL710) { + hw->flags |= I40E_HW_FLAG_AQ_PHY_ACCESS_CAPABLE; + } + + /* Newer versions of firmware require lock when reading the NVM */ + if ((hw->aq.api_maj_ver > 1) || + ((hw->aq.api_maj_ver == 1) && + (hw->aq.api_min_ver >= 5))) + hw->flags |= I40E_HW_FLAG_NVM_READ_REQUIRES_LOCK; + if (hw->aq.api_maj_ver > I40E_FW_API_VERSION_MAJOR) { ret_code = I40E_ERR_FIRMWARE_API_VERSION; goto init_adminq_free_arq; @@ -899,8 +917,8 @@ enum i40e_status_code i40e_asq_send_command(struct i40 */ if (i40e_asq_done(hw)) break; - i40e_msec_delay(1); - total_delay++; + i40e_usec_delay(50); + total_delay += 50; } while (total_delay < hw->aq.asq_cmd_timeout); } @@ -941,10 +959,15 @@ enum i40e_status_code i40e_asq_send_command(struct i40 /* update the error if time out occurred */ if ((!cmd_completed) && (!details->async && !details->postpone)) { - i40e_debug(hw, - I40E_DEBUG_AQ_MESSAGE, - "AQTX: Writeback timeout.\n"); - status = I40E_ERR_ADMIN_QUEUE_TIMEOUT; + if (rd32(hw, hw->aq.asq.len) & I40E_GL_ATQLEN_ATQCRIT_MASK) { + i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, + "AQTX: AQ Critical error.\n"); + status = I40E_ERR_ADMIN_QUEUE_CRITICAL_ERROR; + } else { + i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, + "AQTX: Writeback timeout.\n"); + status = I40E_ERR_ADMIN_QUEUE_TIMEOUT; + } } asq_send_command_error: @@ -1007,9 +1030,9 @@ enum i40e_status_code i40e_clean_arq_element(struct i4 /* set next_to_use to head */ if (!i40e_is_vf(hw)) - ntu = (rd32(hw, hw->aq.arq.head) & I40E_PF_ARQH_ARQH_MASK); - if (i40e_is_vf(hw)) - ntu = (rd32(hw, hw->aq.arq.head) & I40E_VF_ARQH1_ARQH_MASK); + ntu = rd32(hw, hw->aq.arq.head) & I40E_PF_ARQH_ARQH_MASK; + else + ntu = rd32(hw, hw->aq.arq.head) & I40E_VF_ARQH1_ARQH_MASK; if (ntu == ntc) { /* nothing to do - shouldn't need to update ring's values */ ret_code = I40E_ERR_ADMIN_QUEUE_NO_WORK; @@ -1067,7 +1090,7 @@ enum i40e_status_code i40e_clean_arq_element(struct i4 hw->aq.arq.next_to_clean = ntc; hw->aq.arq.next_to_use = ntu; - i40e_nvmupd_check_wait_event(hw, LE16_TO_CPU(e->desc.opcode)); + i40e_nvmupd_check_wait_event(hw, LE16_TO_CPU(e->desc.opcode), &e->desc); clean_arq_element_out: /* Set pending if needed, unlock and return */ if (pending != NULL) Modified: stable/11/sys/dev/ixl/i40e_adminq.h ============================================================================== --- stable/11/sys/dev/ixl/i40e_adminq.h Mon May 7 23:10:12 2018 (r333342) +++ stable/11/sys/dev/ixl/i40e_adminq.h Mon May 7 23:23:11 2018 (r333343) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2013-2015, Intel Corporation + Copyright (c) 2013-2017, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -159,7 +159,7 @@ static INLINE int i40e_aq_rc_to_posix(int aq_ret, int /* general information */ #define I40E_AQ_LARGE_BUF 512 -#define I40E_ASQ_CMD_TIMEOUT 250 /* msecs */ +#define I40E_ASQ_CMD_TIMEOUT 250000 /* usecs */ void i40e_fill_default_direct_cmd_desc(struct i40e_aq_desc *desc, u16 opcode); Modified: stable/11/sys/dev/ixl/i40e_adminq_cmd.h ============================================================================== --- stable/11/sys/dev/ixl/i40e_adminq_cmd.h Mon May 7 23:10:12 2018 (r333342) +++ stable/11/sys/dev/ixl/i40e_adminq_cmd.h Mon May 7 23:23:11 2018 (r333343) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2013-2015, Intel Corporation + Copyright (c) 2013-2017, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,9 +41,18 @@ * This file needs to comply with the Linux Kernel coding style. */ + #define I40E_FW_API_VERSION_MAJOR 0x0001 -#define I40E_FW_API_VERSION_MINOR 0x0005 +#define I40E_FW_API_VERSION_MINOR_X722 0x0005 +#define I40E_FW_API_VERSION_MINOR_X710 0x0007 +#define I40E_FW_MINOR_VERSION(_h) ((_h)->mac.type == I40E_MAC_XL710 ? \ + I40E_FW_API_VERSION_MINOR_X710 : \ + I40E_FW_API_VERSION_MINOR_X722) + +/* API version 1.7 implements additional link and PHY-specific APIs */ +#define I40E_MINOR_VER_GET_LINK_INFO_XL710 0x0007 + struct i40e_aq_desc { __le16 flags; __le16 opcode; @@ -202,6 +211,7 @@ enum i40e_admin_queue_opc { /* DCB commands */ i40e_aqc_opc_dcb_ignore_pfc = 0x0301, i40e_aqc_opc_dcb_updated = 0x0302, + i40e_aqc_opc_set_dcb_parameters = 0x0303, /* TX scheduler */ i40e_aqc_opc_configure_vsi_bw_limit = 0x0400, @@ -241,6 +251,8 @@ enum i40e_admin_queue_opc { i40e_aqc_opc_set_phy_debug = 0x0622, i40e_aqc_opc_upload_ext_phy_fm = 0x0625, i40e_aqc_opc_run_phy_activity = 0x0626, + i40e_aqc_opc_set_phy_register = 0x0628, + i40e_aqc_opc_get_phy_register = 0x0629, /* NVM commands */ i40e_aqc_opc_nvm_read = 0x0701, @@ -248,6 +260,7 @@ enum i40e_admin_queue_opc { i40e_aqc_opc_nvm_update = 0x0703, i40e_aqc_opc_nvm_config_read = 0x0704, i40e_aqc_opc_nvm_config_write = 0x0705, + i40e_aqc_opc_nvm_progress = 0x0706, i40e_aqc_opc_oem_post_update = 0x0720, i40e_aqc_opc_thermal_sensor = 0x0721, @@ -771,8 +784,52 @@ struct i40e_aqc_set_switch_config { /* flags used for both fields below */ #define I40E_AQ_SET_SWITCH_CFG_PROMISC 0x0001 #define I40E_AQ_SET_SWITCH_CFG_L2_FILTER 0x0002 +#define I40E_AQ_SET_SWITCH_CFG_HW_ATR_EVICT 0x0004 __le16 valid_flags; - u8 reserved[12]; + /* The ethertype in switch_tag is dropped on ingress and used + * internally by the switch. Set this to zero for the default + * of 0x88a8 (802.1ad). Should be zero for firmware API + * versions lower than 1.7. + */ + __le16 switch_tag; + /* The ethertypes in first_tag and second_tag are used to + * match the outer and inner VLAN tags (respectively) when HW + * double VLAN tagging is enabled via the set port parameters + * AQ command. Otherwise these are both ignored. Set them to + * zero for their defaults of 0x8100 (802.1Q). Should be zero + * for firmware API versions lower than 1.7. + */ + __le16 first_tag; + __le16 second_tag; + /* Next byte is split into following: + * Bit 7 : 0 : No action, 1: Switch to mode defined by bits 6:0 + * Bit 6 : 0 : Destination Port, 1: source port + * Bit 5..4 : L4 type + * 0: rsvd + * 1: TCP + * 2: UDP + * 3: Both TCP and UDP + * Bits 3:0 Mode + * 0: default mode + * 1: L4 port only mode + * 2: non-tunneled mode + * 3: tunneled mode + */ +#define I40E_AQ_SET_SWITCH_BIT7_VALID 0x80 + +#define I40E_AQ_SET_SWITCH_L4_SRC_PORT 0x40 + +#define I40E_AQ_SET_SWITCH_L4_TYPE_RSVD 0x00 +#define I40E_AQ_SET_SWITCH_L4_TYPE_TCP 0x10 +#define I40E_AQ_SET_SWITCH_L4_TYPE_UDP 0x20 +#define I40E_AQ_SET_SWITCH_L4_TYPE_BOTH 0x30 + +#define I40E_AQ_SET_SWITCH_MODE_DEFAULT 0x00 +#define I40E_AQ_SET_SWITCH_MODE_L4_PORT 0x01 +#define I40E_AQ_SET_SWITCH_MODE_NON_TUNNEL 0x02 +#define I40E_AQ_SET_SWITCH_MODE_TUNNEL 0x03 + u8 mode; + u8 rsvd5[5]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_set_switch_config); @@ -1703,6 +1760,8 @@ enum i40e_aq_phy_type { I40E_PHY_TYPE_10GBASE_CR1_CU = 0xB, I40E_PHY_TYPE_10GBASE_AOC = 0xC, I40E_PHY_TYPE_40GBASE_AOC = 0xD, + I40E_PHY_TYPE_UNRECOGNIZED = 0xE, + I40E_PHY_TYPE_UNSUPPORTED = 0xF, I40E_PHY_TYPE_100BASE_TX = 0x11, I40E_PHY_TYPE_1000BASE_T = 0x12, I40E_PHY_TYPE_10GBASE_T = 0x13, @@ -1721,9 +1780,51 @@ enum i40e_aq_phy_type { I40E_PHY_TYPE_25GBASE_CR = 0x20, I40E_PHY_TYPE_25GBASE_SR = 0x21, I40E_PHY_TYPE_25GBASE_LR = 0x22, - I40E_PHY_TYPE_MAX + I40E_PHY_TYPE_25GBASE_AOC = 0x23, + I40E_PHY_TYPE_25GBASE_ACC = 0x24, + I40E_PHY_TYPE_MAX, + I40E_PHY_TYPE_NOT_SUPPORTED_HIGH_TEMP = 0xFD, + I40E_PHY_TYPE_EMPTY = 0xFE, + I40E_PHY_TYPE_DEFAULT = 0xFF, }; +#define I40E_PHY_TYPES_BITMASK (BIT_ULL(I40E_PHY_TYPE_SGMII) | \ + BIT_ULL(I40E_PHY_TYPE_1000BASE_KX) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_KX4) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_KR) | \ + BIT_ULL(I40E_PHY_TYPE_40GBASE_KR4) | \ + BIT_ULL(I40E_PHY_TYPE_XAUI) | \ + BIT_ULL(I40E_PHY_TYPE_XFI) | \ + BIT_ULL(I40E_PHY_TYPE_SFI) | \ + BIT_ULL(I40E_PHY_TYPE_XLAUI) | \ + BIT_ULL(I40E_PHY_TYPE_XLPPI) | \ + BIT_ULL(I40E_PHY_TYPE_40GBASE_CR4_CU) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_CR1_CU) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_AOC) | \ + BIT_ULL(I40E_PHY_TYPE_40GBASE_AOC) | \ + BIT_ULL(I40E_PHY_TYPE_UNRECOGNIZED) | \ + BIT_ULL(I40E_PHY_TYPE_UNSUPPORTED) | \ + BIT_ULL(I40E_PHY_TYPE_100BASE_TX) | \ + BIT_ULL(I40E_PHY_TYPE_1000BASE_T) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_T) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_SR) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_LR) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_SFPP_CU) | \ + BIT_ULL(I40E_PHY_TYPE_10GBASE_CR1) | \ + BIT_ULL(I40E_PHY_TYPE_40GBASE_CR4) | \ + BIT_ULL(I40E_PHY_TYPE_40GBASE_SR4) | \ + BIT_ULL(I40E_PHY_TYPE_40GBASE_LR4) | \ + BIT_ULL(I40E_PHY_TYPE_1000BASE_SX) | \ + BIT_ULL(I40E_PHY_TYPE_1000BASE_LX) | \ + BIT_ULL(I40E_PHY_TYPE_1000BASE_T_OPTICAL) | \ + BIT_ULL(I40E_PHY_TYPE_20GBASE_KR2) | \ + BIT_ULL(I40E_PHY_TYPE_25GBASE_KR) | \ + BIT_ULL(I40E_PHY_TYPE_25GBASE_CR) | \ + BIT_ULL(I40E_PHY_TYPE_25GBASE_SR) | \ + BIT_ULL(I40E_PHY_TYPE_25GBASE_LR) | \ + BIT_ULL(I40E_PHY_TYPE_25GBASE_AOC) | \ + BIT_ULL(I40E_PHY_TYPE_25GBASE_ACC)) + #define I40E_LINK_SPEED_100MB_SHIFT 0x1 #define I40E_LINK_SPEED_1000MB_SHIFT 0x2 #define I40E_LINK_SPEED_10GB_SHIFT 0x3 @@ -1778,6 +1879,8 @@ struct i40e_aq_get_phy_abilities_resp { #define I40E_AQ_PHY_TYPE_EXT_25G_CR 0x02 #define I40E_AQ_PHY_TYPE_EXT_25G_SR 0x04 #define I40E_AQ_PHY_TYPE_EXT_25G_LR 0x08 +#define I40E_AQ_PHY_TYPE_EXT_25G_AOC 0x10 +#define I40E_AQ_PHY_TYPE_EXT_25G_ACC 0x20 u8 fec_cfg_curr_mod_ext_info; #define I40E_AQ_ENABLE_FEC_KR 0x01 #define I40E_AQ_ENABLE_FEC_RS 0x02 @@ -1907,19 +2010,31 @@ struct i40e_aqc_get_link_status { #define I40E_AQ_25G_SERDES_UCODE_ERR 0X04 #define I40E_AQ_25G_NIMB_UCODE_ERR 0X05 u8 loopback; /* use defines from i40e_aqc_set_lb_mode */ +/* Since firmware API 1.7 loopback field keeps power class info as well */ +#define I40E_AQ_LOOPBACK_MASK 0x07 +#define I40E_AQ_PWR_CLASS_SHIFT_LB 6 +#define I40E_AQ_PWR_CLASS_MASK_LB (0x03 << I40E_AQ_PWR_CLASS_SHIFT_LB) __le16 max_frame_size; u8 config; #define I40E_AQ_CONFIG_FEC_KR_ENA 0x01 #define I40E_AQ_CONFIG_FEC_RS_ENA 0x02 #define I40E_AQ_CONFIG_CRC_ENA 0x04 #define I40E_AQ_CONFIG_PACING_MASK 0x78 - u8 power_desc; + union { + struct { + u8 power_desc; #define I40E_AQ_LINK_POWER_CLASS_1 0x00 #define I40E_AQ_LINK_POWER_CLASS_2 0x01 #define I40E_AQ_LINK_POWER_CLASS_3 0x02 #define I40E_AQ_LINK_POWER_CLASS_4 0x03 #define I40E_AQ_PWR_CLASS_MASK 0x03 - u8 reserved[4]; + u8 reserved[4]; + }; + struct { + u8 link_type[4]; + u8 link_type_ext; + }; + }; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_get_link_status); @@ -1956,11 +2071,28 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_an_advt_reg); /* Set Loopback mode (0x0618) */ struct i40e_aqc_set_lb_mode { - __le16 lb_mode; + u8 lb_level; +#define I40E_AQ_LB_NONE 0 +#define I40E_AQ_LB_MAC 1 +#define I40E_AQ_LB_SERDES 2 +#define I40E_AQ_LB_PHY_INT 3 +#define I40E_AQ_LB_PHY_EXT 4 +#define I40E_AQ_LB_CPVL_PCS 5 +#define I40E_AQ_LB_CPVL_EXT 6 #define I40E_AQ_LB_PHY_LOCAL 0x01 #define I40E_AQ_LB_PHY_REMOTE 0x02 #define I40E_AQ_LB_MAC_LOCAL 0x04 - u8 reserved[14]; + u8 lb_type; +#define I40E_AQ_LB_LOCAL 0 +#define I40E_AQ_LB_FAR 0x01 + u8 speed; +#define I40E_AQ_LB_SPEED_NONE 0 +#define I40E_AQ_LB_SPEED_1G 1 +#define I40E_AQ_LB_SPEED_10G 2 +#define I40E_AQ_LB_SPEED_40G 3 +#define I40E_AQ_LB_SPEED_20G 4 + u8 force_speed; + u8 reserved[12]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_set_lb_mode); @@ -2002,14 +2134,34 @@ struct i40e_aqc_run_phy_activity { I40E_CHECK_CMD_LENGTH(i40e_aqc_run_phy_activity); +/* Set PHY Register command (0x0628) */ +/* Get PHY Register command (0x0629) */ +struct i40e_aqc_phy_register_access { + u8 phy_interface; +#define I40E_AQ_PHY_REG_ACCESS_INTERNAL 0 +#define I40E_AQ_PHY_REG_ACCESS_EXTERNAL 1 +#define I40E_AQ_PHY_REG_ACCESS_EXTERNAL_MODULE 2 + u8 dev_addres; + u8 reserved1[2]; + __le32 reg_address; + __le32 reg_value; + u8 reserved2[4]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_phy_register_access); + /* NVM Read command (indirect 0x0701) * NVM Erase commands (direct 0x0702) * NVM Update commands (indirect 0x0703) */ struct i40e_aqc_nvm_update { u8 command_flags; -#define I40E_AQ_NVM_LAST_CMD 0x01 -#define I40E_AQ_NVM_FLASH_ONLY 0x80 +#define I40E_AQ_NVM_LAST_CMD 0x01 +#define I40E_AQ_NVM_FLASH_ONLY 0x80 +#define I40E_AQ_NVM_PRESERVATION_FLAGS_SHIFT 1 +#define I40E_AQ_NVM_PRESERVATION_FLAGS_MASK 0x03 +#define I40E_AQ_NVM_PRESERVATION_FLAGS_SELECTED 0x03 +#define I40E_AQ_NVM_PRESERVATION_FLAGS_ALL 0x01 u8 module_pointer; __le16 length; __le32 offset; @@ -2268,6 +2420,17 @@ struct i40e_aqc_lldp_start { }; I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_start); + +/* Set DCB (direct 0x0303) */ +struct i40e_aqc_set_dcb_parameters { + u8 command; +#define I40E_AQ_DCB_SET_AGENT 0x1 +#define I40E_DCB_VALID 0x1 + u8 valid_flags; + u8 reserved[14]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_dcb_parameters); /* Get CEE DCBX Oper Config (0x0A07) * uses the generic descriptor struct Modified: stable/11/sys/dev/ixl/i40e_alloc.h ============================================================================== --- stable/11/sys/dev/ixl/i40e_alloc.h Mon May 7 23:10:12 2018 (r333342) +++ stable/11/sys/dev/ixl/i40e_alloc.h Mon May 7 23:23:11 2018 (r333343) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2013-2015, Intel Corporation + Copyright (c) 2013-2017, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without Modified: stable/11/sys/dev/ixl/i40e_common.c ============================================================================== --- stable/11/sys/dev/ixl/i40e_common.c Mon May 7 23:10:12 2018 (r333342) +++ stable/11/sys/dev/ixl/i40e_common.c Mon May 7 23:23:11 2018 (r333343) @@ -1,6 +1,6 @@ /****************************************************************************** - Copyright (c) 2013-2015, Intel Corporation + Copyright (c) 2013-2017, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -35,7 +35,7 @@ #include "i40e_type.h" #include "i40e_adminq.h" #include "i40e_prototype.h" -#include "i40e_virtchnl.h" +#include "virtchnl.h" /** @@ -68,7 +68,6 @@ enum i40e_status_code i40e_set_mac_type(struct i40e_hw case I40E_DEV_ID_25G_SFP28: hw->mac.type = I40E_MAC_XL710; break; - case I40E_DEV_ID_X722_A0: case I40E_DEV_ID_KX_X722: case I40E_DEV_ID_QSFP_X722: case I40E_DEV_ID_SFP_X722: @@ -78,11 +77,11 @@ enum i40e_status_code i40e_set_mac_type(struct i40e_hw hw->mac.type = I40E_MAC_X722; break; case I40E_DEV_ID_X722_VF: - case I40E_DEV_ID_X722_A0_VF: hw->mac.type = I40E_MAC_X722_VF; break; case I40E_DEV_ID_VF: case I40E_DEV_ID_VF_HV: + case I40E_DEV_ID_ADAPTIVE_VF: hw->mac.type = I40E_MAC_VF; break; default: @@ -298,6 +297,8 @@ const char *i40e_stat_str(struct i40e_hw *hw, enum i40 return "I40E_NOT_SUPPORTED"; case I40E_ERR_FIRMWARE_API_VERSION: return "I40E_ERR_FIRMWARE_API_VERSION"; + case I40E_ERR_ADMIN_QUEUE_CRITICAL_ERROR: + return "I40E_ERR_ADMIN_QUEUE_CRITICAL_ERROR"; } snprintf(hw->err_str, sizeof(hw->err_str), "%d", stat_err); @@ -318,13 +319,15 @@ void i40e_debug_aq(struct i40e_hw *hw, enum i40e_debug void *buffer, u16 buf_len) { struct i40e_aq_desc *aq_desc = (struct i40e_aq_desc *)desc; - u16 len = LE16_TO_CPU(aq_desc->datalen); u8 *buf = (u8 *)buffer; + u16 len; u16 i = 0; if ((!(mask & hw->debug_mask)) || (desc == NULL)) return; + len = LE16_TO_CPU(aq_desc->datalen); + i40e_debug(hw, mask, "AQ CMD: opcode 0x%04X, flags 0x%04X, datalen 0x%04X, retval 0x%04X\n", LE16_TO_CPU(aq_desc->opcode), @@ -1008,7 +1011,8 @@ enum i40e_status_code i40e_init_shared_code(struct i40 hw->pf_id = (u8)(func_rid & 0x7); if (hw->mac.type == I40E_MAC_X722) - hw->flags |= I40E_HW_FLAG_AQ_SRCTL_ACCESS_ENABLE; + hw->flags |= I40E_HW_FLAG_AQ_SRCTL_ACCESS_ENABLE | + I40E_HW_FLAG_NVM_READ_REQUIRES_LOCK; status = i40e_init_nvm(hw); return status; @@ -1242,6 +1246,8 @@ static enum i40e_media_type i40e_get_media_type(struct case I40E_PHY_TYPE_40GBASE_AOC: case I40E_PHY_TYPE_10GBASE_AOC: case I40E_PHY_TYPE_25GBASE_CR: + case I40E_PHY_TYPE_25GBASE_AOC: + case I40E_PHY_TYPE_25GBASE_ACC: media = I40E_MEDIA_TYPE_DA; break; case I40E_PHY_TYPE_1000BASE_KX: @@ -1324,6 +1330,8 @@ enum i40e_status_code i40e_pf_reset(struct i40e_hw *hw * we don't need to do the PF Reset */ if (!cnt) { + u32 reg2 = 0; + reg = rd32(hw, I40E_PFGEN_CTRL); wr32(hw, I40E_PFGEN_CTRL, (reg | I40E_PFGEN_CTRL_PFSWR_MASK)); @@ -1331,6 +1339,12 @@ enum i40e_status_code i40e_pf_reset(struct i40e_hw *hw reg = rd32(hw, I40E_PFGEN_CTRL); if (!(reg & I40E_PFGEN_CTRL_PFSWR_MASK)) break; + reg2 = rd32(hw, I40E_GLGEN_RSTAT); + if (reg2 & I40E_GLGEN_RSTAT_DEVSTATE_MASK) { + DEBUGOUT("Core reset upcoming. Skipping PF reset request.\n"); + DEBUGOUT1("I40E_GLGEN_RSTAT = 0x%x\n", reg2); + return I40E_ERR_NOT_READY; + } i40e_msec_delay(1); } if (reg & I40E_PFGEN_CTRL_PFSWR_MASK) { @@ -1519,6 +1533,7 @@ u32 i40e_led_get(struct i40e_hw *hw) case I40E_COMBINED_ACTIVITY: case I40E_FILTER_ACTIVITY: case I40E_MAC_ACTIVITY: + case I40E_LINK_ACTIVITY: continue; default: break; @@ -1567,6 +1582,7 @@ void i40e_led_set(struct i40e_hw *hw, u32 mode, bool b case I40E_COMBINED_ACTIVITY: case I40E_FILTER_ACTIVITY: case I40E_MAC_ACTIVITY: + case I40E_LINK_ACTIVITY: continue; default: break; @@ -1577,9 +1593,6 @@ void i40e_led_set(struct i40e_hw *hw, u32 mode, bool b gpio_val |= ((mode << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) & I40E_GLGEN_GPIO_CTL_LED_MODE_MASK); - if (mode == I40E_LINK_ACTIVITY) - blink = FALSE; - if (blink) gpio_val |= BIT(I40E_GLGEN_GPIO_CTL_LED_BLINK_SHIFT); else @@ -1609,35 +1622,58 @@ enum i40e_status_code i40e_aq_get_phy_capabilities(str { struct i40e_aq_desc desc; enum i40e_status_code status; + u16 max_delay = I40E_MAX_PHY_TIMEOUT, total_delay = 0; u16 abilities_size = sizeof(struct i40e_aq_get_phy_abilities_resp); if (!abilities) return I40E_ERR_PARAM; - i40e_fill_default_direct_cmd_desc(&desc, - i40e_aqc_opc_get_phy_abilities); + do { + i40e_fill_default_direct_cmd_desc(&desc, + i40e_aqc_opc_get_phy_abilities); - desc.flags |= CPU_TO_LE16((u16)I40E_AQ_FLAG_BUF); - if (abilities_size > I40E_AQ_LARGE_BUF) - desc.flags |= CPU_TO_LE16((u16)I40E_AQ_FLAG_LB); + desc.flags |= CPU_TO_LE16((u16)I40E_AQ_FLAG_BUF); + if (abilities_size > I40E_AQ_LARGE_BUF) + desc.flags |= CPU_TO_LE16((u16)I40E_AQ_FLAG_LB); - if (qualified_modules) - desc.params.external.param0 |= + if (qualified_modules) + desc.params.external.param0 |= CPU_TO_LE32(I40E_AQ_PHY_REPORT_QUALIFIED_MODULES); - if (report_init) - desc.params.external.param0 |= + if (report_init) + desc.params.external.param0 |= CPU_TO_LE32(I40E_AQ_PHY_REPORT_INITIAL_VALUES); - status = i40e_asq_send_command(hw, &desc, abilities, abilities_size, - cmd_details); + status = i40e_asq_send_command(hw, &desc, abilities, + abilities_size, cmd_details); - if (hw->aq.asq_last_status == I40E_AQ_RC_EIO) - status = I40E_ERR_UNKNOWN_PHY; + if (status != I40E_SUCCESS) + break; + if (hw->aq.asq_last_status == I40E_AQ_RC_EIO) { + status = I40E_ERR_UNKNOWN_PHY; + break; + } else if (hw->aq.asq_last_status == I40E_AQ_RC_EAGAIN) { + i40e_msec_delay(1); + total_delay++; + status = I40E_ERR_TIMEOUT; + } + } while ((hw->aq.asq_last_status != I40E_AQ_RC_OK) && + (total_delay < max_delay)); + + if (status != I40E_SUCCESS) + return status; + if (report_init) { - hw->phy.phy_types = LE32_TO_CPU(abilities->phy_type); - hw->phy.phy_types |= ((u64)abilities->phy_type_ext << 32); + if (hw->mac.type == I40E_MAC_XL710 && + hw->aq.api_maj_ver == I40E_FW_API_VERSION_MAJOR && + hw->aq.api_min_ver >= I40E_MINOR_VER_GET_LINK_INFO_XL710) { + status = i40e_aq_get_link_info(hw, TRUE, NULL, NULL); + } else { + hw->phy.phy_types = LE32_TO_CPU(abilities->phy_type); + hw->phy.phy_types |= + ((u64)abilities->phy_type_ext << 32); + } } return status; @@ -1680,6 +1716,8 @@ enum i40e_status_code i40e_aq_set_phy_config(struct i4 /** * i40e_set_fc * @hw: pointer to the hw struct + * @aq_failures: buffer to return AdminQ failure information + * @atomic_restart: whether to enable atomic link restart * * Set the requested flow control mode using set_phy_config. **/ @@ -1899,7 +1937,7 @@ enum i40e_status_code i40e_aq_get_link_info(struct i40 hw_link_info->fec_info = resp->config & (I40E_AQ_CONFIG_FEC_KR_ENA | I40E_AQ_CONFIG_FEC_RS_ENA); hw_link_info->ext_info = resp->ext_info; - hw_link_info->loopback = resp->loopback; + hw_link_info->loopback = resp->loopback & I40E_AQ_LOOPBACK_MASK; hw_link_info->max_frame_size = LE16_TO_CPU(resp->max_frame_size); hw_link_info->pacing = resp->config & I40E_AQ_CONFIG_PACING_MASK; @@ -1930,6 +1968,16 @@ enum i40e_status_code i40e_aq_get_link_info(struct i40 hw->aq.fw_min_ver < 40)) && hw_link_info->phy_type == 0xE) hw_link_info->phy_type = I40E_PHY_TYPE_10GBASE_SFPP_CU; + if (hw->aq.api_maj_ver == I40E_FW_API_VERSION_MAJOR && + hw->aq.api_min_ver >= 7) { + __le32 tmp; + + i40e_memcpy(&tmp, resp->link_type, sizeof(tmp), + I40E_NONDMA_TO_NONDMA); + hw->phy.phy_types = LE32_TO_CPU(tmp); + hw->phy.phy_types |= ((u64)resp->link_type_ext << 32); + } + /* save link status information */ if (link) i40e_memcpy(link, hw_link_info, sizeof(*hw_link_info), @@ -2069,9 +2117,9 @@ aq_get_partner_advt_exit: * * Sets loopback modes. **/ -enum i40e_status_code i40e_aq_set_lb_modes(struct i40e_hw *hw, - u16 lb_modes, - struct i40e_asq_cmd_details *cmd_details) +enum i40e_status_code +i40e_aq_set_lb_modes(struct i40e_hw *hw, u8 lb_level, u8 lb_type, u8 speed, + struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; struct i40e_aqc_set_lb_mode *cmd = @@ -2081,7 +2129,11 @@ enum i40e_status_code i40e_aq_set_lb_modes(struct i40e i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_set_lb_modes); - cmd->lb_mode = CPU_TO_LE16(lb_modes); + cmd->lb_level = lb_level; + cmd->lb_type = lb_type; + cmd->speed = speed; + if (speed) + cmd->force_speed = 1; status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); @@ -2607,13 +2659,14 @@ enum i40e_status_code i40e_aq_get_switch_config(struct * i40e_aq_set_switch_config * @hw: pointer to the hardware structure * @flags: bit flag values to set + * @mode: cloud filter mode * @valid_flags: which bit flags to set * @cmd_details: pointer to command details structure or NULL * * Set switch configuration bits **/ enum i40e_status_code i40e_aq_set_switch_config(struct i40e_hw *hw, - u16 flags, u16 valid_flags, + u16 flags, u16 valid_flags, u8 mode, struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; @@ -2625,7 +2678,12 @@ enum i40e_status_code i40e_aq_set_switch_config(struct i40e_aqc_opc_set_switch_config); scfg->flags = CPU_TO_LE16(flags); scfg->valid_flags = CPU_TO_LE16(valid_flags); - + scfg->mode = mode; + if (hw->flags & I40E_HW_FLAG_802_1AD_CAPABLE) { + scfg->switch_tag = CPU_TO_LE16(hw->switch_tag); + scfg->first_tag = CPU_TO_LE16(hw->first_tag); + scfg->second_tag = CPU_TO_LE16(hw->second_tag); + } status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); return status; @@ -2771,6 +2829,10 @@ enum i40e_status_code i40e_update_link_info(struct i40 if (status) return status; + hw->phy.link_info.req_fec_info = + abilities.fec_cfg_curr_mod_ext_info & + (I40E_AQ_REQUEST_FEC_KR | I40E_AQ_REQUEST_FEC_RS); + i40e_memcpy(hw->phy.link_info.module_type, &abilities.module_type, sizeof(hw->phy.link_info.module_type), I40E_NONDMA_TO_NONDMA); } @@ -3019,8 +3081,8 @@ enum i40e_status_code i40e_aq_remove_macvlan(struct i4 * @mr_list: list of mirrored VSI SEIDs or VLAN IDs * @cmd_details: pointer to command details structure or NULL * @rule_id: Rule ID returned from FW - * @rule_used: Number of rules used in internal switch - * @rule_free: Number of rules free in internal switch + * @rules_used: Number of rules used in internal switch + * @rules_free: Number of rules free in internal switch * * Add/Delete a mirror rule to a specific switch. Mirror rules are supported for * VEBs/VEPA elements only @@ -3080,8 +3142,8 @@ static enum i40e_status_code i40e_mirrorrule_op(struct * @mr_list: list of mirrored VSI SEIDs or VLAN IDs * @cmd_details: pointer to command details structure or NULL * @rule_id: Rule ID returned from FW - * @rule_used: Number of rules used in internal switch - * @rule_free: Number of rules free in internal switch + * @rules_used: Number of rules used in internal switch + * @rules_free: Number of rules free in internal switch * * Add mirror rule. Mirror rules are supported for VEBs or VEPA elements only **/ @@ -3111,8 +3173,8 @@ enum i40e_status_code i40e_aq_add_mirrorrule(struct i4 * add_mirrorrule. * @mr_list: list of mirrored VLAN IDs to be removed * @cmd_details: pointer to command details structure or NULL - * @rule_used: Number of rules used in internal switch - * @rule_free: Number of rules free in internal switch + * @rules_used: Number of rules used in internal switch + * @rules_free: Number of rules free in internal switch * * Delete a mirror rule. Mirror rules are supported for VEBs/VEPA elements only **/ @@ -3515,6 +3577,8 @@ enum i40e_status_code i40e_aq_write_nvm_config(struct /** * i40e_aq_oem_post_update - triggers an OEM specific flow after update * @hw: pointer to the hw struct + * @buff: buffer for result + * @buff_size: buffer size * @cmd_details: pointer to command details structure or NULL **/ enum i40e_status_code i40e_aq_oem_post_update(struct i40e_hw *hw, @@ -3593,9 +3657,10 @@ static void i40e_parse_discover_capabilities(struct i4 u32 valid_functions, num_functions; u32 number, logical_id, phys_id; struct i40e_hw_capabilities *p; + enum i40e_status_code status; + u16 id, ocp_cfg_word0; u8 major_rev; u32 i = 0; - u16 id; cap = (struct i40e_aqc_list_capabilities_element_resp *) buff; @@ -3887,6 +3952,26 @@ static void i40e_parse_discover_capabilities(struct i4 hw->num_ports++; } + /* OCP cards case: if a mezz is removed the ethernet port is at + * disabled state in PRTGEN_CNF register. Additional NVM read is + * needed in order to check if we are dealing with OCP card. + * Those cards have 4 PFs at minimum, so using PRTGEN_CNF for counting + * physical ports results in wrong partition id calculation and thus + * not supporting WoL. + */ + if (hw->mac.type == I40E_MAC_X722) { + if (i40e_acquire_nvm(hw, I40E_RESOURCE_READ) == I40E_SUCCESS) { + status = i40e_aq_read_nvm(hw, I40E_SR_EMP_MODULE_PTR, + 2 * I40E_SR_OCP_CFG_WORD0, + sizeof(ocp_cfg_word0), + &ocp_cfg_word0, TRUE, NULL); + if (status == I40E_SUCCESS && + (ocp_cfg_word0 & I40E_SR_OCP_ENABLED)) + hw->num_ports = 4; + i40e_release_nvm(hw); + } + } + valid_functions = p->valid_functions; num_functions = 0; while (valid_functions) { @@ -3964,13 +4049,14 @@ exit: * @length: length of the section to be written (in bytes from the offset) * @data: command buffer (size [bytes] = length) * @last_command: tells if this is the last command in a series + * @preservation_flags: Preservation mode flags * @cmd_details: pointer to command details structure or NULL * * Update the NVM using the admin queue commands **/ enum i40e_status_code i40e_aq_update_nvm(struct i40e_hw *hw, u8 module_pointer, u32 offset, u16 length, void *data, - bool last_command, + bool last_command, u8 preservation_flags, struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; @@ -3991,6 +4077,16 @@ enum i40e_status_code i40e_aq_update_nvm(struct i40e_h /* If this is the last command in a series, set the proper flag. */ if (last_command) cmd->command_flags |= I40E_AQ_NVM_LAST_CMD; + if (hw->mac.type == I40E_MAC_X722) { + if (preservation_flags == I40E_NVM_PRESERVATION_FLAGS_SELECTED) + cmd->command_flags |= + (I40E_AQ_NVM_PRESERVATION_FLAGS_SELECTED << + I40E_AQ_NVM_PRESERVATION_FLAGS_SHIFT); + else if (preservation_flags == I40E_NVM_PRESERVATION_FLAGS_ALL) + cmd->command_flags |= + (I40E_AQ_NVM_PRESERVATION_FLAGS_ALL << + I40E_AQ_NVM_PRESERVATION_FLAGS_SHIFT); + } cmd->module_pointer = module_pointer; cmd->offset = CPU_TO_LE32(offset); cmd->length = CPU_TO_LE16(length); @@ -4006,6 +4102,28 @@ i40e_aq_update_nvm_exit: } /** + * i40e_aq_nvm_progress + * @hw: pointer to the hw struct + * @progress: pointer to progress returned from AQ + * @cmd_details: pointer to command details structure or NULL + * + * Gets progress of flash rearrangement process + **/ +enum i40e_status_code i40e_aq_nvm_progress(struct i40e_hw *hw, u8 *progress, + struct i40e_asq_cmd_details *cmd_details) +{ + enum i40e_status_code status; + struct i40e_aq_desc desc; + + DEBUGFUNC("i40e_aq_nvm_progress"); + + i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_nvm_progress); + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); + *progress = desc.params.raw[0]; + return status; +} + +/** * i40e_aq_get_lldp_mib * @hw: pointer to the hw struct * @bridge_type: type of bridge requested @@ -4319,7 +4437,39 @@ enum i40e_status_code i40e_aq_start_lldp(struct i40e_h i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_lldp_start); cmd->command = I40E_AQ_LLDP_AGENT_START; + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); + return status; +} + +/** + * i40e_aq_set_dcb_parameters + * @hw: pointer to the hw struct + * @cmd_details: pointer to command details structure or NULL + * @dcb_enable: True if DCB configuration needs to be applied + * + **/ +enum i40e_status_code +i40e_aq_set_dcb_parameters(struct i40e_hw *hw, bool dcb_enable, + struct i40e_asq_cmd_details *cmd_details) +{ + struct i40e_aq_desc desc; + struct i40e_aqc_set_dcb_parameters *cmd = + (struct i40e_aqc_set_dcb_parameters *)&desc.params.raw; + enum i40e_status_code status; + + if ((hw->mac.type != I40E_MAC_XL710) || + ((hw->aq.api_maj_ver < 1) || + ((hw->aq.api_maj_ver == 1) && (hw->aq.api_min_ver < 6)))) + return I40E_ERR_DEVICE_NOT_SUPPORTED; + + i40e_fill_default_direct_cmd_desc(&desc, + i40e_aqc_opc_set_dcb_parameters); + + if (dcb_enable) { + cmd->valid_flags = I40E_DCB_VALID; + cmd->command = I40E_AQ_DCB_SET_AGENT; + } status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); return status; @@ -4387,7 +4537,6 @@ enum i40e_status_code i40e_aq_start_stop_dcbx(struct i * i40e_aq_add_udp_tunnel * @hw: pointer to the hw struct * @udp_port: the UDP port to add in Host byte order - * @header_len: length of the tunneling header length in DWords * @protocol_index: protocol index type * @filter_index: pointer to filter index * @cmd_details: pointer to command details structure or NULL @@ -5434,7 +5583,7 @@ enum i40e_status_code i40e_aq_add_rem_control_packet_f } if (mac_addr) - i40e_memcpy(cmd->mac, mac_addr, I40E_ETH_LENGTH_OF_ADDRESS, + i40e_memcpy(cmd->mac, mac_addr, ETH_ALEN, I40E_NONDMA_TO_NONDMA); cmd->etype = CPU_TO_LE16(ethtype); @@ -5458,10 +5607,10 @@ enum i40e_status_code i40e_aq_add_rem_control_packet_f * @hw: pointer to the hw struct * @seid: VSI seid to add ethertype filter from **/ -#define I40E_FLOW_CONTROL_ETHTYPE 0x8808 void i40e_add_filter_to_drop_tx_flow_control_frames(struct i40e_hw *hw, u16 seid) { +#define I40E_FLOW_CONTROL_ETHTYPE 0x8808 u16 flag = I40E_AQC_ADD_CONTROL_PACKET_FLAGS_IGNORE_MAC | I40E_AQC_ADD_CONTROL_PACKET_FLAGS_DROP | I40E_AQC_ADD_CONTROL_PACKET_FLAGS_TX; @@ -5892,6 +6041,7 @@ void i40e_set_pci_config_data(struct i40e_hw *hw, u16 * @ret_buff_size: actual buffer size returned * @ret_next_table: next block to read * @ret_next_index: next index to read + * @cmd_details: pointer to command details structure or NULL * * Dump internal FW/HW data for debug purposes. * @@ -6014,7 +6164,7 @@ enum i40e_status_code i40e_aq_configure_partition_bw(s * i40e_read_phy_register_clause22 * @hw: pointer to the HW structure * @reg: register address in the page - * @phy_adr: PHY address on MDIO interface + * @phy_addr: PHY address on MDIO interface * @value: PHY register value * * Reads specified PHY register value @@ -6059,7 +6209,7 @@ enum i40e_status_code i40e_read_phy_register_clause22( * i40e_write_phy_register_clause22 * @hw: pointer to the HW structure * @reg: register address in the page - * @phy_adr: PHY address on MDIO interface + * @phy_addr: PHY address on MDIO interface * @value: PHY register value * * Writes specified PHY register value @@ -6100,7 +6250,7 @@ enum i40e_status_code i40e_write_phy_register_clause22 * @hw: pointer to the HW structure * @page: registers page number * @reg: register address in the page - * @phy_adr: PHY address on MDIO interface + * @phy_addr: PHY address on MDIO interface * @value: PHY register value * * Reads specified PHY register value @@ -6174,7 +6324,7 @@ phy_read_end: * @hw: pointer to the HW structure * @page: registers page number * @reg: register address in the page - * @phy_adr: PHY address on MDIO interface + * @phy_addr: PHY address on MDIO interface * @value: PHY register value * * Writes value to specified PHY register @@ -6241,7 +6391,7 @@ phy_write_end: * @hw: pointer to the HW structure * @page: registers page number * @reg: register address in the page - * @phy_adr: PHY address on MDIO interface + * @phy_addr: PHY address on MDIO interface * @value: PHY register value *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-11@freebsd.org Tue May 8 05:10:07 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 47D58FCE790; Tue, 8 May 2018 05:10:07 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E9955815EC; Tue, 8 May 2018 05:10:06 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E42AE25AF2; Tue, 8 May 2018 05:10:06 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w485A6gZ069515; Tue, 8 May 2018 05:10:06 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w485A61A069514; Tue, 8 May 2018 05:10:06 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201805080510.w485A61A069514@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 8 May 2018 05:10:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333356 - stable/11/usr.sbin/syslogd X-SVN-Group: stable-11 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/11/usr.sbin/syslogd X-SVN-Commit-Revision: 333356 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 05:10:07 -0000 Author: delphij Date: Tue May 8 05:10:06 2018 New Revision: 333356 URL: https://svnweb.freebsd.org/changeset/base/333356 Log: MFC r332877: Correct size for allocation and bzero of fdsr. Approved by: re (gjb) Modified: stable/11/usr.sbin/syslogd/syslogd.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/syslogd/syslogd.c ============================================================================== --- stable/11/usr.sbin/syslogd/syslogd.c Tue May 8 04:54:36 2018 (r333355) +++ stable/11/usr.sbin/syslogd/syslogd.c Tue May 8 05:10:06 2018 (r333356) @@ -675,7 +675,7 @@ main(int argc, char *argv[]) fdsrmax = fx->s; fdsr = (fd_set *)calloc(howmany(fdsrmax+1, NFDBITS), - sizeof(fd_mask)); + sizeof(*fdsr)); if (fdsr == NULL) errx(1, "calloc fd_set"); @@ -686,7 +686,7 @@ main(int argc, char *argv[]) die(WantDie); bzero(fdsr, howmany(fdsrmax+1, NFDBITS) * - sizeof(fd_mask)); + sizeof(*fdsr)); if (fklog != -1) FD_SET(fklog, fdsr); From owner-svn-src-stable-11@freebsd.org Tue May 8 10:03:33 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E895CFAFE96; Tue, 8 May 2018 10:03:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 953AE80E2C; Tue, 8 May 2018 10:03:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 768A328CD7; Tue, 8 May 2018 10:03:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48A3Wbb020529; Tue, 8 May 2018 10:03:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48A3Wvu020528; Tue, 8 May 2018 10:03:32 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805081003.w48A3Wvu020528@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 8 May 2018 10:03:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333359 - stable/11/sys/amd64/amd64 X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/amd64/amd64 X-SVN-Commit-Revision: 333359 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 10:03:33 -0000 Author: kib Date: Tue May 8 10:03:32 2018 New Revision: 333359 URL: https://svnweb.freebsd.org/changeset/base/333359 Log: MFC r333208: Style. Approved by: re (marius) Modified: stable/11/sys/amd64/amd64/elf_machdep.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/amd64/elf_machdep.c ============================================================================== --- stable/11/sys/amd64/amd64/elf_machdep.c Tue May 8 06:09:49 2018 (r333358) +++ stable/11/sys/amd64/amd64/elf_machdep.c Tue May 8 10:03:32 2018 (r333359) @@ -216,7 +216,6 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas } switch (rtype) { - case R_X86_64_NONE: /* none */ break; @@ -255,7 +254,7 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas * objects. */ printf("kldload: unexpected R_COPY relocation\n"); - return -1; + return (-1); break; case R_X86_64_GLOB_DAT: /* S */ @@ -277,9 +276,9 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas default: printf("kldload: unexpected relocation type %ld\n", rtype); - return -1; + return (-1); } - return(0); + return (0); } int From owner-svn-src-stable-11@freebsd.org Tue May 8 10:18:25 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F46BFB03BF; Tue, 8 May 2018 10:18:25 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2D79383A30; Tue, 8 May 2018 10:18:25 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0E9D628EAB; Tue, 8 May 2018 10:18:25 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48AIOv7025467; Tue, 8 May 2018 10:18:24 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48AIOIj025466; Tue, 8 May 2018 10:18:24 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805081018.w48AIOIj025466@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 8 May 2018 10:18:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333360 - stable/11/sys/vm X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/vm X-SVN-Commit-Revision: 333360 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 10:18:25 -0000 Author: kib Date: Tue May 8 10:18:24 2018 New Revision: 333360 URL: https://svnweb.freebsd.org/changeset/base/333360 Log: MFC r333091: Eliminate some vm object relocks in vm fault. Approved by: re (marius) Modified: stable/11/sys/vm/vm_fault.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/vm/vm_fault.c ============================================================================== --- stable/11/sys/vm/vm_fault.c Tue May 8 10:03:32 2018 (r333359) +++ stable/11/sys/vm/vm_fault.c Tue May 8 10:18:24 2018 (r333360) @@ -130,7 +130,7 @@ struct faultstate { static void vm_fault_dontneed(const struct faultstate *fs, vm_offset_t vaddr, int ahead); static void vm_fault_prefault(const struct faultstate *fs, vm_offset_t addra, - int backward, int forward); + int backward, int forward, bool obj_locked); static inline void release_page(struct faultstate *fs) @@ -318,9 +318,9 @@ vm_fault_soft_fast(struct faultstate *fs, vm_offset_t return (rv); vm_fault_fill_hold(m_hold, m); vm_fault_dirty(fs->entry, m, prot, fault_type, fault_flags, false); - VM_OBJECT_RUNLOCK(fs->first_object); if (psind == 0 && !wired) - vm_fault_prefault(fs, vaddr, PFBAK, PFFOR); + vm_fault_prefault(fs, vaddr, PFBAK, PFFOR, true); + VM_OBJECT_RUNLOCK(fs->first_object); vm_map_lookup_done(fs->map, fs->entry); curthread->td_ru.ru_minflt++; return (KERN_SUCCESS); @@ -1262,7 +1262,7 @@ readrest: wired == 0) vm_fault_prefault(&fs, vaddr, faultcount > 0 ? behind : PFBAK, - faultcount > 0 ? ahead : PFFOR); + faultcount > 0 ? ahead : PFFOR, false); VM_OBJECT_WLOCK(fs.object); vm_page_lock(fs.m); @@ -1394,7 +1394,7 @@ vm_fault_dontneed(const struct faultstate *fs, vm_offs */ static void vm_fault_prefault(const struct faultstate *fs, vm_offset_t addra, - int backward, int forward) + int backward, int forward, bool obj_locked) { pmap_t pmap; vm_map_entry_t entry; @@ -1440,7 +1440,8 @@ vm_fault_prefault(const struct faultstate *fs, vm_offs pindex = ((addr - entry->start) + entry->offset) >> PAGE_SHIFT; lobject = entry->object.vm_object; - VM_OBJECT_RLOCK(lobject); + if (!obj_locked) + VM_OBJECT_RLOCK(lobject); while ((m = vm_page_lookup(lobject, pindex)) == NULL && lobject->type == OBJT_DEFAULT && (backing_object = lobject->backing_object) != NULL) { @@ -1448,17 +1449,20 @@ vm_fault_prefault(const struct faultstate *fs, vm_offs 0, ("vm_fault_prefault: unaligned object offset")); pindex += lobject->backing_object_offset >> PAGE_SHIFT; VM_OBJECT_RLOCK(backing_object); - VM_OBJECT_RUNLOCK(lobject); + if (!obj_locked || lobject != entry->object.vm_object) + VM_OBJECT_RUNLOCK(lobject); lobject = backing_object; } if (m == NULL) { - VM_OBJECT_RUNLOCK(lobject); + if (!obj_locked || lobject != entry->object.vm_object) + VM_OBJECT_RUNLOCK(lobject); break; } if (m->valid == VM_PAGE_BITS_ALL && (m->flags & PG_FICTITIOUS) == 0) pmap_enter_quick(pmap, addr, m, entry->protection); - VM_OBJECT_RUNLOCK(lobject); + if (!obj_locked || lobject != entry->object.vm_object) + VM_OBJECT_RUNLOCK(lobject); } } From owner-svn-src-stable-11@freebsd.org Tue May 8 10:56:07 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6FECDFB17D2; Tue, 8 May 2018 10:56:07 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1C40B6C4E3; Tue, 8 May 2018 10:56:07 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F2CA729563; Tue, 8 May 2018 10:56:06 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48Au6eS045281; Tue, 8 May 2018 10:56:06 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48Au6Tw045279; Tue, 8 May 2018 10:56:06 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805081056.w48Au6Tw045279@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Tue, 8 May 2018 10:56:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333361 - in stable/11/sys/x86: acpica include X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in stable/11/sys/x86: acpica include X-SVN-Commit-Revision: 333361 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 10:56:07 -0000 Author: kib Date: Tue May 8 10:56:06 2018 New Revision: 333361 URL: https://svnweb.freebsd.org/changeset/base/333361 Log: MFC r333125: Turn off IBRS on suspend. Approved by: re (marius) Modified: stable/11/sys/x86/acpica/acpi_wakeup.c stable/11/sys/x86/include/x86_var.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/x86/acpica/acpi_wakeup.c ============================================================================== --- stable/11/sys/x86/acpica/acpi_wakeup.c Tue May 8 10:18:24 2018 (r333360) +++ stable/11/sys/x86/acpica/acpi_wakeup.c Tue May 8 10:56:06 2018 (r333361) @@ -190,6 +190,10 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) { ACPI_STATUS status; struct pcb *pcb; +#ifdef __amd64__ + struct pcpu *pc; + int i; +#endif if (sc->acpi_wakeaddr == 0ul) return (-1); /* couldn't alloc wake memory */ @@ -217,6 +221,14 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) if (!CPU_EMPTY(&suspcpus) && suspend_cpus(suspcpus) == 0) { device_printf(sc->acpi_dev, "Failed to suspend APs\n"); return (0); /* couldn't sleep */ + } +#endif +#ifdef __amd64__ + hw_ibrs_active = 0; + cpu_stdext_feature3 = 0; + CPU_FOREACH(i) { + pc = pcpu_find(i); + pc->pc_ibpb_set = 0; } #endif Modified: stable/11/sys/x86/include/x86_var.h ============================================================================== --- stable/11/sys/x86/include/x86_var.h Tue May 8 10:18:24 2018 (r333360) +++ stable/11/sys/x86/include/x86_var.h Tue May 8 10:56:06 2018 (r333361) @@ -81,7 +81,8 @@ extern int _ufssel; extern int _ugssel; extern int use_xsave; extern uint64_t xsave_mask; -extern int pti; +extern int pti; +extern int hw_ibrs_active; struct pcb; struct thread; From owner-svn-src-stable-11@freebsd.org Tue May 8 15:51:42 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2880FB9B4B; Tue, 8 May 2018 15:51:41 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 917316B9FE; Tue, 8 May 2018 15:51:41 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 726312C4BE; Tue, 8 May 2018 15:51:41 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48Fpfox093449; Tue, 8 May 2018 15:51:41 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48FpeEx093443; Tue, 8 May 2018 15:51:40 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805081551.w48FpeEx093443@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Tue, 8 May 2018 15:51:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333364 - in stable/11: share/man/man4 sys/dev/bnxt X-SVN-Group: stable-11 X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/dev/bnxt X-SVN-Commit-Revision: 333364 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 15:51:42 -0000 Author: shurd Date: Tue May 8 15:51:40 2018 New Revision: 333364 URL: https://svnweb.freebsd.org/changeset/base/333364 Log: MFC: r308728, r314369, r315243, r316026, r316581, r316616, r318359, r319922, r319990, r321481, r323232-323233, r323321, r323874, r323955, r324323, r324964, r325169, r325488, r325620, r326985, r326999-327001, r327003, r329335 Update bnxt to latest -CURRENT. Approved by: re (gjb@) Differential Revision: https://reviews.freebsd.org/D15143 Modified: stable/11/share/man/man4/bnxt.4 stable/11/sys/dev/bnxt/bnxt.h stable/11/sys/dev/bnxt/bnxt_hwrm.c stable/11/sys/dev/bnxt/bnxt_hwrm.h stable/11/sys/dev/bnxt/bnxt_sysctl.c stable/11/sys/dev/bnxt/bnxt_sysctl.h stable/11/sys/dev/bnxt/bnxt_txrx.c stable/11/sys/dev/bnxt/hsi_struct_def.h stable/11/sys/dev/bnxt/if_bnxt.c Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/bnxt.4 ============================================================================== --- stable/11/share/man/man4/bnxt.4 Tue May 8 13:23:39 2018 (r333363) +++ stable/11/share/man/man4/bnxt.4 Tue May 8 15:51:40 2018 (r333364) @@ -68,28 +68,44 @@ Broadcom BCM57302 NetXtreme-C 10Gb/25Gb Ethernet Contr .It Broadcom BCM57304 NetXtreme-C 10Gb/25Gb/40Gb/50Gb Ethernet Controller .It -Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller +Broadcom BCM57304 NetXtreme-C Ethernet Virtual Function .It -Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller +Broadcom BCM57314 NetXtreme-C Ethernet Virtual Function .It -Broadcom BCM57406 NetXtreme-E 10GBase-T Ethernet Controller +Broadcom BCM57402 NetXtreme-E 10Gb Ethernet Controller .It -Broadcom BCM57402 NetXtreme-E Partition +Broadcom BCM57402 NetXtreme-E Ethernet Partition .It -Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller +Broadcom BCM57404 NetXtreme-E 10Gb/25Gb Ethernet Controller .It +Broadcom BCM57404 NetXtreme-E Ethernet Virtual Function +.It Broadcom BCM57404 NetXtreme-E Partition .It +Broadcom BCM57406 NetXtreme-E 10GBASE-T Ethernet Controller +.It Broadcom BCM57406 NetXtreme-E Partition .It +Broadcom BCM57407 NetXtreme-E 10GBase-T Ethernet Controller +.It Broadcom BCM57407 NetXtreme-E 25Gb Ethernet Controller .It -Broadcom BCM57304 NetXtreme-C Virtual Function +Broadcom BCM57407 NetXtreme-E Partition .It -Broadcom BCM57404 NetXtreme-E Virtual Function +Broadcom BCM57412 NetXtreme-E Partition +.It +Broadcom BCM57414 NetXtreme-E Ethernet Virtual Function +.It +Broadcom BCM57414 NetXtreme-E Partition +.It +Broadcom BCM57416 NetXtreme-E Partition +.It +Broadcom BCM57417 NetXtreme-E Ethernet Partition +.It +Broadcom BCM57454 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet .El .Sh SYSCTL VARIABLES -These variables must be set before loading the driver, either via +These variables must be set before loading the driver, either via .Xr loader.conf 5 or through the use of .Xr kenv 1 . @@ -165,11 +181,12 @@ variables are read-only: .Bl -tag -width indent .It Va dev.bnxt.X.if_name Current interface name of the device. -This will normally be +This will normally be .Va bnxtX , but this can be changed using .Cm ifconfig name . -This sysctl allows correlating an interface with a child of dev.bnxt. +This sysctl allows correlating an interface with a child of +.Va dev.bnxt . .It Va dev.bnxt.X.nvram.* Information about the NVRAM device which contains the device firmware. .It Va dev.bnxt.X.ver.* @@ -180,21 +197,30 @@ Supported HWRM API version of the currently running fi HWRM API version the driver was built to support. .It Va dev.bnxt.X.hwstats.* Per-queue statistics tracked by the hardware. +.It Va dev.bnxt.X.hwstats.port_stats.* +Per-port statistics tracked by the hardware. .It Va dev.bnxt.X.hwstats.rxq0.drop_pkts Number of packets dropped by hardware on queue zero. This number might seem high, but the count includes packets dropped due to incorrect destination MAC, unsubscribed multicast address, and other normal reasons to ignore Ethernet frames. +.It Va dev.bnxt.X.hwstats.rxq0.tpa_* +statistics related to HW LRO. +.It Va dev.bnxt.X.hw_lro.* +Enable / Disable HW LRO feature. Defaults to disable. +Enabling HW LRO could cause issues when forwarding is enabled on host. +.It Va dev.bnxt.X.fc +Enable / Disable Flow Control feature. Defaults to Enable .El .Sh DIAGNOSTICS .Bl -diag .It "bnxt%d: %s command returned %s error." Device firmware rejected a command from the driver. There might be a driver/firmware HWRM API mismatch. -.It "bnxt%d: Timeout sending %s (timeout: %d) seq %d\n" +.It "bnxt%d: Timeout sending %s (timeout: %d) seq %d" Device firmware unresponsive. A PCI device reset is likely needed. -.It "bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d\n" +.It "bnxt%d: Timeout sending %s (timeout: %d) msg {0x%x 0x%x} len:%d v: %d" Partial firmware response. A PCI device reset is likely needed. .Pp @@ -203,20 +229,23 @@ As of this writing, the system must be rebooted to ini .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , +.Xr iflib 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr vlan 4 , -.Xr ifconfig 8 , -.Xr iflib 4 +.Xr ifconfig 8 .Sh HISTORY The .Nm device driver first appeared in .Fx 11.1 . .Sh AUTHORS +.An -nosplit The .Nm driver was written by -.An Jack Vogel Aq Mt jfvogel@gmail.com . +.An Jack Vogel Aq Mt jfvogel@gmail.com +and +.An Stephen Hurd Aq Mt shurd@freebsd.org , and is currently maintained by -.An Stephen Hurd Aq Mt stephen.hurd@broadcom.com . +.An Broadcom Limited Aq Mt freebsd.pdl@broadcom.com . Modified: stable/11/sys/dev/bnxt/bnxt.h ============================================================================== --- stable/11/sys/dev/bnxt/bnxt.h Tue May 8 13:23:39 2018 (r333363) +++ stable/11/sys/dev/bnxt/bnxt.h Tue May 8 15:51:40 2018 (r333364) @@ -93,6 +93,18 @@ __FBSDID("$FreeBSD$"); #define BNXT_MAX_MTU 9000 +#define BNXT_RSS_HASH_TYPE_TCPV4 0 +#define BNXT_RSS_HASH_TYPE_UDPV4 1 +#define BNXT_RSS_HASH_TYPE_IPV4 2 +#define BNXT_RSS_HASH_TYPE_TCPV6 3 +#define BNXT_RSS_HASH_TYPE_UDPV6 4 +#define BNXT_RSS_HASH_TYPE_IPV6 5 +#define BNXT_GET_RSS_PROFILE_ID(rss_hash_type) ((rss_hash_type >> 1) & 0x1F) + +#define BNXT_NO_MORE_WOL_FILTERS 0xFFFF +#define bnxt_wol_supported(softc) (!((softc)->flags & BNXT_FLAG_VF) && \ + ((softc)->flags & BNXT_FLAG_WOL_CAP )) + /* Completion related defines */ #define CMP_VALID(cmp, v_bit) \ ((!!(((struct cmpl_base *)(cmp))->info3_v & htole32(CMPL_BASE_V))) == !!(v_bit) ) @@ -199,10 +211,31 @@ __FBSDID("$FreeBSD$"); #define BNXT_HWRM_LOCK_DESTROY(_softc) mtx_destroy(&(_softc)->hwrm_lock) #define BNXT_HWRM_LOCK_ASSERT(_softc) mtx_assert(&(_softc)->hwrm_lock, \ MA_OWNED) +#define BNXT_IS_FLOW_CTRL_CHANGED(link_info) \ + ((link_info->last_flow_ctrl.tx != link_info->flow_ctrl.tx) || \ + (link_info->last_flow_ctrl.rx != link_info->flow_ctrl.rx) || \ + (link_info->last_flow_ctrl.autoneg != link_info->flow_ctrl.autoneg)) /* Chip info */ #define BNXT_TSO_SIZE UINT16_MAX +#define min_t(type, x, y) ({ \ + type __min1 = (x); \ + type __min2 = (y); \ + __min1 < __min2 ? __min1 : __min2; }) + +#define max_t(type, x, y) ({ \ + type __max1 = (x); \ + type __max2 = (y); \ + __max1 > __max2 ? __max1 : __max2; }) + +#define clamp_t(type, _x, min, max) min_t(type, max_t(type, _x, min), max) + +#define BNXT_IFMEDIA_ADD(supported, fw_speed, ifm_speed) do { \ + if ((supported) & HWRM_PORT_PHY_QCFG_OUTPUT_SUPPORT_ ## fw_speed) \ + ifmedia_add(softc->media, IFM_ETHER | (ifm_speed), 0, NULL); \ +} while(0) + #define BNXT_MIN_FRAME_SIZE 52 /* Frames must be padded to this size for some A0 chips */ /* NVRAM access */ @@ -266,6 +299,12 @@ struct bnxt_bar_info { int rid; }; +struct bnxt_flow_ctrl { + bool rx; + bool tx; + bool autoneg; +}; + struct bnxt_link_info { uint8_t media_type; uint8_t transceiver; @@ -277,10 +316,8 @@ struct bnxt_link_info { uint8_t last_link_up; uint8_t duplex; uint8_t last_duplex; - uint8_t pause; - uint8_t last_pause; - uint8_t auto_pause; - uint8_t force_pause; + struct bnxt_flow_ctrl flow_ctrl; + struct bnxt_flow_ctrl last_flow_ctrl; uint8_t duplex_setting; uint8_t auto_mode; #define PHY_VER_LEN 3 @@ -298,7 +335,6 @@ struct bnxt_link_info { #define BNXT_AUTONEG_SPEED 1 #define BNXT_AUTONEG_FLOW_CTRL 2 uint8_t req_duplex; - uint8_t req_flow_ctrl; uint16_t req_link_speed; }; @@ -372,7 +408,6 @@ struct bnxt_vf_info { bus_addr_t hwrm_cmd_req_dma_addr; }; -#define BNXT_FLAG_VF (1<<1) #define BNXT_PF(softc) (!((softc)->flags & BNXT_FLAG_VF)) #define BNXT_VF(softc) ((softc)->flags & BNXT_FLAG_VF) @@ -498,6 +533,21 @@ struct bnxt_nvram_info { struct sysctl_oid *nvm_oid; }; +struct bnxt_func_qcfg { + uint16_t alloc_completion_rings; + uint16_t alloc_tx_rings; + uint16_t alloc_rx_rings; + uint16_t alloc_vnics; +}; + +struct bnxt_hw_lro { + uint16_t enable; + uint16_t is_mode_gro; + uint16_t max_agg_segs; + uint16_t max_aggs; + uint32_t min_agg_len; +}; + struct bnxt_softc { device_t dev; if_ctx_t ctx; @@ -508,17 +558,22 @@ struct bnxt_softc { struct bnxt_bar_info hwrm_bar; struct bnxt_bar_info doorbell_bar; struct bnxt_link_info link_info; -#define BNXT_FLAG_NPAR 1 +#define BNXT_FLAG_VF 0x0001 +#define BNXT_FLAG_NPAR 0x0002 +#define BNXT_FLAG_WOL_CAP 0x0004 +#define BNXT_FLAG_SHORT_CMD 0x0008 uint32_t flags; uint32_t total_msix; struct bnxt_func_info func; + struct bnxt_func_qcfg fn_qcfg; struct bnxt_pf_info pf; struct bnxt_vf_info vf; uint16_t hwrm_cmd_seq; uint32_t hwrm_cmd_timeo; /* milliseconds */ struct iflib_dma_info hwrm_cmd_resp; + struct iflib_dma_info hwrm_short_cmd_req_addr; /* Interrupt info for HWRM */ struct if_irq irq; struct mtx hwrm_lock; @@ -528,6 +583,7 @@ struct bnxt_softc { uint8_t max_tc; struct bnxt_cos_queue q_info[BNXT_MAX_QUEUE]; + uint64_t admin_ticks; struct iflib_dma_info hw_rx_port_stats; struct iflib_dma_info hw_tx_port_stats; struct rx_port_stats *rx_port_stats; @@ -554,9 +610,30 @@ struct bnxt_softc { struct sysctl_ctx_list hw_stats; struct sysctl_oid *hw_stats_oid; + struct sysctl_ctx_list hw_lro_ctx; + struct sysctl_oid *hw_lro_oid; + struct sysctl_ctx_list flow_ctrl_ctx; + struct sysctl_oid *flow_ctrl_oid; struct bnxt_ver_info *ver_info; struct bnxt_nvram_info *nvm_info; + bool wol; + struct bnxt_hw_lro hw_lro; + uint8_t wol_filter_id; + uint16_t rx_coal_usecs; + uint16_t rx_coal_usecs_irq; + uint16_t rx_coal_frames; + uint16_t rx_coal_frames_irq; + uint16_t tx_coal_usecs; + uint16_t tx_coal_usecs_irq; + uint16_t tx_coal_frames; + uint16_t tx_coal_frames_irq; + +#define BNXT_USEC_TO_COAL_TIMER(x) ((x) * 25 / 2) +#define BNXT_DEF_STATS_COAL_TICKS 1000000 +#define BNXT_MIN_STATS_COAL_TICKS 250000 +#define BNXT_MAX_STATS_COAL_TICKS 1000000 + }; struct bnxt_filter_info { Modified: stable/11/sys/dev/bnxt/bnxt_hwrm.c ============================================================================== --- stable/11/sys/dev/bnxt/bnxt_hwrm.c Tue May 8 13:23:39 2018 (r333363) +++ stable/11/sys/dev/bnxt/bnxt_hwrm.c Tue May 8 15:51:40 2018 (r333364) @@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include "bnxt.h" #include "bnxt_hwrm.h" @@ -121,12 +122,37 @@ _hwrm_send_message(struct bnxt_softc *softc, void *msg uint16_t cp_ring_id; uint8_t *valid; uint16_t err; + uint16_t max_req_len = HWRM_MAX_REQ_LEN; + struct hwrm_short_input short_input = {0}; /* TODO: DMASYNC in here. */ req->seq_id = htole16(softc->hwrm_cmd_seq++); memset(resp, 0, PAGE_SIZE); cp_ring_id = le16toh(req->cmpl_ring); + if (softc->flags & BNXT_FLAG_SHORT_CMD) { + void *short_cmd_req = softc->hwrm_short_cmd_req_addr.idi_vaddr; + + memcpy(short_cmd_req, req, msg_len); + memset((uint8_t *) short_cmd_req + msg_len, 0, softc->hwrm_max_req_len- + msg_len); + + short_input.req_type = req->req_type; + short_input.signature = + htole16(HWRM_SHORT_INPUT_SIGNATURE_SHORT_CMD); + short_input.size = htole16(msg_len); + short_input.req_addr = + htole64(softc->hwrm_short_cmd_req_addr.idi_paddr); + + data = (uint32_t *)&short_input; + msg_len = sizeof(short_input); + + /* Sync memory write before updating doorbell */ + wmb(); + + max_req_len = BNXT_HWRM_SHORT_REQ_LEN; + } + /* Write request msg to hwrm channel */ for (i = 0; i < msg_len; i += 4) { bus_space_write_4(softc->hwrm_bar.tag, @@ -136,7 +162,7 @@ _hwrm_send_message(struct bnxt_softc *softc, void *msg } /* Clear to the end of the request buffer */ - for (i = msg_len; i < HWRM_MAX_REQ_LEN; i += 4) + for (i = msg_len; i < max_req_len; i += 4) bus_space_write_4(softc->hwrm_bar.tag, softc->hwrm_bar.handle, i, 0); @@ -247,6 +273,7 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) int rc; const char nastr[] = ""; const char naver[] = ""; + uint32_t dev_caps_cfg; softc->hwrm_max_req_len = HWRM_MAX_REQ_LEN; softc->hwrm_cmd_timeo = 1000; @@ -322,6 +349,11 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) if (resp->def_req_timeout) softc->hwrm_cmd_timeo = le16toh(resp->def_req_timeout); + dev_caps_cfg = le32toh(resp->dev_caps_cfg); + if ((dev_caps_cfg & HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED) && + (dev_caps_cfg & HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_SHORT_CMD_REQUIRED)) + softc->flags |= BNXT_FLAG_SHORT_CMD; + fail: BNXT_HWRM_UNLOCK(softc); return rc; @@ -398,6 +430,10 @@ bnxt_hwrm_func_qcaps(struct bnxt_softc *softc) if (rc) goto fail; + if (resp->flags & + htole32(HWRM_FUNC_QCAPS_OUTPUT_FLAGS_WOL_MAGICPKT_SUPPORTED)) + softc->flags |= BNXT_FLAG_WOL_CAP; + func->fw_fid = le16toh(resp->fid); memcpy(func->mac_addr, resp->mac_address, ETHER_ADDR_LEN); func->max_rsscos_ctxs = le16toh(resp->max_rsscos_ctx); @@ -433,6 +469,31 @@ fail: return rc; } +int +bnxt_hwrm_func_qcfg(struct bnxt_softc *softc) +{ + struct hwrm_func_qcfg_input req = {0}; + struct hwrm_func_qcfg_output *resp = + (void *)softc->hwrm_cmd_resp.idi_vaddr; + struct bnxt_func_qcfg *fn_qcfg = &softc->fn_qcfg; + int rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_QCFG); + req.fid = htole16(0xffff); + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + goto fail; + + fn_qcfg->alloc_completion_rings = le16toh(resp->alloc_cmpl_rings); + fn_qcfg->alloc_tx_rings = le16toh(resp->alloc_tx_rings); + fn_qcfg->alloc_rx_rings = le16toh(resp->alloc_rx_rings); + fn_qcfg->alloc_vnics = le16toh(resp->alloc_vnics); +fail: + BNXT_HWRM_UNLOCK(softc); + return rc; +} + int bnxt_hwrm_func_reset(struct bnxt_softc *softc) { @@ -473,33 +534,28 @@ static void bnxt_hwrm_set_pause_common(struct bnxt_softc *softc, struct hwrm_port_phy_cfg_input *req) { - if (softc->link_info.autoneg & BNXT_AUTONEG_FLOW_CTRL) { + struct bnxt_link_info *link_info = &softc->link_info; + + if (link_info->flow_ctrl.autoneg) { req->auto_pause = HWRM_PORT_PHY_CFG_INPUT_AUTO_PAUSE_AUTONEG_PAUSE; - if (softc->link_info.req_flow_ctrl & - HWRM_PORT_PHY_QCFG_OUTPUT_PAUSE_RX) + if (link_info->flow_ctrl.rx) req->auto_pause |= HWRM_PORT_PHY_CFG_INPUT_AUTO_PAUSE_RX; - if (softc->link_info.req_flow_ctrl & - HWRM_PORT_PHY_QCFG_OUTPUT_PAUSE_TX) + if (link_info->flow_ctrl.tx) req->auto_pause |= - HWRM_PORT_PHY_CFG_INPUT_AUTO_PAUSE_RX; + HWRM_PORT_PHY_CFG_INPUT_AUTO_PAUSE_TX; req->enables |= htole32(HWRM_PORT_PHY_CFG_INPUT_ENABLES_AUTO_PAUSE); } else { - if (softc->link_info.req_flow_ctrl & - HWRM_PORT_PHY_QCFG_OUTPUT_PAUSE_RX) + if (link_info->flow_ctrl.rx) req->force_pause |= HWRM_PORT_PHY_CFG_INPUT_FORCE_PAUSE_RX; - if (softc->link_info.req_flow_ctrl & - HWRM_PORT_PHY_QCFG_OUTPUT_PAUSE_TX) + if (link_info->flow_ctrl.tx) req->force_pause |= HWRM_PORT_PHY_CFG_INPUT_FORCE_PAUSE_TX; req->enables |= htole32(HWRM_PORT_PHY_CFG_INPUT_ENABLES_FORCE_PAUSE); - req->auto_pause = req->force_pause; - req->enables |= htole32( - HWRM_PORT_PHY_CFG_INPUT_ENABLES_AUTO_PAUSE); } } @@ -533,49 +589,41 @@ bnxt_hwrm_set_eee(struct bnxt_softc *softc, struct hwr int bnxt_hwrm_set_link_setting(struct bnxt_softc *softc, bool set_pause, - bool set_eee) + bool set_eee, bool set_link) { struct hwrm_port_phy_cfg_input req = {0}; + int rc; if (softc->flags & BNXT_FLAG_NPAR) return ENOTSUP; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_PORT_PHY_CFG); - if (set_pause) + + if (set_pause) { bnxt_hwrm_set_pause_common(softc, &req); - bnxt_hwrm_set_link_common(softc, &req); - if (set_eee) - bnxt_hwrm_set_eee(softc, &req); - return hwrm_send_message(softc, &req, sizeof(req)); -} + if (softc->link_info.flow_ctrl.autoneg) + set_link = true; + } - -int -bnxt_hwrm_set_pause(struct bnxt_softc *softc) -{ - struct hwrm_port_phy_cfg_input req = {0}; - int rc; - - if (softc->flags & BNXT_FLAG_NPAR) - return ENOTSUP; - - bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_PORT_PHY_CFG); - bnxt_hwrm_set_pause_common(softc, &req); - - if (softc->link_info.autoneg & BNXT_AUTONEG_FLOW_CTRL) + if (set_link) bnxt_hwrm_set_link_common(softc, &req); - + + if (set_eee) + bnxt_hwrm_set_eee(softc, &req); + BNXT_HWRM_LOCK(softc); rc = _hwrm_send_message(softc, &req, sizeof(req)); - if (!rc && !(softc->link_info.autoneg & BNXT_AUTONEG_FLOW_CTRL)) { - /* since changing of pause setting doesn't trigger any link - * change event, the driver needs to update the current pause - * result upon successfully return of the phy_cfg command */ - softc->link_info.pause = - softc->link_info.force_pause = softc->link_info.req_flow_ctrl; - softc->link_info.auto_pause = 0; - bnxt_report_link(softc); + + if (!rc) { + if (set_pause) { + /* since changing of 'force pause' setting doesn't + * trigger any link change event, the driver needs to + * update the current pause result upon successfully i + * return of the phy_cfg command */ + if (!softc->link_info.flow_ctrl.autoneg) + bnxt_report_link(softc); + } } BNXT_HWRM_UNLOCK(softc); return rc; @@ -790,6 +838,25 @@ fail: } int +bnxt_hwrm_port_qstats(struct bnxt_softc *softc) +{ + struct hwrm_port_qstats_input req = {0}; + int rc = 0; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_PORT_QSTATS); + + req.port_id = htole16(softc->pf.port_id); + req.rx_stat_host_addr = htole64(softc->hw_rx_port_stats.idi_paddr); + req.tx_stat_host_addr = htole64(softc->hw_tx_port_stats.idi_paddr); + + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + BNXT_HWRM_UNLOCK(softc); + + return rc; +} + +int bnxt_hwrm_cfa_l2_set_rx_mask(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) { @@ -900,44 +967,82 @@ bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnx } int -bnxt_hwrm_func_cfg(struct bnxt_softc *softc) +bnxt_cfg_async_cr(struct bnxt_softc *softc) { - struct hwrm_func_cfg_input req = {0}; + int rc = 0; + + if (BNXT_PF(softc)) { + struct hwrm_func_cfg_input req = {0}; - bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_CFG); + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_CFG); - req.fid = 0xffff; - req.enables = htole32(HWRM_FUNC_CFG_INPUT_ENABLES_ASYNC_EVENT_CR); + req.fid = htole16(0xffff); + req.enables = htole32(HWRM_FUNC_CFG_INPUT_ENABLES_ASYNC_EVENT_CR); + req.async_event_cr = htole16(softc->def_cp_ring.ring.phys_id); - req.async_event_cr = softc->def_cp_ring.ring.phys_id; + rc = hwrm_send_message(softc, &req, sizeof(req)); + } + else { + struct hwrm_func_vf_cfg_input req = {0}; - return hwrm_send_message(softc, &req, sizeof(req)); + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_VF_CFG); + + req.enables = htole32(HWRM_FUNC_VF_CFG_INPUT_ENABLES_ASYNC_EVENT_CR); + req.async_event_cr = htole16(softc->def_cp_ring.ring.phys_id); + + rc = hwrm_send_message(softc, &req, sizeof(req)); + } + return rc; } +void +bnxt_validate_hw_lro_settings(struct bnxt_softc *softc) +{ + softc->hw_lro.enable = min(softc->hw_lro.enable, 1); + + softc->hw_lro.is_mode_gro = min(softc->hw_lro.is_mode_gro, 1); + + softc->hw_lro.max_agg_segs = min(softc->hw_lro.max_agg_segs, + HWRM_VNIC_TPA_CFG_INPUT_MAX_AGG_SEGS_MAX); + + softc->hw_lro.max_aggs = min(softc->hw_lro.max_aggs, + HWRM_VNIC_TPA_CFG_INPUT_MAX_AGGS_MAX); + + softc->hw_lro.min_agg_len = min(softc->hw_lro.min_agg_len, BNXT_MAX_MTU); +} + int -bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, - uint32_t flags) +bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc) { struct hwrm_vnic_tpa_cfg_input req = {0}; + uint32_t flags; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_TPA_CFG); - req.flags = htole32(flags); - req.vnic_id = htole16(vnic->id); - req.enables = htole32(HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MAX_AGG_SEGS | - HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MAX_AGGS | - /* HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MAX_AGG_TIMER | */ - HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MIN_AGG_LEN); - /* TODO: Calculate this based on ring size? */ - req.max_agg_segs = htole16(3); - /* Base this in the allocated TPA start size... */ - req.max_aggs = htole16(7); - /* - * TODO: max_agg_timer? - * req.mag_agg_timer = htole32(XXX); - */ - req.min_agg_len = htole32(0); + if (softc->hw_lro.enable) { + flags = HWRM_VNIC_TPA_CFG_INPUT_FLAGS_TPA | + HWRM_VNIC_TPA_CFG_INPUT_FLAGS_ENCAP_TPA | + HWRM_VNIC_TPA_CFG_INPUT_FLAGS_AGG_WITH_ECN | + HWRM_VNIC_TPA_CFG_INPUT_FLAGS_AGG_WITH_SAME_GRE_SEQ; + + if (softc->hw_lro.is_mode_gro) + flags |= HWRM_VNIC_TPA_CFG_INPUT_FLAGS_GRO; + else + flags |= HWRM_VNIC_TPA_CFG_INPUT_FLAGS_RSC_WND_UPDATE; + + req.flags = htole32(flags); + req.enables = htole32(HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MAX_AGG_SEGS | + HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MAX_AGGS | + HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MIN_AGG_LEN); + + req.max_agg_segs = htole16(softc->hw_lro.max_agg_segs); + req.max_aggs = htole16(softc->hw_lro.max_aggs); + req.min_agg_len = htole32(softc->hw_lro.min_agg_len); + } + + req.vnic_id = htole16(softc->vnic_info.id); + return hwrm_send_message(softc, &req, sizeof(req)); } @@ -1448,12 +1553,45 @@ bnxt_hwrm_port_phy_qcfg(struct bnxt_softc *softc) goto exit; link_info->phy_link_status = resp->link; - link_info->duplex = resp->duplex; - link_info->pause = resp->pause; + link_info->duplex = resp->duplex_cfg; link_info->auto_mode = resp->auto_mode; - link_info->auto_pause = resp->auto_pause; - link_info->force_pause = resp->force_pause; - link_info->duplex_setting = resp->duplex; + + /* + * When AUTO_PAUSE_AUTONEG_PAUSE bit is set to 1, + * the advertisement of pause is enabled. + * 1. When the auto_mode is not set to none and this flag is set to 1, + * then the auto_pause bits on this port are being advertised and + * autoneg pause results are being interpreted. + * 2. When the auto_mode is not set to none and this flag is set to 0, + * the pause is forced as indicated in force_pause, and also + * advertised as auto_pause bits, but the autoneg results are not + * interpreted since the pause configuration is being forced. + * 3. When the auto_mode is set to none and this flag is set to 1, + * auto_pause bits should be ignored and should be set to 0. + */ + + link_info->flow_ctrl.autoneg = false; + link_info->flow_ctrl.tx = false; + link_info->flow_ctrl.rx = false; + + if ((resp->auto_mode) && + (resp->auto_pause & BNXT_AUTO_PAUSE_AUTONEG_PAUSE)) { + link_info->flow_ctrl.autoneg = true; + } + + if (link_info->flow_ctrl.autoneg) { + if (resp->auto_pause & BNXT_PAUSE_TX) + link_info->flow_ctrl.tx = true; + if (resp->auto_pause & BNXT_PAUSE_RX) + link_info->flow_ctrl.rx = true; + } else { + if (resp->force_pause & BNXT_PAUSE_TX) + link_info->flow_ctrl.tx = true; + if (resp->force_pause & BNXT_PAUSE_RX) + link_info->flow_ctrl.rx = true; + } + + link_info->duplex_setting = resp->duplex_cfg; if (link_info->phy_link_status == HWRM_PORT_PHY_QCFG_OUTPUT_LINK_LINK) link_info->link_speed = le16toh(resp->link_speed); else @@ -1482,4 +1620,191 @@ bnxt_hwrm_port_phy_qcfg(struct bnxt_softc *softc) exit: BNXT_HWRM_UNLOCK(softc); return rc; +} + +uint16_t +bnxt_hwrm_get_wol_fltrs(struct bnxt_softc *softc, uint16_t handle) +{ + struct hwrm_wol_filter_qcfg_input req = {0}; + struct hwrm_wol_filter_qcfg_output *resp = + (void *)softc->hwrm_cmd_resp.idi_vaddr; + uint16_t next_handle = 0; + int rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_WOL_FILTER_QCFG); + req.port_id = htole16(softc->pf.port_id); + req.handle = htole16(handle); + rc = hwrm_send_message(softc, &req, sizeof(req)); + if (!rc) { + next_handle = le16toh(resp->next_handle); + if (next_handle != 0) { + if (resp->wol_type == + HWRM_WOL_FILTER_ALLOC_INPUT_WOL_TYPE_MAGICPKT) { + softc->wol = 1; + softc->wol_filter_id = resp->wol_filter_id; + } + } + } + return next_handle; +} + +int +bnxt_hwrm_alloc_wol_fltr(struct bnxt_softc *softc) +{ + struct hwrm_wol_filter_alloc_input req = {0}; + struct hwrm_wol_filter_alloc_output *resp = + (void *)softc->hwrm_cmd_resp.idi_vaddr; + int rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_WOL_FILTER_ALLOC); + req.port_id = htole16(softc->pf.port_id); + req.wol_type = HWRM_WOL_FILTER_ALLOC_INPUT_WOL_TYPE_MAGICPKT; + req.enables = + htole32(HWRM_WOL_FILTER_ALLOC_INPUT_ENABLES_MAC_ADDRESS); + memcpy(req.mac_address, softc->func.mac_addr, ETHER_ADDR_LEN); + rc = hwrm_send_message(softc, &req, sizeof(req)); + if (!rc) + softc->wol_filter_id = resp->wol_filter_id; + + return rc; +} + +int +bnxt_hwrm_free_wol_fltr(struct bnxt_softc *softc) +{ + struct hwrm_wol_filter_free_input req = {0}; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_WOL_FILTER_FREE); + req.port_id = htole16(softc->pf.port_id); + req.enables = + htole32(HWRM_WOL_FILTER_FREE_INPUT_ENABLES_WOL_FILTER_ID); + req.wol_filter_id = softc->wol_filter_id; + return hwrm_send_message(softc, &req, sizeof(req)); +} + +static void bnxt_hwrm_set_coal_params(struct bnxt_softc *softc, uint32_t max_frames, + uint32_t buf_tmrs, uint16_t flags, + struct hwrm_ring_cmpl_ring_cfg_aggint_params_input *req) +{ + req->flags = htole16(flags); + req->num_cmpl_dma_aggr = htole16((uint16_t)max_frames); + req->num_cmpl_dma_aggr_during_int = htole16(max_frames >> 16); + req->cmpl_aggr_dma_tmr = htole16((uint16_t)buf_tmrs); + req->cmpl_aggr_dma_tmr_during_int = htole16(buf_tmrs >> 16); + /* Minimum time between 2 interrupts set to buf_tmr x 2 */ + req->int_lat_tmr_min = htole16((uint16_t)buf_tmrs * 2); + req->int_lat_tmr_max = htole16((uint16_t)buf_tmrs * 4); + req->num_cmpl_aggr_int = htole16((uint16_t)max_frames * 4); +} + + +int bnxt_hwrm_set_coal(struct bnxt_softc *softc) +{ + int i, rc = 0; + struct hwrm_ring_cmpl_ring_cfg_aggint_params_input req_rx = {0}, + req_tx = {0}, *req; + uint16_t max_buf, max_buf_irq; + uint16_t buf_tmr, buf_tmr_irq; + uint32_t flags; + + bnxt_hwrm_cmd_hdr_init(softc, &req_rx, + HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS); + bnxt_hwrm_cmd_hdr_init(softc, &req_tx, + HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS); + + /* Each rx completion (2 records) should be DMAed immediately. + * DMA 1/4 of the completion buffers at a time. + */ + max_buf = min_t(uint16_t, softc->rx_coal_frames / 4, 2); + /* max_buf must not be zero */ + max_buf = clamp_t(uint16_t, max_buf, 1, 63); + max_buf_irq = clamp_t(uint16_t, softc->rx_coal_frames_irq, 1, 63); + buf_tmr = BNXT_USEC_TO_COAL_TIMER(softc->rx_coal_usecs); + /* buf timer set to 1/4 of interrupt timer */ + buf_tmr = max_t(uint16_t, buf_tmr / 4, 1); + buf_tmr_irq = BNXT_USEC_TO_COAL_TIMER(softc->rx_coal_usecs_irq); + buf_tmr_irq = max_t(uint16_t, buf_tmr_irq, 1); + + flags = HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS_INPUT_FLAGS_TIMER_RESET; + + /* RING_IDLE generates more IRQs for lower latency. Enable it only + * if coal_usecs is less than 25 us. + */ + if (softc->rx_coal_usecs < 25) + flags |= HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS_INPUT_FLAGS_RING_IDLE; + + bnxt_hwrm_set_coal_params(softc, max_buf_irq << 16 | max_buf, + buf_tmr_irq << 16 | buf_tmr, flags, &req_rx); + + /* max_buf must not be zero */ + max_buf = clamp_t(uint16_t, softc->tx_coal_frames, 1, 63); + max_buf_irq = clamp_t(uint16_t, softc->tx_coal_frames_irq, 1, 63); + buf_tmr = BNXT_USEC_TO_COAL_TIMER(softc->tx_coal_usecs); + /* buf timer set to 1/4 of interrupt timer */ + buf_tmr = max_t(uint16_t, buf_tmr / 4, 1); + buf_tmr_irq = BNXT_USEC_TO_COAL_TIMER(softc->tx_coal_usecs_irq); + buf_tmr_irq = max_t(uint16_t, buf_tmr_irq, 1); + flags = HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS_INPUT_FLAGS_TIMER_RESET; + bnxt_hwrm_set_coal_params(softc, max_buf_irq << 16 | max_buf, + buf_tmr_irq << 16 | buf_tmr, flags, &req_tx); + + for (i = 0; i < softc->nrxqsets; i++) { + + + req = &req_rx; + /* + * TBD: + * Check if Tx also needs to be done + * So far, Tx processing has been done in softirq contest + * + * req = &req_tx; + */ + req->ring_id = htole16(softc->grp_info[i].cp_ring_id); + + rc = hwrm_send_message(softc, req, sizeof(*req)); + if (rc) + break; + } + return rc; +} + + + +int bnxt_hwrm_func_rgtr_async_events(struct bnxt_softc *softc, unsigned long *bmap, + int bmap_size) +{ + struct hwrm_func_drv_rgtr_input req = {0}; + bitstr_t *async_events_bmap; + uint32_t *events; + int i; + + async_events_bmap = bit_alloc(256, M_DEVBUF, M_WAITOK|M_ZERO); + events = (uint32_t *)async_events_bmap; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_DRV_RGTR); + + req.enables = + htole32(HWRM_FUNC_DRV_RGTR_INPUT_ENABLES_ASYNC_EVENT_FWD); + + memset(async_events_bmap, 0, sizeof(256 / 8)); + + bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE); + bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD); + bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED); + bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_VF_CFG_CHANGE); + bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE); + + if (bmap && bmap_size) { + for (i = 0; i < bmap_size; i++) { + if (bit_test(bmap, i)) + bit_set(async_events_bmap, i); + } + } + + for (i = 0; i < 8; i++) + req.async_event_fwd[i] |= htole32(events[i]); + + free(async_events_bmap, M_DEVBUF); + + return hwrm_send_message(softc, &req, sizeof(req)); } Modified: stable/11/sys/dev/bnxt/bnxt_hwrm.h ============================================================================== --- stable/11/sys/dev/bnxt/bnxt_hwrm.h Tue May 8 13:23:39 2018 (r333363) +++ stable/11/sys/dev/bnxt/bnxt_hwrm.h Tue May 8 15:51:40 2018 (r333364) @@ -32,6 +32,12 @@ __FBSDID("$FreeBSD$"); #ifndef _BNXT_HWRM_H #define _BNXT_HWRM_H +#define BNXT_PAUSE_TX (HWRM_PORT_PHY_QCFG_OUTPUT_PAUSE_TX) +#define BNXT_PAUSE_RX (HWRM_PORT_PHY_QCFG_OUTPUT_PAUSE_RX) +#define BNXT_AUTO_PAUSE_AUTONEG_PAUSE \ + (HWRM_PORT_PHY_QCFG_OUTPUT_AUTO_PAUSE_AUTONEG_PAUSE) +#define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input) + /* HWRM Function Prototypes */ int bnxt_alloc_hwrm_dma_mem(struct bnxt_softc *softc); void bnxt_free_hwrm_dma_mem(struct bnxt_softc *softc); @@ -43,14 +49,16 @@ int bnxt_hwrm_queue_qportcfg(struct bnxt_softc *softc) int bnxt_hwrm_func_drv_rgtr(struct bnxt_softc *softc); int bnxt_hwrm_func_drv_unrgtr(struct bnxt_softc *softc, bool shutdown); int bnxt_hwrm_func_qcaps(struct bnxt_softc *softc); +int bnxt_hwrm_func_qcfg(struct bnxt_softc *softc); int bnxt_hwrm_func_reset(struct bnxt_softc *softc); -int bnxt_hwrm_set_link_setting(struct bnxt_softc *, bool set_pause, - bool set_eee); +int bnxt_hwrm_set_link_setting(struct bnxt_softc *softc, bool set_pause, + bool set_eee, bool set_link); int bnxt_hwrm_set_pause(struct bnxt_softc *softc); int bnxt_hwrm_vnic_ctx_alloc(struct bnxt_softc *softc, uint16_t *ctx_id); int bnxt_hwrm_vnic_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); int bnxt_hwrm_stat_ctx_alloc(struct bnxt_softc *softc, struct bnxt_cp_ring *cpr, uint64_t paddr); +int bnxt_hwrm_port_qstats(struct bnxt_softc *softc); int bnxt_hwrm_ring_grp_alloc(struct bnxt_softc *softc, struct bnxt_grp_info *grp); int bnxt_hwrm_vnic_alloc(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); @@ -59,9 +67,9 @@ int bnxt_hwrm_cfa_l2_set_rx_mask(struct bnxt_softc *so int bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); int bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, uint32_t hash_type); -int bnxt_hwrm_func_cfg(struct bnxt_softc *softc); -int bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc, - struct bnxt_vnic_info *vnic, uint32_t flags); +int bnxt_cfg_async_cr(struct bnxt_softc *softc); +int bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc); +void bnxt_validate_hw_lro_settings(struct bnxt_softc *softc); int bnxt_hwrm_nvm_find_dir_entry(struct bnxt_softc *softc, uint16_t type, uint16_t *ordinal, uint16_t ext, uint16_t *index, bool use_index, uint8_t search_opt, uint32_t *data_length, uint32_t *item_length, @@ -98,5 +106,10 @@ int bnxt_hwrm_fw_set_time(struct bnxt_softc *softc, ui uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint16_t millisecond, uint16_t zone); int bnxt_hwrm_port_phy_qcfg(struct bnxt_softc *softc); - +uint16_t bnxt_hwrm_get_wol_fltrs(struct bnxt_softc *softc, uint16_t handle); +int bnxt_hwrm_alloc_wol_fltr(struct bnxt_softc *softc); +int bnxt_hwrm_free_wol_fltr(struct bnxt_softc *softc); +int bnxt_hwrm_set_coal(struct bnxt_softc *softc); +int bnxt_hwrm_func_rgtr_async_events(struct bnxt_softc *softc, unsigned long *bmap, + int bmap_size); #endif Modified: stable/11/sys/dev/bnxt/bnxt_sysctl.c ============================================================================== --- stable/11/sys/dev/bnxt/bnxt_sysctl.c Tue May 8 13:23:39 2018 (r333363) +++ stable/11/sys/dev/bnxt/bnxt_sysctl.c Tue May 8 15:51:40 2018 (r333364) @@ -74,16 +74,38 @@ bnxt_init_sysctl_ctx(struct bnxt_softc *softc) return ENOMEM; } - sysctl_ctx_init(&softc->nvm_info->nvm_ctx); + if (BNXT_PF(softc)) { + sysctl_ctx_init(&softc->nvm_info->nvm_ctx); + ctx = device_get_sysctl_ctx(softc->dev); + softc->nvm_info->nvm_oid = SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(device_get_sysctl_tree(softc->dev)), OID_AUTO, + "nvram", CTLFLAG_RD, 0, "nvram information"); + if (!softc->nvm_info->nvm_oid) { + sysctl_ctx_free(&softc->nvm_info->nvm_ctx); + return ENOMEM; + } + } + + sysctl_ctx_init(&softc->hw_lro_ctx); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-11@freebsd.org Tue May 8 16:56:15 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7E327FBB7D9; Tue, 8 May 2018 16:56:15 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1B97578E76; Tue, 8 May 2018 16:56:15 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC51E2CFC3; Tue, 8 May 2018 16:56:14 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48GuEeE025684; Tue, 8 May 2018 16:56:14 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48GuEOv025680; Tue, 8 May 2018 16:56:14 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201805081656.w48GuEOv025680@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Tue, 8 May 2018 16:56:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333367 - in stable/11: share/man/man4 sys/dev/nxge X-SVN-Group: stable-11 X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/dev/nxge X-SVN-Commit-Revision: 333367 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 16:56:15 -0000 Author: sbruno Date: Tue May 8 16:56:14 2018 New Revision: 333367 URL: https://svnweb.freebsd.org/changeset/base/333367 Log: MFC r333210 Deprecation notice for nxge(4). This driver will not appear in FreeBSD 12 or later. Approved by: re (gjb@) Relnotes: yes Modified: stable/11/share/man/man4/nxge.4 stable/11/sys/dev/nxge/if_nxge.c Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/nxge.4 ============================================================================== --- stable/11/share/man/man4/nxge.4 Tue May 8 16:56:02 2018 (r333366) +++ stable/11/share/man/man4/nxge.4 Tue May 8 16:56:14 2018 (r333367) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 16, 2007 +.Dd May 3, 2018 .Dt NXGE 4 .Os .Sh NAME @@ -44,6 +44,12 @@ module at boot time, place the following line in .Bd -literal -offset indent if_nxge_load="YES" .Ed +.Sh DEPRECATION NOTICE +The +.Nm +driver is not present in +.Fx 12.0 +and later. .Sh DESCRIPTION The .Nm Modified: stable/11/sys/dev/nxge/if_nxge.c ============================================================================== --- stable/11/sys/dev/nxge/if_nxge.c Tue May 8 16:56:02 2018 (r333366) +++ stable/11/sys/dev/nxge/if_nxge.c Tue May 8 16:56:14 2018 (r333367) @@ -1004,6 +1004,7 @@ xge_attach(device_t dev) attach_out: xge_os_free(NULL, device_config, sizeof(xge_hal_device_config_t)); attach_out_config: + gone_in_dev(dev, 12, "nxge(4) driver"); return status; } From owner-svn-src-stable-11@freebsd.org Tue May 8 17:03:35 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9096DFBBF70; Tue, 8 May 2018 17:03:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3C06B7BAC6; Tue, 8 May 2018 17:03:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 05A312D18F; Tue, 8 May 2018 17:03:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48H3Y41030564; Tue, 8 May 2018 17:03:34 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48H3XSx030558; Tue, 8 May 2018 17:03:33 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805081703.w48H3XSx030558@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 8 May 2018 17:03:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333369 - in stable/11/sys: amd64/amd64 i386/i386 X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in stable/11/sys: amd64/amd64 i386/i386 X-SVN-Commit-Revision: 333369 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 17:03:36 -0000 Author: emaste Date: Tue May 8 17:03:33 2018 New Revision: 333369 URL: https://svnweb.freebsd.org/changeset/base/333369 Log: MFC r333368: Prepare DB# handler for deferred trigger of watchpoints. Prepare DB# handler for deferred trigger of watchpoints. Since pop %ss/mov %ss instructions defer all interrupts and exceptions for the next instruction, it is possible that the userspace watchpoint trap executes on the first instruction of the kernel entry for syscall/bpt. In this case, DB# should be treated similarly to NMI: on amd64 we must always load GSBASE even if the trap comes from kernel mode, and load the kernel page table root into %cr3. Moreover, the trap must use the dedicated stack, because we are still on the user stack when trapped on syscall entry. For i386, we must reload %cr3. The syscall instruction is not configured, so there is no issue with executing on user stack when trapping. Due to some CPU erratas it is not always possible to detect that the userspace watchpoint triggered by inspecting %dr6. In trap(), compare the trap %rip with the known unsafe entry points and if matched pretend that the watchpoint did not fire at all. Thank you to the MSRC Incident Response Team, and in particular Greg Lenti and Nate Warfield, for coordinating the response to this issue across multiple vendors. Thanks to Computer Recycling at The Working Center of Kitchener for making hardware available to allow us to test the patch on additional CPU families. Reviewed by: jhb Discussed with: Matthew Dillon Tested by: emaste Approved by: re (so blanket) Security: CVE-2018-8897 Security: FreeBSD-SA-18:06.debugreg Sponsored by: The FreeBSD Foundation Modified: stable/11/sys/amd64/amd64/exception.S stable/11/sys/amd64/amd64/machdep.c stable/11/sys/amd64/amd64/mp_machdep.c stable/11/sys/amd64/amd64/pmap.c stable/11/sys/amd64/amd64/trap.c stable/11/sys/i386/i386/trap.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/amd64/exception.S ============================================================================== --- stable/11/sys/amd64/amd64/exception.S Tue May 8 17:00:34 2018 (r333368) +++ stable/11/sys/amd64/amd64/exception.S Tue May 8 17:03:33 2018 (r333369) @@ -116,7 +116,6 @@ X\l: subq $TF_RIP,%rsp jmp alltraps_noen .endm - TRAP_NOEN dbg, T_TRCTRAP TRAP_NOEN bpt, T_BPTFLT #ifdef KDTRACE_HOOKS TRAP_NOEN dtrace_ret, T_DTRACE_RET @@ -522,6 +521,121 @@ fast_syscall_common: */ IDTVEC(fast_syscall32) sysret + +/* + * DB# handler is very similar to NM#, because 'mov/pop %ss' delay + * generation of exception until the next instruction is executed, + * which might be a kernel entry. So we must execute the handler + * on IST stack and be ready for non-kernel GSBASE. + */ +IDTVEC(dbg) + subq $TF_RIP,%rsp + movl $(T_TRCTRAP),TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + movq %rdi,TF_RDI(%rsp) + movq %rsi,TF_RSI(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq %r8,TF_R8(%rsp) + movq %r9,TF_R9(%rsp) + movq %rax,TF_RAX(%rsp) + movq %rbx,TF_RBX(%rsp) + movq %rbp,TF_RBP(%rsp) + movq %r10,TF_R10(%rsp) + movq %r11,TF_R11(%rsp) + movq %r12,TF_R12(%rsp) + movq %r13,TF_R13(%rsp) + movq %r14,TF_R14(%rsp) + movq %r15,TF_R15(%rsp) + SAVE_SEGS + movl $TF_HASSEGS,TF_FLAGS(%rsp) + cld + testb $SEL_RPL_MASK,TF_CS(%rsp) + jnz dbg_fromuserspace + /* + * We've interrupted the kernel. Preserve GS.base in %r12, + * %cr3 in %r13, and possibly lower half of MSR_IA32_SPEC_CTL in %r14d. + */ + movl $MSR_GSBASE,%ecx + rdmsr + movq %rax,%r12 + shlq $32,%rdx + orq %rdx,%r12 + /* Retrieve and load the canonical value for GS.base. */ + movq TF_SIZE(%rsp),%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr + movq %cr3,%r13 + movq PCPU(KCR3),%rax + cmpq $~0,%rax + je 1f + movq %rax,%cr3 +1: testl $CPUID_STDEXT3_IBPB,cpu_stdext_feature3(%rip) + je 2f + movl $MSR_IA32_SPEC_CTRL,%ecx + rdmsr + movl %eax,%r14d + call handle_ibrs_entry +2: FAKE_MCOUNT(TF_RIP(%rsp)) + movq %rsp,%rdi + call trap + MEXITCOUNT + testl $CPUID_STDEXT3_IBPB,cpu_stdext_feature3(%rip) + je 3f + movl %r14d,%eax + xorl %edx,%edx + movl $MSR_IA32_SPEC_CTRL,%ecx + wrmsr + /* + * Put back the preserved MSR_GSBASE value. + */ +3: movl $MSR_GSBASE,%ecx + movq %r12,%rdx + movl %edx,%eax + shrq $32,%rdx + wrmsr + movq %r13,%cr3 + RESTORE_REGS + addq $TF_RIP,%rsp + jmp doreti_iret +dbg_fromuserspace: + /* + * Switch to kernel GSBASE and kernel page table, and copy frame + * from the IST stack to the normal kernel stack, since trap() + * re-enables interrupts, and since we might trap on DB# while + * in trap(). + */ + swapgs + movq PCPU(KCR3),%rax + cmpq $~0,%rax + je 1f + movq %rax,%cr3 +1: movq PCPU(RSP0),%rax + movl $TF_SIZE,%ecx + subq %rcx,%rax + movq %rax,%rdi + movq %rsp,%rsi + rep;movsb + movq %rax,%rsp + call handle_ibrs_entry + movq PCPU(CURPCB),%rdi + orl $PCB_FULL_IRET,PCB_FLAGS(%rdi) + testb $CPUID_STDEXT_FSGSBASE,cpu_stdext_feature(%rip) + jz 3f + cmpw $KUF32SEL,TF_FS(%rsp) + jne 2f + rdfsbase %rax + movq %rax,PCB_FSBASE(%rdi) +2: cmpw $KUG32SEL,TF_GS(%rsp) + jne 3f + movl $MSR_KGSBASE,%ecx + rdmsr + shlq $32,%rdx + orq %rdx,%rax + movq %rax,PCB_GSBASE(%rdi) +3: jmp calltrap /* * NMI handling is special. Modified: stable/11/sys/amd64/amd64/machdep.c ============================================================================== --- stable/11/sys/amd64/amd64/machdep.c Tue May 8 17:00:34 2018 (r333368) +++ stable/11/sys/amd64/amd64/machdep.c Tue May 8 17:03:33 2018 (r333369) @@ -675,6 +675,7 @@ struct gate_descriptor *idt = &idt0[0]; /* interrupt d static char dblfault_stack[PAGE_SIZE] __aligned(16); static char mce0_stack[PAGE_SIZE] __aligned(16); static char nmi0_stack[PAGE_SIZE] __aligned(16); +static char dbg0_stack[PAGE_SIZE] __aligned(16); CTASSERT(sizeof(struct nmi_pcpu) == 16); struct amd64tss common_tss[MAXCPU]; @@ -827,7 +828,7 @@ extern inthand_t IDTVEC(tss), IDTVEC(missing), IDTVEC(stk), IDTVEC(prot), IDTVEC(page), IDTVEC(mchk), IDTVEC(rsvd), IDTVEC(fpu), IDTVEC(align), IDTVEC(xmm), IDTVEC(dblfault), - IDTVEC(div_pti), IDTVEC(dbg_pti), IDTVEC(bpt_pti), + IDTVEC(div_pti), IDTVEC(bpt_pti), IDTVEC(ofl_pti), IDTVEC(bnd_pti), IDTVEC(ill_pti), IDTVEC(dna_pti), IDTVEC(fpusegm_pti), IDTVEC(tss_pti), IDTVEC(missing_pti), IDTVEC(stk_pti), IDTVEC(prot_pti), IDTVEC(page_pti), @@ -1638,8 +1639,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) SEL_KPL, 0); setidt(IDT_DE, pti ? &IDTVEC(div_pti) : &IDTVEC(div), SDT_SYSIGT, SEL_KPL, 0); - setidt(IDT_DB, pti ? &IDTVEC(dbg_pti) : &IDTVEC(dbg), SDT_SYSIGT, - SEL_KPL, 0); + setidt(IDT_DB, &IDTVEC(dbg), SDT_SYSIGT, SEL_KPL, 4); setidt(IDT_NMI, &IDTVEC(nmi), SDT_SYSIGT, SEL_KPL, 2); setidt(IDT_BP, pti ? &IDTVEC(bpt_pti) : &IDTVEC(bpt), SDT_SYSIGT, SEL_UPL, 0); @@ -1721,6 +1721,13 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) np = ((struct nmi_pcpu *) &mce0_stack[sizeof(mce0_stack)]) - 1; np->np_pcpu = (register_t) pc; common_tss[0].tss_ist3 = (long) np; + + /* + * DB# stack, runs on ist4. + */ + np = ((struct nmi_pcpu *) &dbg0_stack[sizeof(dbg0_stack)]) - 1; + np->np_pcpu = (register_t) pc; + common_tss[0].tss_ist4 = (long) np; /* Set the IO permission bitmap (empty due to tss seg limit) */ common_tss[0].tss_iobase = sizeof(struct amd64tss) + IOPERM_BITMAP_SIZE; Modified: stable/11/sys/amd64/amd64/mp_machdep.c ============================================================================== --- stable/11/sys/amd64/amd64/mp_machdep.c Tue May 8 17:00:34 2018 (r333368) +++ stable/11/sys/amd64/amd64/mp_machdep.c Tue May 8 17:03:33 2018 (r333369) @@ -87,6 +87,7 @@ extern struct pcpu __pcpu[]; char *doublefault_stack; char *mce_stack; char *nmi_stack; +char *dbg_stack; /* * Local data and functions. @@ -225,6 +226,10 @@ init_secondary(void) np = ((struct nmi_pcpu *) &mce_stack[PAGE_SIZE]) - 1; common_tss[cpu].tss_ist3 = (long) np; + /* The DB# stack runs on IST4. */ + np = ((struct nmi_pcpu *) &dbg_stack[PAGE_SIZE]) - 1; + common_tss[cpu].tss_ist4 = (long) np; + /* Prepare private GDT */ gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu]; for (x = 0; x < NGDT; x++) { @@ -270,6 +275,10 @@ init_secondary(void) np = ((struct nmi_pcpu *) &mce_stack[PAGE_SIZE]) - 1; np->np_pcpu = (register_t) pc; + /* Save the per-cpu pointer for use by the DB# handler. */ + np = ((struct nmi_pcpu *) &dbg_stack[PAGE_SIZE]) - 1; + np->np_pcpu = (register_t) pc; + wrmsr(MSR_FSBASE, 0); /* User value */ wrmsr(MSR_GSBASE, (u_int64_t)pc); wrmsr(MSR_KGSBASE, (u_int64_t)pc); /* XXX User value while we're in the kernel */ @@ -367,6 +376,8 @@ native_start_all_aps(void) mce_stack = (char *)kmem_malloc(kernel_arena, PAGE_SIZE, M_WAITOK | M_ZERO); nmi_stack = (char *)kmem_malloc(kernel_arena, PAGE_SIZE, + M_WAITOK | M_ZERO); + dbg_stack = (char *)kmem_malloc(kernel_arena, PAGE_SIZE, M_WAITOK | M_ZERO); dpcpu = (void *)kmem_malloc(kernel_arena, DPCPU_SIZE, M_WAITOK | M_ZERO); Modified: stable/11/sys/amd64/amd64/pmap.c ============================================================================== --- stable/11/sys/amd64/amd64/pmap.c Tue May 8 17:00:34 2018 (r333368) +++ stable/11/sys/amd64/amd64/pmap.c Tue May 8 17:03:33 2018 (r333369) @@ -7796,6 +7796,9 @@ pmap_pti_init(void) /* MC# stack IST 3 */ va = common_tss[i].tss_ist3 + sizeof(struct nmi_pcpu); pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); + /* DB# stack IST 4 */ + va = common_tss[i].tss_ist4 + sizeof(struct nmi_pcpu); + pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); } pmap_pti_add_kva_locked((vm_offset_t)kernphys + KERNBASE, (vm_offset_t)etext, true); Modified: stable/11/sys/amd64/amd64/trap.c ============================================================================== --- stable/11/sys/amd64/amd64/trap.c Tue May 8 17:00:34 2018 (r333368) +++ stable/11/sys/amd64/amd64/trap.c Tue May 8 17:03:33 2018 (r333369) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); */ #include "opt_clock.h" +#include "opt_compat.h" #include "opt_cpu.h" #include "opt_hwpmc_hooks.h" #include "opt_isa.h" @@ -99,6 +100,10 @@ PMC_SOFT_DEFINE( , , page_fault, write); #include #endif +extern inthand_t IDTVEC(bpt), IDTVEC(bpt_pti), IDTVEC(dbg), + IDTVEC(fast_syscall), IDTVEC(fast_syscall_pti), IDTVEC(fast_syscall32), + IDTVEC(int0x80_syscall_pti), IDTVEC(int0x80_syscall); + void __noinline trap(struct trapframe *frame); void trap_check(struct trapframe *frame); void dblfault_handler(struct trapframe *frame); @@ -530,6 +535,52 @@ trap(struct trapframe *frame) load_dr6(rdr6() & ~0xf); return; } + + /* + * Malicious user code can configure a debug + * register watchpoint to trap on data access + * to the top of stack and then execute 'pop + * %ss; int 3'. Due to exception deferral for + * 'pop %ss', the CPU will not interrupt 'int + * 3' to raise the DB# exception for the debug + * register but will postpone the DB# until + * execution of the first instruction of the + * BP# handler (in kernel mode). Normally the + * previous check would ignore DB# exceptions + * for watchpoints on user addresses raised in + * kernel mode. However, some CPU errata + * include cases where DB# exceptions do not + * properly set bits in %dr6, e.g. Haswell + * HSD23 and Skylake-X SKZ24. + * + * A deferred DB# can also be raised on the + * first instructions of system call entry + * points or single-step traps via similar use + * of 'pop %ss' or 'mov xxx, %ss'. + */ + if (pti) { + if (frame->tf_rip == + (uintptr_t)IDTVEC(fast_syscall_pti) || +#ifdef COMPAT_FREEBSD32 + frame->tf_rip == + (uintptr_t)IDTVEC(int0x80_syscall_pti) || +#endif + frame->tf_rip == (uintptr_t)IDTVEC(bpt_pti)) + return; + } else { + if (frame->tf_rip == + (uintptr_t)IDTVEC(fast_syscall) || +#ifdef COMPAT_FREEBSD32 + frame->tf_rip == + (uintptr_t)IDTVEC(int0x80_syscall) || +#endif + frame->tf_rip == (uintptr_t)IDTVEC(bpt)) + return; + } + if (frame->tf_rip == (uintptr_t)IDTVEC(dbg) || + /* Needed for AMD. */ + frame->tf_rip == (uintptr_t)IDTVEC(fast_syscall32)) + return; /* * FALLTHROUGH (TRCTRAP kernel mode, kernel address) */ Modified: stable/11/sys/i386/i386/trap.c ============================================================================== --- stable/11/sys/i386/i386/trap.c Tue May 8 17:00:34 2018 (r333368) +++ stable/11/sys/i386/i386/trap.c Tue May 8 17:03:33 2018 (r333369) @@ -116,6 +116,8 @@ void dblfault_handler(void); extern inthand_t IDTVEC(lcall_syscall); +extern inthand_t IDTVEC(bpt), IDTVEC(dbg), IDTVEC(int0x80_syscall); + #define MAX_TRAP_MSG 32 static char *trap_msg[] = { "", /* 0 unused */ @@ -660,6 +662,34 @@ kernel_trctrap: load_dr6(rdr6() & ~0xf); return; } + + /* + * Malicious user code can configure a debug + * register watchpoint to trap on data access + * to the top of stack and then execute 'pop + * %ss; int 3'. Due to exception deferral for + * 'pop %ss', the CPU will not interrupt 'int + * 3' to raise the DB# exception for the debug + * register but will postpone the DB# until + * execution of the first instruction of the + * BP# handler (in kernel mode). Normally the + * previous check would ignore DB# exceptions + * for watchpoints on user addresses raised in + * kernel mode. However, some CPU errata + * include cases where DB# exceptions do not + * properly set bits in %dr6, e.g. Haswell + * HSD23 and Skylake-X SKZ24. + * + * A deferred DB# can also be raised on the + * first instructions of system call entry + * points or single-step traps via similar use + * of 'pop %ss' or 'mov xxx, %ss'. + */ + if (frame->tf_eip == + (uintptr_t)IDTVEC(int0x80_syscall) || + frame->tf_eip == (uintptr_t)IDTVEC(bpt) || + frame->tf_eip == (uintptr_t)IDTVEC(dbg)) + return; /* * FALLTHROUGH (TRCTRAP kernel mode, kernel address) */ From owner-svn-src-stable-11@freebsd.org Tue May 8 17:59:27 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3EECBFC06A2; Tue, 8 May 2018 17:59:27 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DA4506882A; Tue, 8 May 2018 17:59:26 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD1602D9CF; Tue, 8 May 2018 17:59:26 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48HxQOu056365; Tue, 8 May 2018 17:59:26 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48HxQxK056363; Tue, 8 May 2018 17:59:26 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805081759.w48HxQxK056363@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 8 May 2018 17:59:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333376 - in stable: 10/release/doc/share/xml 11/release/doc/share/xml X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 10/release/doc/share/xml 11/release/doc/share/xml X-SVN-Commit-Revision: 333376 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 17:59:27 -0000 Author: gjb Date: Tue May 8 17:59:25 2018 New Revision: 333376 URL: https://svnweb.freebsd.org/changeset/base/333376 Log: Document EN-18:05, EN-18:06, SA-18:06. Approved by: re (implicit) Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/share/xml/errata.xml stable/11/release/doc/share/xml/security.xml Changes in other areas also in this revision: Modified: stable/10/release/doc/share/xml/errata.xml stable/10/release/doc/share/xml/security.xml Modified: stable/11/release/doc/share/xml/errata.xml ============================================================================== --- stable/11/release/doc/share/xml/errata.xml Tue May 8 17:18:24 2018 (r333375) +++ stable/11/release/doc/share/xml/errata.xml Tue May 8 17:59:25 2018 (r333376) @@ -72,6 +72,22 @@ Multiple small kernel memory disclosures + + + FreeBSD-EN-18:05.mem + 08 May 2018 + Multiple small kernel memory + disclosures + + + + FreeBSD-EN-18:06.tzdata + 08 May 2018 + Update timezone database + information + Modified: stable/11/release/doc/share/xml/security.xml ============================================================================== --- stable/11/release/doc/share/xml/security.xml Tue May 8 17:18:24 2018 (r333375) +++ stable/11/release/doc/share/xml/security.xml Tue May 8 17:59:25 2018 (r333376) @@ -106,6 +106,14 @@ 04 April 2018 Fix denial of service + + + FreeBSD-SA-18:06.debugreg + 08 May 2018 + Mishandling of x86 debug + exceptions + From owner-svn-src-stable-11@freebsd.org Tue May 8 18:03:09 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8027AFC0FA9; Tue, 8 May 2018 18:03:09 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 310066A2D4; Tue, 8 May 2018 18:03:09 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 11B652DB61; Tue, 8 May 2018 18:03:09 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w48I38Wc061421; Tue, 8 May 2018 18:03:08 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w48I38XL061420; Tue, 8 May 2018 18:03:08 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805081803.w48I38XL061420@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Tue, 8 May 2018 18:03:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333377 - in stable: 10/release/doc/en_US.ISO8859-1/errata 11/release/doc/en_US.ISO8859-1/errata X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 10/release/doc/en_US.ISO8859-1/errata 11/release/doc/en_US.ISO8859-1/errata X-SVN-Commit-Revision: 333377 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2018 18:03:09 -0000 Author: gjb Date: Tue May 8 18:03:08 2018 New Revision: 333377 URL: https://svnweb.freebsd.org/changeset/base/333377 Log: Belatedly bump copyright year. Approved by: re (implicit) Sponsored by: The FreeBSD Foundation Modified: stable/11/release/doc/en_US.ISO8859-1/errata/article.xml Changes in other areas also in this revision: Modified: stable/10/release/doc/en_US.ISO8859-1/errata/article.xml Modified: stable/11/release/doc/en_US.ISO8859-1/errata/article.xml ============================================================================== --- stable/11/release/doc/en_US.ISO8859-1/errata/article.xml Tue May 8 17:59:25 2018 (r333376) +++ stable/11/release/doc/en_US.ISO8859-1/errata/article.xml Tue May 8 18:03:08 2018 (r333377) @@ -23,7 +23,7 @@ $FreeBSD$ - 2017 + 2018 The &os; Documentation Project From owner-svn-src-stable-11@freebsd.org Wed May 9 11:47:06 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B786DFB4E99; Wed, 9 May 2018 11:47:06 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 63B766C036; Wed, 9 May 2018 11:47:06 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 42B3511086; Wed, 9 May 2018 11:47:06 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49Bl6Cr001315; Wed, 9 May 2018 11:47:06 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Bl62i001314; Wed, 9 May 2018 11:47:06 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805091147.w49Bl62i001314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Wed, 9 May 2018 11:47:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333402 - stable/11/sys/dev/mlx5/mlx5_en X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/dev/mlx5/mlx5_en X-SVN-Commit-Revision: 333402 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 11:47:06 -0000 Author: kib Date: Wed May 9 11:47:05 2018 New Revision: 333402 URL: https://svnweb.freebsd.org/changeset/base/333402 Log: MFC r333182: mlx5en: Always allow VLAN id 0. Sponsored by: Mellanox Technologies Approved by: re (marius) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c ============================================================================== --- stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Wed May 9 11:17:01 2018 (r333401) +++ stable/11/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c Wed May 9 11:47:05 2018 (r333402) @@ -696,6 +696,7 @@ mlx5e_add_all_vlan_rules(struct mlx5e_priv *priv) int err; int i; + set_bit(0, priv->vlan.active_vlans); for_each_set_bit(i, priv->vlan.active_vlans, VLAN_N_VID) { err = mlx5e_add_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_VID, i); @@ -727,6 +728,7 @@ mlx5e_del_all_vlan_rules(struct mlx5e_priv *priv) for_each_set_bit(i, priv->vlan.active_vlans, VLAN_N_VID) mlx5e_del_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_VID, i); + clear_bit(0, priv->vlan.active_vlans); } #define mlx5e_for_each_hash_node(hn, tmp, hash, i) \ From owner-svn-src-stable-11@freebsd.org Wed May 9 14:38:08 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 191BEFBE9E8; Wed, 9 May 2018 14:38:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B41C1734FC; Wed, 9 May 2018 14:38:07 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9114A12C7B; Wed, 9 May 2018 14:38:07 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49Ec7DX087452; Wed, 9 May 2018 14:38:07 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49Ec7wM087451; Wed, 9 May 2018 14:38:07 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805091438.w49Ec7wM087451@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 9 May 2018 14:38:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333410 - stable/11/release/i386 X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/11/release/i386 X-SVN-Commit-Revision: 333410 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 14:38:08 -0000 Author: emaste Date: Wed May 9 14:38:07 2018 New Revision: 333410 URL: https://svnweb.freebsd.org/changeset/base/333410 Log: MFC r332446: switch i386 memstick installer images to MBR Some BIOSes have trouble booting from GPT in non-UEFI mode. This is commonly reported with Lenovo laptops, including my x220. As we do not currently support booting FreeBSD/i386 via UEFI there's no reason to prefer GPT. The "vestigial swap partition" was added in r265017 to work around an issue with loader's GPT support, so we should not need it when using MBR. We may want to make the same change to amd64, although the issue there is mitigated by such systems booting via UEFI in the common case. PR: 227422 Approved by: re Relnotes: Yes Sponsored by: The FreeBSD Foundation Modified: stable/11/release/i386/make-memstick.sh Directory Properties: stable/11/ (props changed) Modified: stable/11/release/i386/make-memstick.sh ============================================================================== --- stable/11/release/i386/make-memstick.sh Wed May 9 14:11:35 2018 (r333409) +++ stable/11/release/i386/make-memstick.sh Wed May 9 14:38:07 2018 (r333410) @@ -36,11 +36,9 @@ makefs -B little -o label=FreeBSD_Install -o version=2 rm ${1}/etc/fstab rm ${1}/etc/rc.conf.local -mkimg -s gpt \ - -b ${1}/boot/pmbr \ - -p freebsd-boot:=${1}/boot/gptboot \ - -p freebsd-ufs:=${2}.part \ - -p freebsd-swap::1M \ +mkimg -s mbr \ + -b ${1}/boot/mbr \ + -p freebsd:-"mkimg -s bsd -b ${1}/boot/boot -p freebsd-ufs:=${2}.part" \ -o ${2} rm ${2}.part From owner-svn-src-stable-11@freebsd.org Wed May 9 14:50:34 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 06B65FBEF8E; Wed, 9 May 2018 14:50:34 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A2FBD7641E; Wed, 9 May 2018 14:50:33 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 857DD12E18; Wed, 9 May 2018 14:50:33 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49EoXph092677; Wed, 9 May 2018 14:50:33 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49EoXRP092676; Wed, 9 May 2018 14:50:33 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <201805091450.w49EoXRP092676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 9 May 2018 14:50:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333412 - in stable/11: share/man/man4 sys/dev/lmc X-SVN-Group: stable-11 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/dev/lmc X-SVN-Commit-Revision: 333412 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 14:50:34 -0000 Author: emaste Date: Wed May 9 14:50:32 2018 New Revision: 333412 URL: https://svnweb.freebsd.org/changeset/base/333412 Log: MFC r332966: Add deprecation notice for lmc(4) We intend to remove support before FreeBSD 12 is branched. These are available only as 32-bit PCI devices. The driver has an ambiguous license and I have not been successful in contacting the driver's author in order to address this. The planned deprecation has been announced on -current and -stable; if we receive feedback that the driver is still useful and we are able to resolve the license issue this deprecation notice can be reverted. Relnotes: Yes Approved by: re Sponsored by: The FreeBSD Foundation Modified: stable/11/share/man/man4/lmc.4 stable/11/sys/dev/lmc/if_lmc.c Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/lmc.4 ============================================================================== --- stable/11/share/man/man4/lmc.4 Wed May 9 14:39:24 2018 (r333411) +++ stable/11/share/man/man4/lmc.4 Wed May 9 14:50:32 2018 (r333412) @@ -43,7 +43,7 @@ .\" this program; if not, write to the Free Software Foundation, Inc., 59 .\" Temple Place - Suite 330, Boston, MA 02111-1307, USA. .\" -.Dd February 8, 2012 +.Dd May 9, 2018 .Dt LMC 4 .Os .\" @@ -88,6 +88,13 @@ SPPP nor Netgraph are configured into the kernel. Netgraph and SPPP can both be enabled; Netgraph will be used if the .Va rawdata hook is connected. +.\" +.Sh DEPRECATION NOTICE +The +.Nm +driver is not present in +.Fx 12.0 +and later. .\" .Sh DESCRIPTION .\" Modified: stable/11/sys/dev/lmc/if_lmc.c ============================================================================== --- stable/11/sys/dev/lmc/if_lmc.c Wed May 9 14:39:24 2018 (r333411) +++ stable/11/sys/dev/lmc/if_lmc.c Wed May 9 14:50:32 2018 (r333412) @@ -4548,6 +4548,7 @@ fbsd_attach(device_t dev) /* Start the card and attach a kernel interface and line protocol. */ if ((error = attach_card(sc, ""))) detach_card(sc); + gone_in_dev(dev, 12, "lmc(4) driver"); return error; } From owner-svn-src-stable-11@freebsd.org Wed May 9 15:22:41 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0AC0BFC0C95; Wed, 9 May 2018 15:22:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B479F7D806; Wed, 9 May 2018 15:22:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96A19134CB; Wed, 9 May 2018 15:22:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49FMeD2012670; Wed, 9 May 2018 15:22:40 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49FMen6012669; Wed, 9 May 2018 15:22:40 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201805091522.w49FMen6012669@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Wed, 9 May 2018 15:22:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333415 - stable/11/sys/dev/mpr X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/mpr X-SVN-Commit-Revision: 333415 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 15:22:41 -0000 Author: mav Date: Wed May 9 15:22:40 2018 New Revision: 333415 URL: https://svnweb.freebsd.org/changeset/base/333415 Log: MFC r333158: Clean enclosure_table when resetting num_enc_table_entries to zero. Garbage left there by r325363 in some scenarios found to lead to later enclosure mapping failures. Approved by: re@ (gjb) Sponsored by: iXsystems, Inc. Modified: stable/11/sys/dev/mpr/mpr_mapping.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/mpr/mpr_mapping.c ============================================================================== --- stable/11/sys/dev/mpr/mpr_mapping.c Wed May 9 15:20:39 2018 (r333414) +++ stable/11/sys/dev/mpr/mpr_mapping.c Wed May 9 15:22:40 2018 (r333415) @@ -2388,6 +2388,8 @@ fail: * sc->mapping_table volumes tooi */ } + for (enc_idx = 0; enc_idx < sc->num_enc_table_entries; enc_idx++) + _mapping_clear_enc_entry(sc->enclosure_table + enc_idx); sc->num_enc_table_entries = 0; return (false); } From owner-svn-src-stable-11@freebsd.org Wed May 9 16:14:15 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7A20FC41A7; Wed, 9 May 2018 16:14:15 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7255F696E4; Wed, 9 May 2018 16:14:15 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5145113CF8; Wed, 9 May 2018 16:14:15 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49GEFPN038019; Wed, 9 May 2018 16:14:15 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49GEDcG038007; Wed, 9 May 2018 16:14:13 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201805091614.w49GEDcG038007@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Wed, 9 May 2018 16:14:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333417 - in stable/11: share/man/man4 sys/amd64/conf sys/conf sys/dev/smartpqi sys/modules sys/modules/smartpqi X-SVN-Group: stable-11 X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/amd64/conf sys/conf sys/dev/smartpqi sys/modules sys/modules/smartpqi X-SVN-Commit-Revision: 333417 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 16:14:16 -0000 Author: sbruno Date: Wed May 9 16:14:12 2018 New Revision: 333417 URL: https://svnweb.freebsd.org/changeset/base/333417 Log: MFC r333019 r333046 r333085 r333086 r333132 smartpqi(4): - Microsemi SCSI driver for PQI controllers. - Found on newer model HP servers. - Restrict to AMD64 only as per developer request. The driver provides support for the new generation of PQI controllers from Microsemi. This driver is the first SCSI driver to implement the PQI queuing model and it will replace the aacraid driver for Adaptec Series 9 controllers. HARDWARE Controllers supported by the driver include: HPE Gen10 Smart Array Controller Family OEM Controllers based on the Microsemi Chipset. Approved by: re (gjb@) Relnotes: yes Added: stable/11/share/man/man4/smartpqi.4 - copied unchanged from r333019, head/share/man/man4/smartpqi.4 stable/11/sys/dev/smartpqi/ - copied from r333019, head/sys/dev/smartpqi/ stable/11/sys/modules/smartpqi/ - copied from r333019, head/sys/modules/smartpqi/ Modified: stable/11/share/man/man4/Makefile stable/11/sys/amd64/conf/GENERIC stable/11/sys/amd64/conf/NOTES stable/11/sys/conf/files.amd64 stable/11/sys/dev/smartpqi/smartpqi_cam.c stable/11/sys/dev/smartpqi/smartpqi_ioctl.c stable/11/sys/dev/smartpqi/smartpqi_main.c stable/11/sys/dev/smartpqi/smartpqi_prototypes.h stable/11/sys/modules/Makefile stable/11/sys/modules/smartpqi/Makefile Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man4/Makefile ============================================================================== --- stable/11/share/man/man4/Makefile Wed May 9 15:25:26 2018 (r333416) +++ stable/11/share/man/man4/Makefile Wed May 9 16:14:12 2018 (r333417) @@ -483,6 +483,7 @@ MAN= aac.4 \ sio.4 \ sis.4 \ sk.4 \ + ${_smartpqi.4} \ smb.4 \ smbus.4 \ smp.4 \ @@ -875,6 +876,7 @@ _qlxgb.4= qlxgb.4 _qlxgbe.4= qlxgbe.4 _qlnxe.4= qlnxe.4 _sfxge.4= sfxge.4 +_smartpqi.4= smartpqi.4 MLINKS+=qlxge.4 if_qlxge.4 MLINKS+=qlxgb.4 if_qlxgb.4 Copied: stable/11/share/man/man4/smartpqi.4 (from r333019, head/share/man/man4/smartpqi.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/share/man/man4/smartpqi.4 Wed May 9 16:14:12 2018 (r333417, copy of r333019, head/share/man/man4/smartpqi.4) @@ -0,0 +1,102 @@ +.\" Copyright (c) 2018 Murthy Bhat +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ stable/10/share/man/man4/smartpqi.4 195614 2017-01-11 08:10:18Z jkim $ +.Dd April 06, 2018 +.Dt SMARTPQI 4 +.Os +.Sh NAME +.Nm smartpqi +.Nd Microsemi smartpqi SCSI driver for PQI controllers +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd device pci +.Cd device scbus +.Cd device smartpqi +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +smartpqi_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +SCSI driver provides support for the new generation of PQI controllers from +Microsemi. +The +.Nm +driver is the first SCSI driver to implement the PQI queuing model. +.Pp +The +.Nm +driver will replace the aacraid driver for Adaptec Series 9 controllers. +.Pp +The +.Pa /dev/smartpqi? +device nodes provide access to the management interface of the controller. +One node exists per installed card. +.Sh HARDWARE +Controllers supported by the +.Nm +driver include: +.Pp +.Bl -bullet -compact +.It +HPE Gen10 Smart Array Controller Family +.It +OEM Controllers based on the Microsemi Chipset +.El +.Sh FILES +.Bl -tag -width /boot/kernel/aac.ko -compact +.It Pa /dev/smartpqi? +smartpqi management interface +.El +.Sh SEE ALSO +.Xr kld 4 , +.Xr linux 4 , +.Xr scsi 4 , +.Xr kldload 8 +.Xr pass 4 +.Xr xpt 4 +.Xr loader.conf 5 +.Xr camcontrol 8 +.Rs +.%T "Microsemi Website" +.%U http://www.microsemi.com/ +.Re +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 11.1 . +.Sh AUTHOR +.An Murthy Bhat +.Aq murthy.bhat@microsemi.com +.Sh BUGS +The controller is not actually paused on suspend/resume. Modified: stable/11/sys/amd64/conf/GENERIC ============================================================================== --- stable/11/sys/amd64/conf/GENERIC Wed May 9 15:25:26 2018 (r333416) +++ stable/11/sys/amd64/conf/GENERIC Wed May 9 16:14:12 2018 (r333417) @@ -155,6 +155,7 @@ device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID +device smartpqi # Microsemi smartpqi driver device tws # LSI 3ware 9750 SATA+SAS 6Gb/s RAID controller # RAID controllers Modified: stable/11/sys/amd64/conf/NOTES ============================================================================== --- stable/11/sys/amd64/conf/NOTES Wed May 9 15:25:26 2018 (r333416) +++ stable/11/sys/amd64/conf/NOTES Wed May 9 16:14:12 2018 (r333417) @@ -423,6 +423,13 @@ device ntb_hw_plx # PLX NTB hardware driver device arcmsr # Areca SATA II RAID # +# Microsemi smartpqi controllers. +# These controllers have a SCSI-like interface, and require the +# CAM infrastructure. +# +device smartpqi + +# # 3ware 9000 series PATA/SATA RAID controller driver and options. # The driver is implemented as a SIM, and so, needs the CAM infrastructure. # Modified: stable/11/sys/conf/files.amd64 ============================================================================== --- stable/11/sys/conf/files.amd64 Wed May 9 15:25:26 2018 (r333416) +++ stable/11/sys/conf/files.amd64 Wed May 9 16:14:12 2018 (r333417) @@ -449,6 +449,22 @@ dev/sio/sio_isa.c optional sio isa dev/sio/sio_pccard.c optional sio pccard dev/sio/sio_pci.c optional sio pci dev/sio/sio_puc.c optional sio puc +dev/smartpqi/smartpqi_cam.c optional smartpqi +dev/smartpqi/smartpqi_cmd.c optional smartpqi +dev/smartpqi/smartpqi_discovery.c optional smartpqi +dev/smartpqi/smartpqi_event.c optional smartpqi +dev/smartpqi/smartpqi_helper.c optional smartpqi +dev/smartpqi/smartpqi_init.c optional smartpqi +dev/smartpqi/smartpqi_intr.c optional smartpqi +dev/smartpqi/smartpqi_ioctl.c optional smartpqi +dev/smartpqi/smartpqi_main.c optional smartpqi +dev/smartpqi/smartpqi_mem.c optional smartpqi +dev/smartpqi/smartpqi_misc.c optional smartpqi +dev/smartpqi/smartpqi_queue.c optional smartpqi +dev/smartpqi/smartpqi_request.c optional smartpqi +dev/smartpqi/smartpqi_response.c optional smartpqi +dev/smartpqi/smartpqi_sis.c optional smartpqi +dev/smartpqi/smartpqi_tag.c optional smartpqi dev/speaker/spkr.c optional speaker dev/syscons/apm/apm_saver.c optional apm_saver apm dev/syscons/scterm-teken.c optional sc Modified: stable/11/sys/dev/smartpqi/smartpqi_cam.c ============================================================================== --- head/sys/dev/smartpqi/smartpqi_cam.c Thu Apr 26 16:59:06 2018 (r333019) +++ stable/11/sys/dev/smartpqi/smartpqi_cam.c Wed May 9 16:14:12 2018 (r333417) @@ -1199,7 +1199,3 @@ void deregister_sim(struct pqisrc_softstate *softs) DBG_FUNC("OUT\n"); } - -static void smartpqi_cam_action(struct cam_sim *, union ccb *); -static void smartpqi_poll(struct cam_sim *); - Modified: stable/11/sys/dev/smartpqi/smartpqi_ioctl.c ============================================================================== --- head/sys/dev/smartpqi/smartpqi_ioctl.c Thu Apr 26 16:59:06 2018 (r333019) +++ stable/11/sys/dev/smartpqi/smartpqi_ioctl.c Wed May 9 16:14:12 2018 (r333417) @@ -166,10 +166,6 @@ static int smartpqi_ioctl(struct cdev *cdev, u_long cm return error; } -static d_open_t smartpqi_open; -static d_ioctl_t smartpqi_ioctl; -static d_close_t smartpqi_close; - static struct cdevsw smartpqi_cdevsw = { .d_version = D_VERSION, Modified: stable/11/sys/dev/smartpqi/smartpqi_main.c ============================================================================== --- head/sys/dev/smartpqi/smartpqi_main.c Thu Apr 26 16:59:06 2018 (r333019) +++ stable/11/sys/dev/smartpqi/smartpqi_main.c Wed May 9 16:14:12 2018 (r333417) @@ -467,13 +467,6 @@ smartpqi_shutdown(void *arg) return rval; } - -static int smartpqi_probe(device_t dev); -static int smartpqi_attach(device_t dev); -static int smartpqi_detach(device_t dev); -static int smartpqi_suspend(device_t dev); -static int smartpqi_resume(device_t dev); - /* * PCI bus interface. */ @@ -496,5 +489,3 @@ static driver_t smartpqi_pci_driver = { DRIVER_MODULE(smartpqi, pci, smartpqi_pci_driver, pqi_devclass, 0, 0); MODULE_DEPEND(smartpqi, pci, 1, 1, 1); - - Modified: stable/11/sys/dev/smartpqi/smartpqi_prototypes.h ============================================================================== --- head/sys/dev/smartpqi/smartpqi_prototypes.h Thu Apr 26 16:59:06 2018 (r333019) +++ stable/11/sys/dev/smartpqi/smartpqi_prototypes.h Wed May 9 16:14:12 2018 (r333417) @@ -131,9 +131,6 @@ int pqisrc_process_event_intr_src(pqisrc_softstate_t * void pqisrc_ack_all_events(void *arg); -void pqisrc_event_worker(void *, int); -int pqisrc_scsi_setup(struct pqisrc_softstate *); -void pqisrc_scsi_cleanup(struct pqisrc_softstate *); boolean_t pqisrc_update_scsi_sense(const uint8_t *, int, struct sense_header_scsi *); int pqisrc_build_send_raid_request(pqisrc_softstate_t *, pqisrc_raid_req_t *, @@ -180,7 +177,6 @@ int pqisrc_create_op_aio_ibq(pqisrc_softstate_t *, ib_ int pqisrc_create_op_raid_ibq(pqisrc_softstate_t *, ib_queue_t *); int pqisrc_alloc_and_create_event_queue(pqisrc_softstate_t *); int pqisrc_alloc_and_create_ib_queues(pqisrc_softstate_t *); -int pqisrc_alloc_and_create_ib_queues(pqisrc_softstate_t *); int pqisrc_alloc_and_create_ob_queues(pqisrc_softstate_t *); int pqisrc_process_task_management_response(pqisrc_softstate_t *, pqi_tmf_resp_t *); @@ -231,10 +227,7 @@ void os_stop_heartbeat_timer(pqisrc_softstate_t *); void os_start_heartbeat_timer(void *); /* FreeBSD_cam.c */ -int pqisrc_scsi_setup(struct pqisrc_softstate *); -void pqisrc_scsi_cleanup(struct pqisrc_softstate *); uint8_t os_get_task_attr(rcb_t *); -void os_wellness_periodic(void *); void smartpqi_target_rescan(struct pqisrc_softstate *); /* FreeBSD_intr.c FreeBSD_main.c */ Modified: stable/11/sys/modules/Makefile ============================================================================== --- stable/11/sys/modules/Makefile Wed May 9 15:25:26 2018 (r333416) +++ stable/11/sys/modules/Makefile Wed May 9 16:14:12 2018 (r333417) @@ -356,6 +356,7 @@ SUBDIR= \ siis \ sis \ sk \ + ${_smartpqi} \ smbfs \ sn \ ${_snc} \ @@ -727,6 +728,7 @@ _qlxgbe= qlxgbe _qlnx= qlnx .endif _sfxge= sfxge +_smartpqi= smartpqi .if ${MK_BHYVE} != "no" || defined(ALL_MODULES) _vmm= vmm Modified: stable/11/sys/modules/smartpqi/Makefile ============================================================================== --- head/sys/modules/smartpqi/Makefile Thu Apr 26 16:59:06 2018 (r333019) +++ stable/11/sys/modules/smartpqi/Makefile Wed May 9 16:14:12 2018 (r333417) @@ -3,7 +3,7 @@ KMOD = smartpqi -.PATH: ${.CURDIR}/../../dev/${KMOD} +.PATH: ${SRCTOP}/sys/dev/${KMOD} SRCS=smartpqi_mem.c smartpqi_intr.c smartpqi_main.c smartpqi_cam.c smartpqi_ioctl.c smartpqi_misc.c smartpqi_sis.c smartpqi_init.c smartpqi_queue.c smartpqi_tag.c smartpqi_cmd.c smartpqi_request.c smartpqi_response.c smartpqi_event.c smartpqi_helper.c smartpqi_discovery.c From owner-svn-src-stable-11@freebsd.org Wed May 9 19:52:35 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20DA7FC9F7A; Wed, 9 May 2018 19:52:35 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C7EC57C0C6; Wed, 9 May 2018 19:52:34 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A92E5160B8; Wed, 9 May 2018 19:52:34 +0000 (UTC) (envelope-from davidcs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w49JqYor050038; Wed, 9 May 2018 19:52:34 GMT (envelope-from davidcs@FreeBSD.org) Received: (from davidcs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w49JqX9B050035; Wed, 9 May 2018 19:52:33 GMT (envelope-from davidcs@FreeBSD.org) Message-Id: <201805091952.w49JqX9B050035@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: davidcs set sender to davidcs@FreeBSD.org using -f From: David C Somayajulu Date: Wed, 9 May 2018 19:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333428 - stable/11/sys/dev/qlxgbe X-SVN-Group: stable-11 X-SVN-Commit-Author: davidcs X-SVN-Commit-Paths: stable/11/sys/dev/qlxgbe X-SVN-Commit-Revision: 333428 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 May 2018 19:52:35 -0000 Author: davidcs Date: Wed May 9 19:52:33 2018 New Revision: 333428 URL: https://svnweb.freebsd.org/changeset/base/333428 Log: MFC r333003 Upgraded FW Related Files to version 5.4.67 Approved by:re(gjb) Modified: stable/11/sys/dev/qlxgbe/ql_boot.c stable/11/sys/dev/qlxgbe/ql_fw.c stable/11/sys/dev/qlxgbe/ql_minidump.c stable/11/sys/dev/qlxgbe/ql_reset.c stable/11/sys/dev/qlxgbe/ql_ver.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/qlxgbe/ql_boot.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_boot.c Wed May 9 19:05:27 2018 (r333427) +++ stable/11/sys/dev/qlxgbe/ql_boot.c Wed May 9 19:52:33 2018 (r333428) @@ -35,7 +35,7 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_bootloader_version_major = 5; unsigned int ql83xx_bootloader_version_minor = 4; -unsigned int ql83xx_bootloader_version_sub = 66; +unsigned int ql83xx_bootloader_version_sub = 67; unsigned char ql83xx_bootloader[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -10957,8 +10957,9 @@ unsigned char ql83xx_bootloader[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x40, 0x40, 0x05, 0x04, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x93, 0x0e + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x64, 0x92, 0x0e }; unsigned int ql83xx_bootloader_len = 131072; + Modified: stable/11/sys/dev/qlxgbe/ql_fw.c ============================================================================== --- stable/11/sys/dev/qlxgbe/ql_fw.c Wed May 9 19:05:27 2018 (r333427) +++ stable/11/sys/dev/qlxgbe/ql_fw.c Wed May 9 19:52:33 2018 (r333428) @@ -35,32 +35,32 @@ __FBSDID("$FreeBSD$"); unsigned int ql83xx_firmware_version_major = 5; unsigned int ql83xx_firmware_version_minor = 4; -unsigned int ql83xx_firmware_version_sub = 66; +unsigned int ql83xx_firmware_version_sub = 67; unsigned char ql83xx_firmware[] = { - 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe8, 0x46, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x64, 0x27, 0xbc, 0x1f, 0xfc, 0x30, 0xf6, 0x92, + 0x03, 0x00, 0x40, 0x40, 0x05, 0x04, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xa8, 0x49, 0x1b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xba, 0x8f, 0x63, 0x84, 0x2f, 0x5a, 0x19, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xf2, 0x03, 0x00, + 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x52, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x56, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xfc, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf7, 0x90, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x54, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xa1, 0x4e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfd, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x91, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x58, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xa3, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xab, 0x8d, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x74, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x8f, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x76, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -69,118 +69,118 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1f, 0x98, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7c, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x65, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf4, 0x99, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x9b, 0xad, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0xaf, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xb2, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdd, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xb4, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdf, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5a, 0xbd, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2a, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x33, 0xbf, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x2e, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5d, 0xdc, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x35, 0xde, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xe8, 0x17, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbd, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xb0, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xea, 0x17, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbb, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xb4, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0xef, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x71, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x66, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x90, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdd, 0xf0, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb9, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x66, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x12, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x96, 0x14, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x1d, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x81, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x50, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x1f, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xa2, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x54, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x39, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2a, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x42, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x28, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x43, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6a, 0x45, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x4b, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xdc, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x4d, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x8e, 0x4e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x67, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xcf, 0x50, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xb4, 0x50, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x0a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf5, 0x52, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x5b, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbb, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x5d, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xad, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7c, 0xa1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x7e, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0xa2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xb4, 0x1d, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7d, 0x20, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6e, 0x1e, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x48, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd1, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x37, 0x21, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3b, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -189,7 +189,7 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8c, 0x8c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xb6, 0x43, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x72, 0x46, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -232,9 +232,9 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x4d, 0x1a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x92, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x4f, 0x1a, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x92, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -249,143239 +249,143273 @@ unsigned char ql83xx_firmware[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xda, 0xec, 0x3d, - 0x0b, 0x70, 0x5c, 0xd5, 0x75, 0xf7, 0x7d, 0x76, 0xf7, 0x69, 0xb5, 0x2b, - 0xad, 0x1d, 0x41, 0x84, 0x2c, 0xd7, 0x4f, 0xb6, 0xb1, 0xc5, 0x77, 0x9e, - 0x8d, 0x6d, 0x8c, 0x31, 0xe1, 0x49, 0x96, 0x1d, 0xdb, 0x91, 0x88, 0x80, - 0x86, 0x5f, 0x80, 0x0a, 0xda, 0x52, 0x41, 0x08, 0x16, 0x33, 0x84, 0x8a, - 0xc0, 0xd8, 0x4f, 0xb6, 0x24, 0x1b, 0x90, 0x13, 0x19, 0x3b, 0x8e, 0x03, - 0x34, 0x5e, 0x09, 0x4c, 0x69, 0xcb, 0x74, 0x96, 0x49, 0x9a, 0x30, 0x6d, - 0x67, 0x58, 0xdb, 0x99, 0x60, 0x52, 0x9c, 0xba, 0x9d, 0xd0, 0x86, 0x74, - 0x68, 0xb6, 0x93, 0x32, 0xa3, 0x12, 0x20, 0xdb, 0x4e, 0x26, 0x91, 0x43, - 0x0d, 0xbd, 0xe7, 0x7e, 0xde, 0xe7, 0xee, 0x7b, 0x6f, 0xf7, 0xca, 0xb2, - 0x33, 0xe9, 0x58, 0x99, 0x09, 0x3a, 0xbe, 0xf7, 0x9c, 0x77, 0xee, 0xb9, - 0xe7, 0x9e, 0x73, 0xee, 0x39, 0xe7, 0x3d, 0x21, 0x05, 0xd1, 0x1f, 0x1d, - 0x69, 0x48, 0x45, 0x77, 0xa1, 0x73, 0xf0, 0xef, 0x26, 0x4c, 0x7f, 0xfa, - 0x18, 0x7c, 0xe2, 0xdd, 0xb7, 0xc9, 0xff, 0xbe, 0x58, 0x01, 0x07, 0x7f, - 0x0a, 0x02, 0x9c, 0x97, 0x84, 0x1d, 0x15, 0x99, 0xe4, 0x97, 0xbd, 0x29, - 0xf2, 0x9f, 0x81, 0x8a, 0xf9, 0x0a, 0x72, 0xec, 0x9c, 0x0f, 0x66, 0xbf, - 0x9b, 0xf9, 0x0c, 0xe5, 0x17, 0x15, 0x35, 0xce, 0x3a, 0x42, 0x75, 0x79, - 0x9d, 0x02, 0xbd, 0xb7, 0xd1, 0x9f, 0xfb, 0xa2, 0x9e, 0xb7, 0x11, 0x45, - 0x3c, 0x4f, 0x12, 0xe6, 0xf4, 0x8e, 0xcf, 0x32, 0xbd, 0xc5, 0xca, 0xec, - 0xd2, 0x5b, 0x3e, 0xcb, 0xf4, 0xb6, 0xa8, 0x33, 0xa3, 0xc7, 0xf1, 0x3f, - 0xaf, 0xcf, 0x08, 0x3f, 0x44, 0xdf, 0x2c, 0x07, 0x48, 0x5d, 0xb4, 0xfc, - 0xce, 0x4d, 0x73, 0xd0, 0xf0, 0xd7, 0x30, 0x49, 0x80, 0x4f, 0xb4, 0x0f, - 0xbf, 0xf9, 0x83, 0x6e, 0x25, 0xb7, 0x07, 0xa3, 0x00, 0x9c, 0xbf, 0x7f, - 0xfe, 0xda, 0x35, 0x88, 0x8c, 0x97, 0xf9, 0xf8, 0x7b, 0x0f, 0x28, 0x79, - 0x3c, 0x6e, 0x0d, 0x01, 0xfe, 0x7d, 0x37, 0xbe, 0x76, 0xf9, 0x22, 0x8a, - 0x3f, 0xc4, 0xc6, 0x1b, 0xf6, 0x28, 0xd6, 0x53, 0x18, 0x7f, 0x88, 0xd3, - 0xff, 0x27, 0x8a, 0x3f, 0x14, 0xa4, 0x6f, 0x6d, 0xc7, 0x70, 0xef, 0xa6, - 0xcb, 0x13, 0x17, 0x5d, 0x46, 0xf1, 0xb7, 0xb3, 0xf1, 0x1b, 0xde, 0x54, - 0x7a, 0xf7, 0x62, 0x7c, 0x80, 0xfb, 0xd6, 0xdc, 0xf6, 0xc2, 0xfd, 0x49, - 0x8a, 0xcf, 0xc7, 0x1f, 0xfa, 0xb5, 0xd2, 0x37, 0x8e, 0xf1, 0x77, 0xb8, - 0xf4, 0x15, 0x82, 0xbf, 0x43, 0xe0, 0x1f, 0xe0, 0xfc, 0xab, 0xff, 0xbd, - 0x78, 0x95, 0x41, 0xf1, 0xf9, 0xf8, 0x2b, 0x57, 0xa3, 0x5e, 0x78, 0xfe, - 0x30, 0x86, 0x07, 0x72, 0xaf, 0xd9, 0x4d, 0x74, 0x7d, 0x03, 0xc3, 0x6c, - 0xfc, 0x27, 0x77, 0x6c, 0x35, 0x30, 0xfd, 0x02, 0xc0, 0x7d, 0x99, 0x51, - 0x2b, 0xd7, 0x42, 0xf1, 0xf9, 0xf8, 0xda, 0xbb, 0xb7, 0xee, 0x82, 0xe7, - 0x8f, 0x00, 0xff, 0xc6, 0x7a, 0x33, 0xc3, 0xd6, 0x3f, 0xc2, 0xc6, 0x3b, - 0x87, 0xb7, 0x1a, 0xf0, 0x7c, 0x80, 0x6d, 0x5d, 0xcf, 0x19, 0x19, 0x8a, - 0xcf, 0xc7, 0xff, 0xe8, 0x85, 0xad, 0xbb, 0xe0, 0xf9, 0xa3, 0xba, 0xb7, - 0x1f, 0x98, 0xde, 0x80, 0x00, 0x17, 0x04, 0xb8, 0x2c, 0xc0, 0xd6, 0x4e, - 0x01, 0x5f, 0x80, 0x0b, 0x02, 0x5c, 0x16, 0x60, 0x6b, 0x17, 0xf0, 0xd7, - 0xb4, 0xe1, 0xae, 0x56, 0x33, 0xb7, 0xf2, 0x69, 0x8c, 0x0f, 0x70, 0xde, - 0xba, 0x5b, 0xbf, 0x64, 0xcb, 0x36, 0x58, 0x5f, 0x01, 0xe0, 0xde, 0xe6, - 0x9d, 0x0f, 0x36, 0x5d, 0x44, 0xc6, 0xcb, 0x7c, 0xbc, 0x67, 0xcf, 0x36, - 0x58, 0x9f, 0xf5, 0x38, 0xc8, 0xa7, 0xf5, 0x88, 0xa2, 0x2f, 0xa7, 0xf8, - 0x8f, 0xb3, 0xf1, 0x2d, 0xdf, 0xda, 0x06, 0xeb, 0x2b, 0x00, 0x3c, 0xd0, - 0xaa, 0xe4, 0x8c, 0xab, 0x29, 0x3e, 0x1f, 0xdf, 0xf3, 0xe6, 0x36, 0x03, - 0xeb, 0x87, 0xf5, 0x04, 0xe5, 0x67, 0x49, 0xab, 0x49, 0xf9, 0x27, 0x70, - 0x7d, 0x06, 0x19, 0x3d, 0x77, 0x11, 0xfe, 0xd9, 0xf8, 0x0a, 0x36, 0x5e, - 0x26, 0xf0, 0x93, 0x0a, 0x1f, 0xb7, 0x9e, 0x14, 0xd6, 0x2f, 0xc0, 0x05, - 0x01, 0x2e, 0x0b, 0xb0, 0x35, 0x26, 0xe0, 0x0b, 0x70, 0x41, 0x80, 0xcb, - 0x02, 0x6c, 0xed, 0x16, 0xf0, 0x05, 0xb8, 0x20, 0xc0, 0x65, 0x01, 0xb6, - 0xbe, 0x22, 0xe0, 0x0b, 0x70, 0x41, 0x80, 0xcb, 0x02, 0x6c, 0x7d, 0x55, - 0xc0, 0x17, 0xe0, 0x82, 0x00, 0x97, 0x05, 0xd8, 0xb2, 0x31, 0xec, 0xf4, - 0xbf, 0x97, 0xe4, 0xf8, 0x00, 0x97, 0x16, 0xfd, 0xe4, 0x61, 0x8e, 0x0f, - 0x70, 0xf1, 0x37, 0xc7, 0x46, 0x35, 0x86, 0x0f, 0x70, 0xfe, 0xe5, 0x8f, - 0x7e, 0xc5, 0x60, 0xab, 0x03, 0xc3, 0xb9, 0xdd, 0x2b, 0xeb, 0x6c, 0x86, - 0x0f, 0xf0, 0x40, 0xd7, 0xa2, 0x47, 0x18, 0x5c, 0x00, 0xb8, 0x77, 0xc1, - 0x9e, 0xdd, 0xeb, 0x18, 0x3e, 0xc0, 0xd6, 0xbf, 0xec, 0x3c, 0xc5, 0x60, - 0xab, 0x53, 0xe0, 0x5f, 0x80, 0x0b, 0x02, 0x5c, 0x16, 0x60, 0x6b, 0x9d, - 0x80, 0x2f, 0xc0, 0x05, 0x01, 0x2e, 0x0b, 0xb0, 0xd5, 0x25, 0xe0, 0x0b, - 0x70, 0x41, 0x80, 0xcb, 0x02, 0x6c, 0xad, 0x17, 0xf0, 0x05, 0xb8, 0x20, - 0xc0, 0x65, 0x01, 0xb6, 0x36, 0x08, 0xf8, 0x02, 0x5c, 0x10, 0xe0, 0xb2, - 0x00, 0x5b, 0x9f, 0x16, 0xf0, 0x05, 0xb8, 0x20, 0xc0, 0x65, 0x01, 0xb6, - 0x36, 0xc2, 0xfe, 0x7c, 0xee, 0x4d, 0xbe, 0x9f, 0x03, 0x00, 0x9f, 0xf8, - 0xd2, 0xdb, 0x1c, 0x2e, 0x90, 0xf1, 0xfd, 0xef, 0x70, 0xb8, 0x4c, 0xc6, - 0xbf, 0xf3, 0xbe, 0xbb, 0xff, 0x9b, 0xe0, 0xfc, 0x5f, 0xfd, 0x57, 0xa7, - 0x38, 0x3e, 0x81, 0x3f, 0xff, 0x6d, 0x0e, 0x17, 0x08, 0xfc, 0xe8, 0x08, - 0x87, 0xcb, 0x00, 0x97, 0x0f, 0x7e, 0x85, 0xc3, 0xd6, 0x66, 0x80, 0x5f, - 0x1d, 0x77, 0xf1, 0x09, 0xfc, 0xd3, 0x6f, 0xb8, 0xf8, 0x00, 0xa3, 0x39, - 0x0b, 0x4f, 0x72, 0x7c, 0x80, 0xc7, 0x57, 0x5e, 0xc2, 0x61, 0xeb, 0x33, - 0x18, 0x36, 0x3b, 0x75, 0x0e, 0x0f, 0x00, 0x5c, 0xb8, 0x27, 0xcb, 0xe1, - 0x02, 0xc0, 0xf6, 0xae, 0x9c, 0x8b, 0x0f, 0xf0, 0x89, 0x97, 0x2e, 0x70, - 0xf1, 0xbb, 0x81, 0x7e, 0xf1, 0x35, 0x77, 0xfd, 0xdd, 0x54, 0x3e, 0x65, - 0x8e, 0x2f, 0xc0, 0x65, 0x01, 0xb6, 0x7a, 0x82, 0xf0, 0x80, 0x00, 0x17, - 0x04, 0xb8, 0x2c, 0xc0, 0xd6, 0x75, 0x02, 0xbe, 0x00, 0x17, 0x04, 0xb8, - 0x2c, 0xc0, 0xd6, 0x67, 0x05, 0x7c, 0x01, 0x2e, 0x08, 0x70, 0x59, 0x80, - 0x83, 0xf1, 0x5d, 0x65, 0x7c, 0x30, 0xc7, 0x0f, 0x57, 0x8d, 0x37, 0x4c, - 0xfe, 0x9b, 0xc2, 0x82, 0x4a, 0xf6, 0xb0, 0x46, 0xc5, 0x0d, 0x32, 0xab, - 0xc4, 0x2b, 0x03, 0x8a, 0xed, 0xd3, 0x4f, 0x4a, 0x2f, 0x91, 0xc0, 0xf6, - 0x1f, 0x62, 0x6e, 0x3c, 0x7e, 0x5b, 0x82, 0x8d, 0x7d, 0xb4, 0x00, 0x99, - 0xbd, 0xd5, 0xe9, 0xc9, 0xf1, 0xcf, 0xce, 0x46, 0xe9, 0x63, 0xfa, 0xb3, - 0x45, 0x3e, 0x9e, 0x9a, 0x55, 0xb8, 0x50, 0x7d, 0x7f, 0xe4, 0x60, 0xb6, - 0xbe, 0x72, 0xc4, 0xfa, 0xaa, 0x3e, 0xaf, 0x0a, 0x7e, 0xd5, 0xfb, 0x8a, - 0xe4, 0xf3, 0x1c, 0xd7, 0x56, 0xd9, 0x5c, 0x7f, 0xb2, 0xec, 0xbe, 0xd2, - 0x8f, 0x47, 0x15, 0xf7, 0x3e, 0x83, 0x90, 0x41, 0xc6, 0x3d, 0xe3, 0x6c, - 0xa2, 0x03, 0x47, 0x95, 0x21, 0x94, 0x2b, 0x22, 0xa3, 0x99, 0xce, 0x37, - 0xb7, 0xe3, 0xf9, 0xe8, 0x52, 0x95, 0x91, 0xfe, 0x38, 0x5c, 0x7f, 0x32, - 0x41, 0xfa, 0xe8, 0x0d, 0x36, 0x34, 0xc5, 0xe0, 0xdf, 0xee, 0xfe, 0x55, - 0x93, 0xd7, 0x39, 0xf8, 0xf4, 0xce, 0xff, 0x99, 0x87, 0x67, 0x97, 0x1f, - 0x13, 0x09, 0xf9, 0x07, 0xfc, 0x0f, 0x9f, 0x6a, 0xf1, 0xcd, 0x67, 0xf6, - 0xd7, 0x1d, 0x47, 0xdf, 0x43, 0x41, 0xfd, 0xce, 0x65, 0x82, 0x30, 0x9c, - 0xa8, 0x24, 0xf2, 0xce, 0x15, 0x46, 0x4a, 0x5b, 0xc3, 0x9d, 0x1d, 0xed, - 0x54, 0xbe, 0x98, 0x7e, 0xba, 0x85, 0x9e, 0x2f, 0x53, 0xf5, 0xdb, 0x63, - 0xe7, 0xd4, 0x99, 0xb0, 0xc7, 0xd5, 0xe1, 0x46, 0x1f, 0x58, 0xcb, 0xf3, - 0xf9, 0x7c, 0xa7, 0x41, 0x6e, 0x3e, 0x9a, 0x2f, 0x49, 0xff, 0x12, 0x49, - 0xfa, 0x6b, 0x24, 0xe9, 0x6f, 0x94, 0xa4, 0x7f, 0xb3, 0x24, 0xfd, 0x3f, - 0x96, 0xa4, 0xff, 0x90, 0x24, 0xfd, 0xed, 0x92, 0xf4, 0xf7, 0x48, 0xd2, - 0x3f, 0x28, 0x49, 0xff, 0xaf, 0x25, 0xe9, 0xff, 0xbd, 0x24, 0xfd, 0x7f, - 0x90, 0xa4, 0xff, 0x96, 0x24, 0xfd, 0x29, 0x49, 0xfa, 0xbf, 0x92, 0xa4, - 0x9f, 0x50, 0xe4, 0xe8, 0x7f, 0x42, 0x6e, 0x3e, 0x5a, 0x28, 0x49, 0xdf, - 0x92, 0xa4, 0x7f, 0xad, 0x24, 0xfd, 0x1e, 0x49, 0xfa, 0xb7, 0x4b, 0xd2, - 0xbf, 0x4f, 0x92, 0xfe, 0x23, 0x92, 0xf4, 0x77, 0x4a, 0xd2, 0xdf, 0x2f, - 0x49, 0xff, 0x79, 0x49, 0xfa, 0xdf, 0x92, 0xa4, 0x7f, 0x58, 0x92, 0xfe, - 0x09, 0x49, 0xfa, 0xff, 0x2e, 0x49, 0xff, 0x7d, 0x49, 0xfa, 0x1f, 0x4a, - 0xd2, 0x4f, 0xab, 0x72, 0xf4, 0x9b, 0xe5, 0xe6, 0xa3, 0xa5, 0x92, 0xf4, - 0x57, 0x4a, 0xd2, 0xef, 0x92, 0xa4, 0x7f, 0x83, 0x24, 0xfd, 0xbb, 0x24, - 0xe9, 0x6f, 0x91, 0xa4, 0xbf, 0x55, 0x92, 0xfe, 0x98, 0x24, 0xfd, 0x67, - 0x24, 0xe9, 0xff, 0x85, 0x24, 0xfd, 0x57, 0x24, 0xe9, 0x7f, 0x5f, 0x92, - 0xfe, 0x9b, 0x92, 0xf4, 0x7f, 0x26, 0x49, 0xff, 0x7f, 0x24, 0xe9, 0x23, - 0x4d, 0x8e, 0x7e, 0xa3, 0xdc, 0x7c, 0x67, 0xbe, 0x24, 0xfd, 0x4b, 0x25, - 0xe9, 0xaf, 0x91, 0xa4, 0xbf, 0x49, 0x92, 0xfe, 0xcd, 0x92, 0xf4, 0xef, - 0x91, 0xa4, 0xff, 0x90, 0x24, 0xfd, 0x1d, 0x92, 0xf4, 0xf7, 0x48, 0xd2, - 0xcf, 0x6b, 0x67, 0xe3, 0xfe, 0xe1, 0xf4, 0xa0, 0xcb, 0x7f, 0x0f, 0x7e, - 0xfd, 0xf9, 0xb5, 0x88, 0xe4, 0x13, 0x8e, 0xb3, 0x0a, 0x70, 0x7f, 0x82, - 0xde, 0x9f, 0xb2, 0x2c, 0xbf, 0x30, 0xa5, 0x03, 0xcc, 0xeb, 0x75, 0xff, - 0x7a, 0x3d, 0x7f, 0xde, 0x6e, 0x9e, 0x5f, 0xd0, 0xd9, 0x7c, 0x7e, 0x1f, - 0x53, 0xd0, 0x90, 0x92, 0xa7, 0xd7, 0xae, 0xa7, 0xf1, 0xad, 0x6d, 0x09, - 0x2a, 0xe9, 0x5e, 0xbd, 0x36, 0x6f, 0x5f, 0x45, 0xae, 0x62, 0xf8, 0x9f, - 0x9a, 0xda, 0x35, 0xd4, 0x0a, 0xac, 0xe4, 0x8f, 0x2a, 0x43, 0x9c, 0xfe, - 0xdf, 0x3d, 0x47, 0xe9, 0x1b, 0x48, 0x41, 0x36, 0xa4, 0xf2, 0x6f, 0x19, - 0x44, 0x94, 0xbf, 0x20, 0xff, 0x7c, 0xfe, 0xd0, 0xc3, 0xe1, 0xeb, 0x37, - 0x0d, 0x84, 0xec, 0xb4, 0x59, 0x8f, 0xa6, 0xaf, 0x44, 0xa5, 0x14, 0x7a, - 0x0e, 0xa9, 0x2c, 0xdf, 0x73, 0x25, 0x49, 0xc0, 0xf4, 0xb9, 0x17, 0xec, - 0x76, 0x9b, 0xf1, 0x63, 0x9f, 0x87, 0xf9, 0x79, 0xf6, 0xfb, 0x8b, 0x9b, - 0x93, 0xcb, 0x9a, 0x46, 0x1d, 0x03, 0xed, 0x1e, 0xda, 0x4b, 0x4a, 0x09, - 0x53, 0x9a, 0x7f, 0xfd, 0x9c, 0x3f, 0xa4, 0xf4, 0x1c, 0xa5, 0xf5, 0xe8, - 0x7e, 0x95, 0xac, 0x9f, 0x25, 0xfb, 0xcc, 0x7a, 0x22, 0x87, 0x3e, 0xc8, - 0xe2, 0x10, 0xfe, 0x0d, 0x0b, 0xe1, 0x67, 0xf3, 0x7c, 0x13, 0xba, 0x89, - 0xd5, 0xab, 0x8d, 0x1d, 0x13, 0xf5, 0xa0, 0x1c, 0x6d, 0x4c, 0x49, 0x2a, - 0xe9, 0xd7, 0x1d, 0x61, 0xf4, 0x03, 0xf9, 0xa1, 0x36, 0x46, 0x1f, 0x96, - 0x63, 0xab, 0x95, 0xf4, 0x6f, 0x66, 0xf4, 0xd3, 0x43, 0x13, 0xc0, 0x82, - 0x73, 0x51, 0x24, 0x7d, 0x25, 0x48, 0xdf, 0xce, 0x1e, 0x69, 0x6b, 0x65, - 0xfb, 0x87, 0x61, 0xa3, 0x42, 0x3e, 0xf4, 0xe7, 0x16, 0x46, 0xbf, 0x82, - 0x9e, 0xab, 0x0f, 0x53, 0x0c, 0x7f, 0xb7, 0x46, 0xd6, 0xcf, 0xe8, 0xf1, - 0xf9, 0x8d, 0xcf, 0xd3, 0xf9, 0xba, 0x40, 0x1f, 0xa1, 0x31, 0x1e, 0xfe, - 0x13, 0x79, 0xdb, 0xe8, 0x0d, 0xc5, 0x86, 0x47, 0x35, 0xdf, 0xaf, 0x42, - 0xbe, 0x8b, 0xf1, 0xe3, 0xdc, 0xca, 0xeb, 0xfd, 0x64, 0x3f, 0x47, 0xeb, - 0x20, 0x9f, 0xea, 0x24, 0xb0, 0x12, 0x75, 0xf4, 0x1c, 0x51, 0x5a, 0xf1, - 0xae, 0x4f, 0x6f, 0xd1, 0x4a, 0x23, 0xca, 0xc4, 0xed, 0xd7, 0x39, 0x7a, - 0x09, 0xad, 0x56, 0x15, 0xf4, 0x62, 0xe2, 0x07, 0x08, 0xed, 0xc4, 0xfb, - 0x75, 0x24, 0x9b, 0xf3, 0xf8, 0xab, 0xe4, 0x9f, 0xeb, 0x3b, 0x5f, 0xff, - 0x71, 0x65, 0x6d, 0x08, 0xff, 0x7c, 0x3e, 0xe3, 0xdf, 0xb9, 0x83, 0xf3, - 0x03, 0xfa, 0x76, 0x3e, 0xf0, 0x4b, 0xf7, 0x03, 0xf8, 0x4d, 0x42, 0x2f, - 0xc3, 0x31, 0x0a, 0x23, 0xb4, 0x3a, 0xc5, 0x50, 0x92, 0xe1, 0xf7, 0x15, - 0xf7, 0xfc, 0x29, 0xf4, 0x3c, 0x75, 0xf3, 0xf3, 0x45, 0xe4, 0xc1, 0xe5, - 0xf5, 0x07, 0x11, 0xf2, 0x37, 0x50, 0x8f, 0x46, 0xf9, 0xa5, 0xeb, 0xe3, - 0xfc, 0xad, 0x8f, 0x9c, 0x1f, 0x94, 0xa7, 0xab, 0xaf, 0xc2, 0xf9, 0x9a, - 0x9b, 0x08, 0xac, 0xb7, 0x57, 0xa1, 0x89, 0x98, 0x3e, 0x2f, 0xbf, 0x38, - 0xa5, 0x86, 0xe5, 0x13, 0x41, 0xd4, 0x36, 0x10, 0x3d, 0xb0, 0x90, 0xad, - 0xbf, 0x9b, 0xb3, 0x94, 0xa8, 0xe5, 0xbe, 0x16, 0x21, 0x6f, 0xf4, 0x87, - 0x8c, 0xdf, 0x33, 0xbd, 0x3e, 0x03, 0xdb, 0x33, 0x22, 0xcf, 0xe9, 0x47, - 0xe2, 0xf6, 0x1f, 0xdd, 0xe3, 0xf6, 0x9f, 0x84, 0xf3, 0xff, 0x7e, 0x03, - 0x9d, 0x0f, 0xb3, 0xd6, 0xea, 0xa6, 0x06, 0xfa, 0x5a, 0x4a, 0xa0, 0x09, - 0x6a, 0x2f, 0x26, 0x1b, 0x5c, 0xfb, 0x88, 0x1a, 0x90, 0x7b, 0x54, 0x25, - 0xe4, 0xf3, 0x36, 0xf2, 0xf8, 0x81, 0x82, 0x26, 0x6a, 0xe7, 0xfa, 0xe6, - 0x9e, 0x27, 0xd5, 0xcf, 0xff, 0xab, 0xe9, 0xda, 0xfc, 0x05, 0x9f, 0x3f, - 0x59, 0x2f, 0x37, 0x5f, 0x3c, 0x1f, 0xfd, 0x55, 0xe4, 0x73, 0xdf, 0x69, - 0xd2, 0xbf, 0xd7, 0xa5, 0xdf, 0xcd, 0xd7, 0x9b, 0x08, 0xcf, 0x6f, 0x8f, - 0x09, 0xfe, 0xca, 0xd1, 0x71, 0x24, 0x05, 0x25, 0x35, 0xe5, 0x95, 0xa3, - 0x68, 0xa8, 0xc2, 0x9f, 0x62, 0x07, 0xd1, 0x40, 0xfc, 0xe3, 0x22, 0x26, - 0x4f, 0x91, 0x9e, 0xee, 0x2b, 0x3f, 0x56, 0xd4, 0x9f, 0x7c, 0xfe, 0xf5, - 0x24, 0xf1, 0xaf, 0x26, 0xde, 0x55, 0x7b, 0xee, 0xbe, 0x04, 0x32, 0x2d, - 0x54, 0x4c, 0xe1, 0xfd, 0x47, 0xb7, 0x32, 0x6d, 0x74, 0x9a, 0x60, 0xbf, - 0x1d, 0x74, 0xbc, 0xc3, 0x6e, 0xf0, 0x9d, 0x7f, 0xa6, 0xc0, 0xbf, 0xf8, - 0x73, 0xb6, 0x3e, 0xf2, 0xb4, 0x91, 0x34, 0xe8, 0x8f, 0xe9, 0xf3, 0xa7, - 0xe8, 0x00, 0x98, 0x6f, 0xca, 0x1f, 0x56, 0x5a, 0xbd, 0xf6, 0x7c, 0xf2, - 0x27, 0x62, 0xe3, 0x07, 0xf7, 0xbc, 0xfc, 0x78, 0x49, 0xe8, 0xfa, 0xf9, - 0x7e, 0x38, 0x7d, 0xc9, 0xc0, 0x79, 0x70, 0x90, 0xad, 0xf9, 0xfd, 0x85, - 0xea, 0x6c, 0xd0, 0xfc, 0xe7, 0x93, 0xcf, 0x67, 0xcb, 0x2b, 0x7c, 0x71, - 0x1e, 0x0a, 0xd5, 0x0f, 0xfe, 0xcb, 0xb3, 0x6a, 0x6d, 0xfc, 0x45, 0xf3, - 0xd3, 0xa1, 0x9d, 0x59, 0xfa, 0x9d, 0x67, 0x98, 0xfe, 0xba, 0x33, 0x4c, - 0xff, 0x33, 0x6c, 0x7f, 0x50, 0xb1, 0x43, 0x8d, 0x8b, 0x1f, 0xdf, 0x10, - 0xfc, 0x53, 0xd4, 0x79, 0x59, 0x16, 0x7e, 0x5e, 0xf8, 0x79, 0xb0, 0xdf, - 0x13, 0xe2, 0xcd, 0xa9, 0x14, 0xd0, 0xcb, 0x61, 0xff, 0x4b, 0xfc, 0x45, - 0xf3, 0x96, 0x54, 0x71, 0xbb, 0x67, 0xaf, 0x94, 0xcf, 0x71, 0xfb, 0xb9, - 0x5b, 0x6b, 0x48, 0x0e, 0x63, 0x5b, 0x76, 0x2a, 0x99, 0x1f, 0xc5, 0xf8, - 0x84, 0xd7, 0xc9, 0x3a, 0xcf, 0x7e, 0xd6, 0x29, 0x7e, 0xff, 0x02, 0xd8, - 0xcb, 0xd3, 0x81, 0xf3, 0xcf, 0xfd, 0x7b, 0x12, 0x95, 0xe8, 0xf9, 0x22, - 0xfe, 0x7a, 0xfa, 0x0a, 0xca, 0x2f, 0xb6, 0xc7, 0x4b, 0xe6, 0x03, 0x3a, - 0xe3, 0x9f, 0xf7, 0x43, 0x8e, 0x6b, 0x50, 0x03, 0xc6, 0xe7, 0xf5, 0x96, - 0x78, 0xfb, 0xcc, 0xe2, 0x3f, 0x7b, 0xdd, 0x55, 0x01, 0x7d, 0xfe, 0x8e, - 0xbb, 0x3f, 0x8f, 0xf3, 0x78, 0x3a, 0xeb, 0x8f, 0x17, 0xf9, 0x7c, 0x76, - 0x1e, 0x06, 0x52, 0x13, 0x8b, 0x19, 0xfe, 0xeb, 0x28, 0x30, 0x1f, 0x1d, - 0x53, 0xfc, 0x30, 0xb7, 0x7f, 0xce, 0x83, 0x5a, 0xc0, 0xff, 0x71, 0x79, - 0x19, 0xe8, 0x75, 0xa5, 0x01, 0xb6, 0xda, 0x39, 0x49, 0xe3, 0x67, 0x62, - 0x2f, 0x26, 0x33, 0x9e, 0xbc, 0x32, 0x01, 0x79, 0x01, 0x73, 0xab, 0x03, - 0xfb, 0xef, 0xc6, 0x1f, 0x54, 0x5e, 0xc4, 0x7e, 0x79, 0xf2, 0x02, 0xf6, - 0x17, 0x66, 0x7d, 0xf2, 0x82, 0x05, 0xe4, 0xaf, 0xab, 0xf7, 0xf0, 0xe7, - 0x49, 0xf9, 0x33, 0xfe, 0xcb, 0x31, 0x57, 0x5e, 0x9b, 0x78, 0x7c, 0xd1, - 0x40, 0xd6, 0xcf, 0xfa, 0x16, 0x53, 0x87, 0xb9, 0x7c, 0xea, 0x54, 0xff, - 0x38, 0x3c, 0x9e, 0xae, 0x77, 0x59, 0x40, 0xdf, 0xb9, 0x3c, 0x98, 0xbc, - 0x6c, 0x2e, 0x2f, 0x6a, 0x29, 0x27, 0xd3, 0x9e, 0x3c, 0xd2, 0x15, 0xfa, - 0xb3, 0x22, 0x1d, 0xaa, 0xff, 0x54, 0x1e, 0x58, 0x9e, 0x76, 0xb3, 0x27, - 0x0f, 0x10, 0x6f, 0x7b, 0x9d, 0x4f, 0x1e, 0x6c, 0x1d, 0x2f, 0xe8, 0x1c, - 0xff, 0xd6, 0x19, 0xc9, 0xe3, 0x2d, 0x57, 0x1e, 0xaf, 0xf3, 0xe7, 0x37, - 0xd0, 0xf8, 0x98, 0xc9, 0xe3, 0x65, 0x2e, 0x8f, 0xc7, 0x03, 0xe3, 0x35, - 0xca, 0x03, 0x0d, 0x73, 0x79, 0x18, 0xdc, 0xdb, 0x73, 0x79, 0xd4, 0x57, - 0xe8, 0xc7, 0xaa, 0x38, 0xfd, 0xc0, 0xb3, 0xc9, 0x7d, 0x82, 0x9f, 0x27, - 0x68, 0x66, 0x39, 0xcf, 0x27, 0x0f, 0xee, 0xaf, 0x5e, 0x84, 0x70, 0x04, - 0xce, 0x53, 0xeb, 0x8c, 0xe4, 0xf1, 0xf3, 0x0a, 0xfd, 0xe8, 0x6f, 0xa4, - 0xf6, 0x83, 0xc5, 0x9b, 0xcd, 0x78, 0x9d, 0x1a, 0x97, 0xff, 0x30, 0xde, - 0x11, 0x0b, 0xe2, 0x22, 0x8c, 0xbf, 0x49, 0xf5, 0xcf, 0xaf, 0x55, 0x5f, - 0x6a, 0x95, 0x0f, 0x60, 0xaf, 0x0a, 0xda, 0x9b, 0x80, 0xbe, 0xb8, 0xf6, - 0x98, 0xcb, 0x87, 0x8c, 0xee, 0x35, 0x80, 0x3f, 0x04, 0xf1, 0x20, 0x8e, - 0x4a, 0xf6, 0x34, 0xf9, 0xf1, 0x6f, 0x9b, 0x91, 0x7c, 0xfe, 0xd7, 0xb3, - 0x37, 0xfc, 0xf9, 0x39, 0xdf, 0xfd, 0xd1, 0xd4, 0x0c, 0xee, 0x6f, 0xeb, - 0x34, 0xff, 0x78, 0x8d, 0xf2, 0x70, 0x5c, 0x79, 0x90, 0xe1, 0xc9, 0xac, - 0x27, 0x8f, 0x6c, 0x85, 0xbe, 0xac, 0x09, 0xea, 0x4b, 0xac, 0xfd, 0x85, - 0x00, 0x65, 0x49, 0xa3, 0x60, 0x7f, 0xcd, 0xcf, 0x1a, 0x1e, 0x7e, 0xf3, - 0x8c, 0xe4, 0xc1, 0xba, 0x2c, 0x06, 0xbc, 0xfd, 0x9f, 0x6a, 0xf4, 0xdd, - 0x6f, 0x73, 0x9e, 0x3c, 0x5c, 0x7b, 0xdb, 0x18, 0x16, 0x3f, 0x72, 0x79, - 0x7c, 0x70, 0x53, 0x44, 0xbe, 0x81, 0x46, 0xcb, 0x09, 0x2e, 0x0f, 0x26, - 0xaf, 0xe2, 0x50, 0xa4, 0x7d, 0xde, 0x44, 0xed, 0x73, 0xf1, 0x11, 0x96, - 0xdf, 0xe0, 0xfa, 0x32, 0xe5, 0xbf, 0xef, 0x39, 0x91, 0xf8, 0x0a, 0xec, - 0xd7, 0xa8, 0x81, 0x8a, 0xcb, 0xa0, 0xcc, 0x3d, 0xe1, 0xbb, 0x8f, 0x11, - 0x7c, 0x98, 0x6e, 0xb7, 0x04, 0xed, 0xd3, 0xc5, 0x75, 0x9e, 0x7f, 0xde, - 0xcf, 0xc2, 0xe5, 0x24, 0x5a, 0xbd, 0x62, 0x9f, 0x86, 0x76, 0x0e, 0xd8, - 0x9a, 0xbb, 0x18, 0x5b, 0x55, 0x70, 0x3c, 0x8c, 0x5a, 0xcd, 0xec, 0x8e, - 0xa8, 0x78, 0x32, 0xbf, 0x1d, 0x7b, 0x12, 0x7b, 0x95, 0x99, 0xca, 0x65, - 0xa1, 0x82, 0x8e, 0x9e, 0x57, 0x0f, 0x4f, 0x6c, 0xc3, 0xff, 0xde, 0x74, - 0xf8, 0x41, 0x22, 0xd0, 0x91, 0x26, 0xf3, 0x45, 0xaa, 0x0c, 0xc6, 0xa5, - 0x14, 0xdf, 0xe4, 0xf1, 0x2a, 0x7e, 0x38, 0x89, 0x57, 0x79, 0xbe, 0x08, - 0x9f, 0xd6, 0xd0, 0xfd, 0x64, 0xe3, 0xf6, 0x60, 0xe0, 0x3e, 0xbb, 0x8e, - 0xf9, 0x4b, 0x2e, 0x8f, 0x5f, 0x0a, 0xf7, 0x3d, 0xd5, 0x77, 0xdf, 0xf3, - 0xeb, 0x33, 0xb7, 0x3f, 0x5d, 0xeb, 0xae, 0xf2, 0xdf, 0x1f, 0x6d, 0x2e, - 0x5f, 0xe4, 0x3a, 0xfc, 0x41, 0xe4, 0xbf, 0x2f, 0x71, 0x79, 0xe3, 0xf3, - 0xc2, 0x34, 0x66, 0x70, 0x8e, 0xe7, 0x8f, 0x26, 0x0d, 0x4f, 0xff, 0x8d, - 0x0a, 0x7b, 0x60, 0xc5, 0xd8, 0x03, 0xd7, 0x5e, 0x71, 0x7b, 0x40, 0xb4, - 0x73, 0x5f, 0x9d, 0xdf, 0x1e, 0xec, 0x9d, 0x05, 0x7b, 0xb0, 0x56, 0x13, - 0xed, 0xc1, 0x14, 0xe5, 0x9f, 0xaf, 0xe7, 0xc0, 0xc9, 0x39, 0x12, 0xe7, - 0xbf, 0xb8, 0xb3, 0xba, 0x3d, 0x4c, 0xd6, 0xe4, 0x2f, 0xaa, 0xf2, 0x3f, - 0x9f, 0xff, 0xae, 0x87, 0xad, 0xd7, 0x01, 0x7f, 0x53, 0x30, 0x53, 0x70, - 0x9f, 0xa2, 0xf1, 0xe6, 0x60, 0x72, 0x26, 0xf2, 0xb9, 0x4e, 0xab, 0xf0, - 0x27, 0x4a, 0x40, 0x3e, 0xb9, 0x41, 0x06, 0x1b, 0x42, 0xfc, 0x2b, 0xd0, - 0xa3, 0x6b, 0x75, 0x34, 0x9e, 0x9f, 0x20, 0xf1, 0x01, 0x8e, 0x57, 0x0d, - 0x0b, 0x99, 0x49, 0xf0, 0x87, 0x59, 0xc7, 0x00, 0x7f, 0x68, 0xbe, 0xcf, - 0xf4, 0xd9, 0x56, 0x20, 0xff, 0x39, 0x8a, 0xa6, 0xaf, 0xbd, 0x18, 0xdf, - 0x3f, 0x6d, 0xd4, 0xa3, 0xae, 0x26, 0x2a, 0xff, 0x80, 0x52, 0xc2, 0xf6, - 0x00, 0x5b, 0xbb, 0x03, 0xdd, 0x3a, 0x7a, 0xf6, 0x4b, 0x7b, 0x69, 0x7e, - 0x14, 0x30, 0xfb, 0x8c, 0xe7, 0x12, 0x40, 0xfa, 0x96, 0x90, 0x7c, 0x29, - 0x8e, 0xa7, 0xb9, 0x7d, 0x55, 0xfd, 0xe7, 0xe5, 0xc9, 0x48, 0xfb, 0x23, - 0x9c, 0x0f, 0x69, 0x7b, 0x9e, 0x89, 0xf5, 0xff, 0xf0, 0xab, 0x29, 0xc6, - 0x43, 0x4e, 0x77, 0x9d, 0x87, 0x7f, 0xc1, 0x8c, 0xf4, 0xf9, 0x5e, 0x77, - 0xbf, 0x5c, 0xff, 0xd5, 0x14, 0xd8, 0xaf, 0xc1, 0xc1, 0x26, 0x19, 0x7d, - 0x7e, 0xb2, 0x6a, 0x3c, 0x18, 0x65, 0x9f, 0x82, 0xe7, 0x39, 0x8a, 0xdf, - 0x87, 0x2a, 0xcf, 0x5f, 0x90, 0x5f, 0x34, 0x2d, 0xc3, 0x2f, 0x1a, 0xab, - 0x7a, 0xfe, 0xa2, 0xf8, 0xad, 0xed, 0xfc, 0x6d, 0xab, 0x3c, 0x0f, 0xe7, - 0x05, 0xf9, 0x1d, 0x3c, 0x2f, 0xce, 0x3f, 0x7a, 0xf5, 0x81, 0x08, 0x7b, - 0x8e, 0x3e, 0x20, 0xfa, 0x4f, 0x1d, 0xca, 0x64, 0x8a, 0xf3, 0xcf, 0xed, - 0x37, 0x3f, 0x3f, 0x2d, 0x54, 0xff, 0x5b, 0x15, 0x6c, 0x8f, 0x49, 0xfe, - 0x16, 0x8b, 0xa2, 0xaf, 0x21, 0x05, 0x2d, 0xfe, 0x89, 0xd5, 0xf4, 0x3c, - 0x9c, 0xa0, 0xfd, 0x5d, 0x86, 0x89, 0x92, 0x26, 0x0a, 0x39, 0x0f, 0x8a, - 0xff, 0x3c, 0x80, 0xfa, 0x35, 0xc0, 0xff, 0xe5, 0x97, 0xb9, 0xf1, 0x06, - 0x98, 0x60, 0x2e, 0xcf, 0x1c, 0xea, 0x41, 0x6b, 0x0d, 0x5f, 0xfe, 0x48, - 0xc9, 0x2a, 0x2c, 0x3f, 0x9e, 0x14, 0xfa, 0x27, 0x13, 0x61, 0xfe, 0x81, - 0xee, 0xcf, 0x41, 0xd5, 0xdb, 0x0f, 0x9f, 0xbc, 0x9d, 0xb8, 0xfb, 0x17, - 0xdf, 0x2f, 0xde, 0x0e, 0x3c, 0x7d, 0x3e, 0x7d, 0x9e, 0x1b, 0x0f, 0xd4, - 0x68, 0x2f, 0x47, 0xf8, 0xfc, 0xf3, 0x79, 0xfe, 0x28, 0x0d, 0xf1, 0x95, - 0x4d, 0xed, 0x63, 0x0e, 0x46, 0x73, 0xa6, 0x8e, 0x8c, 0x15, 0xd4, 0x1e, - 0xa1, 0x8d, 0x3c, 0x1f, 0x7d, 0x72, 0x01, 0xcd, 0x3f, 0x61, 0xde, 0x53, - 0x29, 0xb0, 0xa3, 0xf6, 0x30, 0xe8, 0x23, 0xcb, 0x7f, 0xda, 0xf7, 0x2b, - 0x66, 0xcc, 0x7e, 0xff, 0x52, 0xc8, 0x87, 0x1e, 0x75, 0xef, 0xbf, 0xbb, - 0x78, 0x3d, 0x08, 0x01, 0xff, 0x7c, 0xfe, 0xdd, 0x37, 0x07, 0xfd, 0xf5, - 0xbf, 0xb9, 0xf3, 0x79, 0xfe, 0xae, 0xdf, 0xa0, 0xeb, 0xf7, 0xe1, 0x53, - 0x79, 0x68, 0xae, 0x3c, 0x28, 0x3f, 0x29, 0x9a, 0xbf, 0x2b, 0xc5, 0xe7, - 0xef, 0xec, 0xc5, 0xd4, 0xfe, 0xf0, 0xfc, 0x43, 0xf1, 0x24, 0xcb, 0x3f, - 0x64, 0x03, 0xf6, 0xd2, 0xcb, 0xbf, 0x05, 0xf3, 0xa5, 0x3f, 0xbc, 0x3e, - 0xbc, 0xbe, 0x21, 0xfa, 0x7f, 0xbe, 0x9e, 0x74, 0x44, 0x3e, 0x9a, 0xcb, - 0xa7, 0x5e, 0xc8, 0x5f, 0x67, 0xaa, 0xe4, 0xaf, 0xb3, 0x6c, 0x3c, 0xc7, - 0x93, 0x85, 0x02, 0xfe, 0x79, 0xbe, 0x78, 0x07, 0x7e, 0x3e, 0x19, 0x59, - 0x9f, 0xc9, 0x2a, 0xc1, 0xfa, 0x46, 0x78, 0x3e, 0xfc, 0xc3, 0xeb, 0x83, - 0xf1, 0x7e, 0x5a, 0x3d, 0x5f, 0x8f, 0xcb, 0x9f, 0x0b, 0xf3, 0x8b, 0x92, - 0xf3, 0x51, 0x3d, 0x9b, 0xcf, 0x9f, 0x37, 0x97, 0xc1, 0xe2, 0x7c, 0xb6, - 0xbe, 0xd2, 0x97, 0x27, 0x3e, 0x48, 0xc4, 0xe5, 0x93, 0xc7, 0xee, 0x90, - 0xcb, 0x27, 0x5f, 0xf8, 0x50, 0xad, 0xf5, 0x53, 0x37, 0xbe, 0x93, 0xca, - 0xcf, 0x3f, 0xda, 0x26, 0x99, 0x6f, 0x57, 0xe5, 0xe6, 0xbf, 0x7f, 0x8d, - 0x2c, 0xff, 0xe1, 0xf1, 0x94, 0x5b, 0x3f, 0x10, 0xe8, 0xcf, 0xbb, 0x23, - 0x20, 0x7f, 0xe4, 0xb4, 0x65, 0x63, 0xf3, 0xb5, 0xef, 0x68, 0xe1, 0xfc, - 0xd4, 0x4a, 0xbf, 0xcf, 0xcc, 0xc6, 0xd6, 0x0b, 0x6e, 0xfc, 0x53, 0xe9, - 0xf5, 0xa6, 0x64, 0xf6, 0xcb, 0xba, 0x3d, 0xa8, 0x9f, 0xa5, 0x05, 0xf1, - 0xfc, 0x7c, 0xa8, 0xc8, 0xed, 0x57, 0xef, 0x33, 0x41, 0xfa, 0xd5, 0xe4, - 0x99, 0xd6, 0xe5, 0xe8, 0x6f, 0x8f, 0xac, 0xef, 0xd4, 0x0b, 0xf5, 0x0a, - 0xee, 0x8f, 0x69, 0x7d, 0x8b, 0xdf, 0x8f, 0x4a, 0x1f, 0x5d, 0x40, 0xfd, - 0xef, 0x5e, 0x93, 0x64, 0x73, 0x3f, 0xdd, 0xd6, 0xaf, 0x84, 0xdd, 0xff, - 0xc4, 0x7a, 0x6e, 0x86, 0x9f, 0x77, 0x7c, 0xb9, 0xb3, 0x25, 0xd6, 0x5f, - 0x6d, 0xbf, 0x1f, 0xbe, 0x41, 0x6e, 0xfd, 0x87, 0x0f, 0x54, 0xc9, 0x87, - 0xa3, 0x65, 0x71, 0xf9, 0x70, 0x7c, 0xad, 0xa0, 0xf5, 0x8b, 0xda, 0xe7, - 0x77, 0x04, 0xe7, 0x97, 0xad, 0xd8, 0xf9, 0x08, 0xb5, 0x49, 0xd9, 0x47, - 0x85, 0xd9, 0xc3, 0xa8, 0xf5, 0x5e, 0xba, 0x52, 0x4e, 0x3e, 0x0f, 0x36, - 0x06, 0xe9, 0xff, 0xe8, 0x4e, 0x25, 0x56, 0xfe, 0xff, 0xb8, 0xbc, 0xca, - 0x79, 0xce, 0x07, 0xd7, 0x7b, 0xb8, 0x3e, 0x78, 0x9e, 0x0f, 0x6f, 0x45, - 0xae, 0xbf, 0x22, 0xf3, 0xfb, 0x82, 0xf3, 0xff, 0x59, 0x98, 0xff, 0xce, - 0xeb, 0x5a, 0x2c, 0x3f, 0x4f, 0xac, 0x90, 0x5b, 0xef, 0x4d, 0x75, 0x72, - 0xf3, 0x57, 0x37, 0xc9, 0xcd, 0xdf, 0x71, 0x8d, 0xdc, 0xfc, 0x8f, 0x25, - 0xeb, 0x9d, 0xd7, 0x36, 0x48, 0xfa, 0x8f, 0x0d, 0x72, 0xf3, 0xb7, 0xf5, - 0xce, 0xac, 0x7f, 0x88, 0xe3, 0xe7, 0x7a, 0xe4, 0x9e, 0xd7, 0xf1, 0x43, - 0x4d, 0x6a, 0xfe, 0xd2, 0x1f, 0xc9, 0xcd, 0x3f, 0x78, 0x5c, 0x6e, 0xfe, - 0xdf, 0x5c, 0x2b, 0xc7, 0x7f, 0xdd, 0x84, 0x1c, 0xfd, 0xed, 0x92, 0xf6, - 0x7b, 0x32, 0x19, 0x3e, 0x5f, 0x45, 0x63, 0x47, 0x69, 0x7d, 0x8e, 0xc5, - 0x9f, 0x28, 0x13, 0x88, 0x5f, 0xbd, 0xfa, 0x04, 0xef, 0xc7, 0x88, 0x88, - 0x87, 0x8b, 0xcb, 0x82, 0xf1, 0xb0, 0xcd, 0xe3, 0xe1, 0x60, 0x3d, 0xdb, - 0x17, 0x0f, 0x2b, 0x71, 0xf7, 0xbd, 0x5f, 0x18, 0x8c, 0xbe, 0x0d, 0xf1, - 0xf1, 0x3e, 0x8c, 0x31, 0xa8, 0x14, 0x47, 0x94, 0x89, 0x48, 0x7f, 0x21, - 0x79, 0x1e, 0xff, 0x33, 0x29, 0xf4, 0x37, 0xc8, 0xce, 0x37, 0xac, 0xd8, - 0xfa, 0xf5, 0xe1, 0x9a, 0xbf, 0x3f, 0xd1, 0x30, 0xa3, 0xf8, 0xef, 0x2f, - 0x23, 0xe2, 0x21, 0xb7, 0x52, 0xcf, 0xe2, 0x75, 0xa8, 0xe7, 0x64, 0xc0, - 0x15, 0xb2, 0xfe, 0x21, 0xe2, 0x8f, 0xed, 0x64, 0xc6, 0x4f, 0x5f, 0xa6, - 0xbe, 0xaf, 0xa2, 0x2b, 0x62, 0xeb, 0xfb, 0x95, 0xf5, 0xde, 0x31, 0x21, - 0xff, 0xe5, 0xea, 0x53, 0x78, 0xbe, 0x4b, 0xd0, 0x2f, 0x9d, 0xe9, 0x57, - 0xae, 0xa3, 0x5a, 0xfd, 0x97, 0xe9, 0x5b, 0x8e, 0x17, 0xe4, 0xb8, 0xff, - 0xdf, 0x1d, 0x78, 0xbe, 0xd3, 0x79, 0x5c, 0xb1, 0x5b, 0x2f, 0x48, 0x8d, - 0xeb, 0xf4, 0xf9, 0x36, 0xb2, 0x69, 0x3f, 0xd8, 0xf4, 0x16, 0x54, 0x7a, - 0x8e, 0xd6, 0x23, 0xd5, 0xb9, 0xa4, 0xa4, 0xc1, 0xde, 0xdf, 0xba, 0x97, - 0x27, 0xb0, 0xe9, 0xfb, 0x90, 0xbd, 0x58, 0x23, 0x49, 0x89, 0x49, 0x71, - 0x9c, 0x39, 0xa6, 0x57, 0x6f, 0x80, 0x7d, 0x51, 0xd1, 0x04, 0xcf, 0x47, - 0xdb, 0x43, 0xbc, 0x9f, 0x2e, 0x67, 0x90, 0x7e, 0x3a, 0xa0, 0xbf, 0xa3, - 0x6d, 0x02, 0xe6, 0x27, 0xcf, 0xf7, 0xd3, 0x9f, 0x17, 0xa4, 0xdf, 0x87, - 0x9c, 0x31, 0xa0, 0x6f, 0x2b, 0x4e, 0x1e, 0xe8, 0x57, 0xeb, 0x07, 0x09, - 0xcd, 0x17, 0x76, 0x93, 0x7c, 0xaf, 0x49, 0xeb, 0xd7, 0x7c, 0x2b, 0xeb, - 0xc3, 0xf4, 0x8b, 0xd5, 0xfb, 0xca, 0x1f, 0xab, 0xbc, 0x5e, 0xf1, 0x05, - 0x1e, 0x52, 0x44, 0xe4, 0x7b, 0x40, 0xc2, 0xf0, 0x45, 0x03, 0x03, 0x91, - 0x67, 0x09, 0xeb, 0x51, 0x2b, 0xe8, 0xf1, 0xf5, 0x39, 0x1f, 0x85, 0xad, - 0x4f, 0xcc, 0x57, 0x43, 0x3f, 0xcb, 0x2a, 0xe8, 0x67, 0x01, 0xfe, 0x13, - 0xa4, 0x9f, 0x85, 0xf3, 0x63, 0x44, 0xf1, 0x4f, 0xf7, 0xef, 0x0a, 0xb7, - 0x3f, 0x0e, 0xa1, 0xfd, 0x9a, 0x87, 0x0f, 0x19, 0x78, 0x5b, 0x21, 0xfc, - 0x1a, 0x95, 0xfc, 0x22, 0x74, 0xb5, 0x28, 0x7f, 0xfa, 0xfe, 0xde, 0xb8, - 0xe6, 0x14, 0x35, 0x33, 0xd2, 0x5f, 0xbd, 0xac, 0x47, 0xc7, 0x2f, 0xf0, - 0xf3, 0xd3, 0xc9, 0xf8, 0xfb, 0xf7, 0xcf, 0x26, 0x67, 0xd6, 0x3f, 0x56, - 0xed, 0x7c, 0xe9, 0xf8, 0x7c, 0xad, 0xd5, 0xfd, 0xe7, 0x2b, 0x2a, 0x7f, - 0x11, 0x7e, 0x9e, 0xdc, 0xfd, 0x30, 0xda, 0x88, 0x3e, 0xc3, 0x03, 0xed, - 0xb4, 0x59, 0xd7, 0x59, 0xbf, 0x02, 0x95, 0x1a, 0xd1, 0x73, 0x66, 0x26, - 0xa3, 0xa9, 0xf5, 0x23, 0x5f, 0x50, 0x46, 0x06, 0x15, 0x73, 0x54, 0x99, - 0x68, 0x79, 0xda, 0x2c, 0xed, 0xf8, 0xdb, 0xc5, 0x4e, 0x27, 0xbe, 0x0d, - 0x1d, 0x98, 0x93, 0x70, 0xd2, 0x90, 0x67, 0x84, 0x75, 0x18, 0xed, 0x39, - 0x92, 0x87, 0x18, 0x69, 0x03, 0xfe, 0x9c, 0x6f, 0x53, 0x4b, 0xe2, 0xe8, - 0xdf, 0x30, 0x4b, 0x1a, 0xdc, 0xc7, 0x0d, 0x6e, 0x5f, 0x6e, 0x0c, 0xbc, - 0xcf, 0x5e, 0xb5, 0xff, 0xd8, 0xed, 0x7f, 0x7a, 0x97, 0x9c, 0x77, 0xef, - 0x35, 0xcc, 0xd5, 0x54, 0xdf, 0x58, 0xbe, 0x3c, 0xf1, 0x80, 0xdb, 0x2f, - 0xa1, 0x95, 0x48, 0x7e, 0x2f, 0x8f, 0x8a, 0x34, 0xbf, 0xa7, 0x16, 0x1b, - 0x53, 0xc3, 0x1a, 0xd5, 0xf0, 0x9d, 0x08, 0x6d, 0xe2, 0xe7, 0x23, 0x47, - 0xf4, 0x4b, 0x09, 0xe2, 0xc3, 0x6e, 0xd8, 0xe9, 0x60, 0x7f, 0x02, 0x42, - 0x5f, 0x4b, 0x42, 0xbf, 0x14, 0x16, 0xf6, 0x04, 0xb3, 0x9c, 0xa5, 0xa5, - 0x09, 0xbe, 0x1f, 0x69, 0x34, 0x13, 0x7b, 0x2e, 0xe6, 0x73, 0x1a, 0x0e, - 0x09, 0xfd, 0x9f, 0xbc, 0x1f, 0x57, 0x41, 0xc5, 0x36, 0x58, 0x74, 0x71, - 0x38, 0x6d, 0xe7, 0x40, 0x3f, 0xdb, 0x53, 0xfe, 0x7c, 0x3a, 0xbe, 0x24, - 0x39, 0x76, 0xab, 0xf4, 0xf3, 0x9c, 0xb9, 0x87, 0x02, 0xf9, 0x1f, 0x74, - 0xc1, 0xa1, 0x78, 0xfd, 0x9d, 0x77, 0x68, 0x86, 0xfd, 0x9d, 0x42, 0xfd, - 0xd0, 0x08, 0xd9, 0xbf, 0x34, 0xb4, 0x90, 0xbd, 0x18, 0x8c, 0xe7, 0xbf, - 0xab, 0x73, 0x7a, 0x3d, 0x2a, 0xf5, 0xd7, 0xdc, 0x9f, 0xec, 0x16, 0xfc, - 0x8b, 0xdb, 0x5f, 0x1e, 0xa8, 0xef, 0xcd, 0x8f, 0x5f, 0x8f, 0xfb, 0x7c, - 0xcf, 0xe1, 0xad, 0xe1, 0xe7, 0x2d, 0x00, 0x7b, 0xdf, 0x33, 0x63, 0xb0, - 0x57, 0x3f, 0xce, 0x31, 0xf9, 0x07, 0xc6, 0x2b, 0xec, 0x1b, 0x19, 0xa3, - 0xf6, 0x8d, 0xd5, 0xe3, 0xe0, 0xe7, 0xc4, 0x6c, 0xeb, 0xcf, 0x42, 0x71, - 0x7f, 0xb8, 0xfe, 0xd8, 0xa8, 0x78, 0x59, 0xeb, 0x0e, 0x95, 0x3d, 0x1f, - 0xd3, 0xbb, 0x3c, 0xa8, 0x3f, 0xe2, 0xf7, 0xd0, 0x6a, 0xd4, 0x9f, 0x25, - 0x67, 0x4b, 0x7f, 0x84, 0xfe, 0x18, 0x43, 0xdc, 0x1f, 0x8c, 0x6e, 0x40, - 0x8b, 0x90, 0x13, 0xa9, 0x3f, 0x1a, 0x8d, 0xdf, 0x06, 0x15, 0x21, 0x5f, - 0x2b, 0xe8, 0x53, 0x40, 0x7f, 0xd0, 0x65, 0x55, 0xf5, 0x67, 0x8d, 0x90, - 0x6f, 0x66, 0xf5, 0xf2, 0xca, 0xfa, 0x8e, 0x16, 0x8c, 0xaf, 0xf1, 0x3e, - 0x93, 0x7c, 0x73, 0x11, 0xc5, 0xf7, 0x8b, 0x2e, 0x8c, 0x8f, 0x7f, 0x9c, - 0x77, 0xa3, 0xe2, 0x6d, 0x85, 0xc4, 0xdb, 0xd3, 0x8f, 0xea, 0x30, 0x9e, - 0xfe, 0x7a, 0x1b, 0x58, 0x13, 0xe7, 0xa5, 0xa7, 0x8a, 0xa8, 0x4c, 0xec, - 0xa1, 0xdb, 0xdf, 0xa6, 0x90, 0x7e, 0xd1, 0x8e, 0xec, 0x76, 0xbb, 0x61, - 0xdf, 0xea, 0x5c, 0x6a, 0x5a, 0x83, 0x78, 0x9b, 0x9e, 0x07, 0xb0, 0xee, - 0x2b, 0x90, 0x9d, 0xf0, 0xd7, 0x5b, 0x06, 0x03, 0xfd, 0xcb, 0x07, 0x17, - 0xf9, 0xf2, 0x35, 0xd0, 0x8f, 0x3c, 0xbd, 0x14, 0xca, 0x28, 0xde, 0x7c, - 0xa3, 0xc6, 0xf9, 0x3a, 0xcc, 0x37, 0xf1, 0x21, 0x78, 0x4c, 0x41, 0xc3, - 0xe1, 0xf3, 0x75, 0xac, 0x1b, 0xe3, 0x8f, 0xb0, 0x78, 0xd6, 0xc8, 0x32, - 0xfb, 0x48, 0xf7, 0x33, 0x6c, 0x7e, 0xd2, 0x3f, 0x3f, 0x42, 0x9f, 0xff, - 0x23, 0x22, 0x3f, 0x5d, 0xd1, 0x3f, 0x9f, 0x03, 0xfd, 0x00, 0xe7, 0xfd, - 0x81, 0x52, 0x1a, 0xf6, 0xf4, 0x63, 0x79, 0xa4, 0x7e, 0x64, 0x35, 0x2b, - 0xe9, 0xbf, 0x3f, 0x75, 0xc7, 0xf6, 0xb7, 0x87, 0xd4, 0xb7, 0xb8, 0xc5, - 0xc9, 0x86, 0xd6, 0xab, 0xc9, 0x7f, 0x76, 0xa6, 0xe0, 0x3c, 0x3b, 0x5e, - 0x7f, 0x88, 0xcb, 0x3f, 0x3d, 0xca, 0xee, 0x27, 0x8d, 0xf2, 0xe1, 0xfd, - 0xb2, 0xcf, 0x6b, 0xbe, 0xfa, 0x92, 0x22, 0xc7, 0xdf, 0x9d, 0x9c, 0xbf, - 0x44, 0x54, 0xff, 0x62, 0x03, 0x89, 0xf7, 0xb8, 0xfe, 0xee, 0x52, 0xfc, - 0xf5, 0x17, 0x31, 0xbf, 0x1f, 0x9e, 0x9f, 0x7f, 0xc1, 0xc7, 0x5f, 0x38, - 0x3f, 0x3d, 0x89, 0xe8, 0xfc, 0x5c, 0x37, 0xb1, 0x70, 0x18, 0x5f, 0xad, - 0x5e, 0x5f, 0x90, 0xa5, 0x1f, 0x79, 0x5f, 0x44, 0x35, 0xe7, 0x93, 0x63, - 0xed, 0xbd, 0x68, 0xbf, 0x23, 0xf2, 0x7f, 0x45, 0xcd, 0xd7, 0x1f, 0x1d, - 0xbc, 0x9f, 0xb6, 0xcf, 0x12, 0xfd, 0x0e, 0xde, 0xcf, 0x4b, 0xdf, 0x0f, - 0xca, 0x71, 0xfa, 0xcd, 0xb3, 0x44, 0x9f, 0xf6, 0x3b, 0x83, 0x3e, 0x13, - 0x7b, 0xd5, 0xec, 0xf6, 0x5f, 0xcc, 0x12, 0x7d, 0xda, 0xef, 0xec, 0xfa, - 0x63, 0xb7, 0xbf, 0x63, 0xe3, 0x2c, 0xd1, 0xa7, 0xfd, 0xce, 0xdc, 0xff, - 0x17, 0xdd, 0xfa, 0xe3, 0x46, 0xee, 0x5f, 0xf4, 0x98, 0xf3, 0xe4, 0xac, - 0x5b, 0x62, 0x4c, 0xf7, 0xf6, 0xc1, 0x6d, 0xf7, 0xcb, 0xfc, 0x7b, 0x21, - 0x3a, 0x8f, 0x47, 0x6b, 0xf1, 0xc7, 0x53, 0xdf, 0xf5, 0xe5, 0x27, 0x12, - 0x9e, 0xbe, 0x13, 0x76, 0x32, 0x3e, 0x7d, 0x20, 0xa7, 0xef, 0x9b, 0xbe, - 0xfe, 0xa2, 0x41, 0xfe, 0xbd, 0x9f, 0x9a, 0xbe, 0x4f, 0x52, 0x5d, 0xbf, - 0x5d, 0xff, 0xa7, 0x57, 0xf1, 0x7f, 0xcc, 0x3f, 0xe2, 0x28, 0x9c, 0xf8, - 0x3f, 0x14, 0x5f, 0x6f, 0x75, 0xa8, 0xfd, 0xc8, 0x11, 0x7f, 0x87, 0x6f, - 0xb6, 0xc5, 0x53, 0xd7, 0xe2, 0xfb, 0x47, 0xde, 0x8d, 0xcf, 0x0d, 0x7a, - 0x9f, 0xb3, 0x75, 0xf0, 0xe7, 0xc3, 0x4f, 0x74, 0xac, 0x7b, 0x4c, 0x75, - 0xc6, 0x94, 0x09, 0x94, 0xc6, 0xf6, 0xda, 0xee, 0x7c, 0xf2, 0xc8, 0xa5, - 0xd3, 0x0a, 0x36, 0x3d, 0xf9, 0xcb, 0x37, 0x0c, 0xa9, 0x70, 0x1f, 0xf8, - 0x5e, 0xc7, 0x46, 0xf4, 0x63, 0x7a, 0x1f, 0x08, 0xcf, 0xf7, 0xa5, 0x3c, - 0x79, 0x5a, 0xfe, 0xfc, 0x10, 0xd9, 0x8b, 0xcd, 0x19, 0xef, 0x7b, 0x5b, - 0x6e, 0xbd, 0x3d, 0xe2, 0x7b, 0x5b, 0xbc, 0xbe, 0x1f, 0x7c, 0xdf, 0xeb, - 0x90, 0x47, 0xbf, 0xd8, 0x51, 0x43, 0xfe, 0x89, 0xcf, 0xa7, 0xf5, 0x90, - 0x94, 0x0a, 0xf5, 0x76, 0xea, 0x5f, 0xdd, 0xfa, 0x76, 0x95, 0x78, 0xc3, - 0xcd, 0xb7, 0xb0, 0x78, 0x23, 0x1f, 0x1f, 0x6f, 0xb0, 0x7c, 0x1e, 0xcb, - 0x46, 0x27, 0xb8, 0x7f, 0xb1, 0xa9, 0xfc, 0x93, 0x20, 0x7f, 0x7b, 0xd4, - 0xd7, 0x5f, 0x6f, 0xf4, 0x93, 0xf7, 0xe9, 0x1c, 0x15, 0xfc, 0xe5, 0x70, - 0xea, 0x68, 0xd7, 0x29, 0xd5, 0x1e, 0xc3, 0xb0, 0x8e, 0xe5, 0x6f, 0x76, - 0xfe, 0x66, 0x52, 0xe3, 0xf5, 0xed, 0xdd, 0xd0, 0x0f, 0x60, 0x40, 0xfc, - 0x60, 0x0e, 0x47, 0xe7, 0xff, 0x22, 0xe5, 0x4f, 0xcc, 0xe5, 0xe6, 0x7a, - 0x4f, 0xfe, 0xf5, 0xff, 0xaf, 0xe5, 0x2f, 0xf6, 0x17, 0xe8, 0xae, 0xb1, - 0x5a, 0xaf, 0x05, 0xe3, 0x13, 0xee, 0xaf, 0x83, 0xfd, 0x07, 0x95, 0xfe, - 0x9e, 0xbd, 0x3f, 0x99, 0x9b, 0x26, 0xf1, 0x92, 0x6b, 0xdf, 0x72, 0xf1, - 0xf6, 0x8d, 0x3f, 0x4f, 0x77, 0x9b, 0x4b, 0xd6, 0xc7, 0xbd, 0x7f, 0x63, - 0x92, 0xfb, 0x85, 0xdf, 0xde, 0x72, 0xfb, 0xe3, 0xca, 0x9a, 0x7e, 0x8f, - 0xcc, 0xc4, 0x06, 0xca, 0x6e, 0x1d, 0x4e, 0x80, 0xbd, 0x77, 0x52, 0x81, - 0x7e, 0xc4, 0x39, 0xc4, 0xfe, 0xa9, 0xc1, 0xf9, 0xae, 0xbb, 0xe4, 0x30, - 0xff, 0xd2, 0x6f, 0x54, 0x3d, 0x96, 0xdf, 0x17, 0xf8, 0xf3, 0xcd, 0x20, - 0x3e, 0x61, 0x0d, 0xf6, 0xb6, 0xc0, 0xfd, 0xc1, 0x35, 0xfc, 0xf9, 0x59, - 0x7e, 0x9f, 0x23, 0xf7, 0x69, 0xdf, 0xfb, 0xb0, 0x7e, 0xff, 0x4a, 0xd9, - 0xdb, 0xae, 0x80, 0x3e, 0xf6, 0x25, 0x02, 0xfd, 0x67, 0xf5, 0x01, 0xfc, - 0x9c, 0x15, 0xf1, 0xbe, 0x17, 0xfd, 0x79, 0x2b, 0x22, 0xbe, 0x70, 0xfd, - 0x61, 0xc0, 0x7e, 0x7b, 0xfc, 0x53, 0xd7, 0x00, 0x9f, 0xac, 0x65, 0xef, - 0xab, 0x7a, 0xfe, 0x2c, 0x15, 0x78, 0x3e, 0xf7, 0x77, 0xc2, 0x7a, 0xdc, - 0xfc, 0xf0, 0x09, 0xce, 0xdf, 0xbd, 0x48, 0xc8, 0x27, 0xd0, 0xf9, 0xed, - 0x02, 0x7e, 0x95, 0xfb, 0xe7, 0x4a, 0xe1, 0x3e, 0x78, 0x65, 0x95, 0xfb, - 0xe0, 0x55, 0x33, 0xbd, 0x0f, 0xb2, 0x7f, 0xb8, 0xe7, 0x51, 0x25, 0xd0, - 0xbf, 0x52, 0x45, 0x3f, 0xc9, 0xfb, 0x37, 0x7d, 0xbe, 0x7c, 0x5d, 0x63, - 0xfc, 0xfc, 0x3c, 0xda, 0x65, 0x04, 0xf9, 0x2b, 0x2e, 0x65, 0xf9, 0xce, - 0xf0, 0xf3, 0xa2, 0xf3, 0xf3, 0xc9, 0x08, 0xf4, 0x3d, 0x9a, 0x0d, 0xf0, - 0x97, 0x62, 0xe3, 0x30, 0xbc, 0x01, 0xf4, 0xaf, 0x3d, 0x18, 0x9f, 0x72, - 0x7a, 0x78, 0xbf, 0x8b, 0x7e, 0xff, 0x0f, 0xf3, 0xad, 0x10, 0xf9, 0x88, - 0xcf, 0xe7, 0xf4, 0x5d, 0xff, 0xd8, 0xbe, 0x10, 0x16, 0x57, 0x31, 0x9f, - 0xda, 0xb3, 0x11, 0x92, 0x0f, 0x80, 0xfb, 0x5d, 0x94, 0xfc, 0x05, 0xfa, - 0x58, 0x0b, 0xd6, 0x6b, 0x71, 0xfb, 0x55, 0x59, 0xcf, 0x0e, 0x9f, 0x1f, - 0x65, 0x6f, 0xc5, 0xf5, 0x70, 0x7c, 0x31, 0x1e, 0x22, 0xf4, 0x7c, 0xf1, - 0xbd, 0x57, 0x0f, 0x0f, 0xdf, 0x4f, 0xcc, 0x79, 0xd1, 0xaf, 0xbf, 0x80, - 0xbf, 0xb6, 0x3a, 0xff, 0x48, 0x15, 0xf9, 0x8f, 0x8f, 0x07, 0x6d, 0xcf, - 0x3e, 0x87, 0xaf, 0x6f, 0x7f, 0xd4, 0x7c, 0x13, 0x39, 0x76, 0x4b, 0xe8, - 0xfd, 0x2f, 0xd4, 0xbf, 0xb9, 0xf1, 0x38, 0xbe, 0x3f, 0xf7, 0x71, 0xfb, - 0x90, 0xf3, 0xc7, 0xff, 0xcd, 0x3c, 0xbf, 0xfd, 0xeb, 0x05, 0x11, 0xfd, - 0x39, 0x34, 0x7e, 0x8d, 0x3f, 0x2f, 0xa5, 0x57, 0xef, 0x0b, 0xae, 0xdf, - 0xa9, 0x4d, 0xff, 0x5d, 0xfb, 0xc5, 0xf2, 0x35, 0x7c, 0xbd, 0xc9, 0x2a, - 0xf2, 0x09, 0x3e, 0xff, 0xeb, 0x24, 0x9f, 0x8f, 0x74, 0x34, 0x51, 0xa3, - 0x3c, 0x71, 0xc8, 0xbb, 0x5e, 0xf3, 0xec, 0x23, 0x7c, 0x12, 0x99, 0xe6, - 0xbb, 0xc4, 0xf1, 0x1a, 0xee, 0xc3, 0xbf, 0x25, 0xff, 0xde, 0x35, 0x2b, - 0xfe, 0xdd, 0xf3, 0xd7, 0x5d, 0xe7, 0xfc, 0xf5, 0x2c, 0xfa, 0xeb, 0xdf, - 0x8f, 0xa8, 0xa7, 0xbb, 0xf6, 0x29, 0x42, 0x7e, 0x0e, 0x75, 0x36, 0xbe, - 0xef, 0x37, 0x7c, 0x59, 0xca, 0x5f, 0x03, 0xe9, 0x4c, 0x9d, 0xdf, 0x5f, - 0x6f, 0x9a, 0x0d, 0x7f, 0xed, 0xac, 0x91, 0xf4, 0xd7, 0x6b, 0x67, 0xe8, - 0xaf, 0xdd, 0x7a, 0xdd, 0xae, 0xc0, 0xf7, 0x45, 0x1c, 0xae, 0x9f, 0x54, - 0x4c, 0xa3, 0xf5, 0xfc, 0xbc, 0x46, 0xfa, 0xef, 0x03, 0xd4, 0x7f, 0xbb, - 0xcf, 0xb7, 0x17, 0x55, 0xb1, 0x47, 0x5d, 0x32, 0xfe, 0x0a, 0xfb, 0xcf, - 0xae, 0xa0, 0xff, 0xdc, 0x15, 0xfe, 0xbe, 0xb3, 0xdf, 0x7f, 0xf6, 0x49, - 0xf9, 0xcf, 0x2e, 0x49, 0xff, 0x29, 0xc7, 0x3f, 0x9f, 0x5f, 0xbb, 0xbf, - 0xec, 0x9a, 0x65, 0x7f, 0xd9, 0x25, 0xe9, 0x2f, 0xbb, 0x24, 0xfd, 0x65, - 0xd7, 0x69, 0xfb, 0x4b, 0xf3, 0xb4, 0xfc, 0x65, 0x57, 0xbc, 0xbf, 0x3c, - 0x28, 0xf8, 0x4b, 0x54, 0x9b, 0x7e, 0x8a, 0xef, 0xbb, 0x78, 0xfe, 0x32, - 0xfa, 0x79, 0x26, 0xd9, 0x4f, 0x5e, 0xcf, 0x3d, 0x4b, 0xfe, 0x8a, 0x7d, - 0x7f, 0x42, 0xfc, 0xbe, 0x44, 0xd4, 0x7e, 0x21, 0x37, 0xbf, 0x7b, 0x7a, - 0xdf, 0x03, 0xa0, 0xfd, 0x20, 0x9b, 0x31, 0x85, 0x95, 0xf0, 0xfd, 0x25, - 0x5f, 0xfd, 0x23, 0xbc, 0xdf, 0xc8, 0x05, 0xbc, 0xfc, 0xae, 0x02, 0xf5, - 0xdf, 0x7a, 0xc3, 0xc1, 0xeb, 0xf5, 0xde, 0x77, 0xe2, 0xfc, 0xa2, 0x8e, - 0xac, 0x6a, 0xb7, 0xee, 0xc3, 0x62, 0x9d, 0x0e, 0xed, 0x37, 0xc2, 0x86, - 0x55, 0x09, 0xd8, 0xeb, 0x1a, 0xf3, 0x65, 0x51, 0xf2, 0x30, 0x93, 0x58, - 0x7f, 0xe7, 0x6e, 0x4e, 0x8f, 0x5f, 0xbc, 0x02, 0x95, 0xb2, 0x28, 0x6f, - 0xe2, 0xbd, 0xdf, 0xd7, 0x9c, 0x48, 0x40, 0x7e, 0x81, 0x7c, 0x5f, 0x0a, - 0x91, 0x8f, 0x64, 0x3b, 0x0a, 0xed, 0x58, 0x30, 0x51, 0x3b, 0xb2, 0x3b, - 0xb0, 0xbe, 0x8f, 0x27, 0xbc, 0x7c, 0x08, 0x2b, 0xad, 0xa3, 0xbe, 0xa1, - 0x92, 0x52, 0xa1, 0xff, 0x5d, 0x08, 0x35, 0xc1, 0xfb, 0x61, 0x07, 0x86, - 0x10, 0xf4, 0x33, 0x80, 0xbe, 0x2c, 0xaf, 0xc1, 0xde, 0xf0, 0x7e, 0x52, - 0xaf, 0x3f, 0xac, 0x5f, 0xe8, 0x0f, 0x9b, 0x12, 0xfa, 0x0d, 0xfa, 0xe3, - 0xfb, 0xc3, 0x9c, 0x65, 0xb1, 0xfe, 0xb4, 0xb2, 0xbe, 0xcf, 0xbe, 0x6f, - 0x42, 0x37, 0x2f, 0x01, 0xf5, 0x2f, 0xf8, 0xb8, 0x57, 0x4e, 0x3f, 0xae, - 0xd8, 0x46, 0x4b, 0x9a, 0xbc, 0x3f, 0x47, 0xf6, 0x7b, 0xb3, 0xe6, 0x9a, - 0x1c, 0xa8, 0x5f, 0xa5, 0xc7, 0xb0, 0x3e, 0x8e, 0x5c, 0x3d, 0xae, 0x0f, - 0x6a, 0xf6, 0x08, 0xef, 0x07, 0x52, 0x33, 0xa8, 0x74, 0x21, 0xc1, 0x07, - 0x79, 0x19, 0x9f, 0x44, 0x6e, 0x7f, 0x69, 0x25, 0x3f, 0xc1, 0x7a, 0x18, - 0x88, 0x67, 0x14, 0xec, 0x8b, 0xe9, 0xbd, 0xcf, 0x46, 0xe0, 0x88, 0xef, - 0x51, 0x84, 0xf9, 0x87, 0x35, 0xba, 0x57, 0xbf, 0x98, 0xed, 0xef, 0x61, - 0x54, 0xc8, 0x67, 0x3b, 0xc9, 0xcf, 0x2d, 0x1e, 0xd7, 0x4f, 0x92, 0xfc, - 0xa8, 0xf7, 0xbe, 0x15, 0x95, 0x4f, 0x51, 0x87, 0xf3, 0x3a, 0xb2, 0x2a, - 0x97, 0x18, 0x54, 0x88, 0x7c, 0x88, 0xc1, 0x52, 0xeb, 0xb9, 0x7c, 0xc0, - 0x3f, 0x27, 0xb3, 0x71, 0xf2, 0x49, 0x07, 0xe5, 0x43, 0xe4, 0xbb, 0x21, - 0x03, 0xfe, 0xaf, 0x08, 0xf1, 0xb9, 0x0f, 0x76, 0x6a, 0x8c, 0xd7, 0x57, - 0xeb, 0x71, 0xfd, 0x63, 0xa7, 0x27, 0x9f, 0x4a, 0xfb, 0x10, 0xec, 0x0f, - 0xf0, 0xd9, 0xaf, 0x40, 0x3c, 0xed, 0xe6, 0x1f, 0x3b, 0x70, 0x3c, 0xdd, - 0x6a, 0xaa, 0x17, 0x66, 0x1e, 0x53, 0x8a, 0x5f, 0xf5, 0xf5, 0x9b, 0xe0, - 0x70, 0xcb, 0x71, 0xdf, 0xcf, 0x7e, 0x36, 0xe1, 0xed, 0x6f, 0x48, 0xbe, - 0x50, 0x47, 0xbd, 0x13, 0xff, 0xc5, 0xfd, 0x5f, 0xfc, 0x79, 0xf2, 0xad, - 0xaf, 0xb6, 0xf3, 0x74, 0x56, 0xd6, 0x87, 0xec, 0x97, 0x54, 0x7f, 0xbf, - 0xd8, 0x9f, 0x25, 0xab, 0xac, 0xb7, 0xef, 0xd0, 0x99, 0x5e, 0x2f, 0xeb, - 0xf7, 0x1b, 0x27, 0xeb, 0x6b, 0xd1, 0xc5, 0xef, 0xaf, 0xb9, 0xeb, 0xb3, - 0xf1, 0xfa, 0xf4, 0xee, 0x06, 0x34, 0xf5, 0x98, 0x82, 0xfc, 0xf5, 0x02, - 0xd3, 0xcb, 0x7f, 0xa1, 0xe2, 0x48, 0x32, 0xd8, 0x3f, 0xf7, 0xcd, 0xba, - 0xd8, 0xf5, 0x2d, 0xee, 0xd4, 0xd0, 0x94, 0x7b, 0x9f, 0x90, 0xec, 0x77, - 0xac, 0xd2, 0x8f, 0x45, 0xce, 0x6f, 0x4b, 0x1d, 0xb7, 0x7f, 0xbe, 0xfe, - 0x3d, 0x72, 0xde, 0xf2, 0x64, 0xbd, 0x66, 0x82, 0xf5, 0xc3, 0x7a, 0xeb, - 0x29, 0xc7, 0xd7, 0xb7, 0x7d, 0xf9, 0x74, 0xbb, 0xe3, 0x4c, 0x9e, 0x37, - 0x34, 0x9c, 0x0a, 0xf6, 0x2b, 0x8e, 0xa6, 0x64, 0xfa, 0x17, 0x93, 0x66, - 0xfe, 0x35, 0xf3, 0xde, 0x36, 0xb4, 0xbe, 0xdd, 0x98, 0xa6, 0x7e, 0x68, - 0x4d, 0x2a, 0x3e, 0xbf, 0x1f, 0xdf, 0x3f, 0x1a, 0xdd, 0x2f, 0x71, 0x52, - 0xfc, 0x3e, 0x25, 0xd5, 0x3f, 0x35, 0xbb, 0x9d, 0x7c, 0x8f, 0xc6, 0xdd, - 0xaf, 0x3a, 0xfe, 0x7c, 0x9d, 0xf6, 0x47, 0xc0, 0x79, 0x69, 0x69, 0x1e, - 0xd7, 0xfa, 0x63, 0xfb, 0x97, 0xe7, 0x45, 0xfc, 0xbd, 0x41, 0xb8, 0x3f, - 0x67, 0x5a, 0xf1, 0xfe, 0xb9, 0xf1, 0xe6, 0x9d, 0xc9, 0xf8, 0x78, 0xf5, - 0x0c, 0x9d, 0x9f, 0x88, 0xf7, 0x15, 0x2b, 0xf3, 0x0d, 0xc1, 0x7e, 0x98, - 0x8a, 0xf7, 0x17, 0x95, 0xdd, 0xec, 0x7e, 0xc1, 0xf8, 0x53, 0x21, 0x9e, - 0x09, 0xf3, 0xa7, 0x50, 0x88, 0xa6, 0xdf, 0x2f, 0xb0, 0xd3, 0xd5, 0xeb, - 0x33, 0xe2, 0xfd, 0xf4, 0x9a, 0x43, 0xf1, 0xdf, 0x7b, 0xdb, 0x1f, 0x11, - 0xbf, 0xb8, 0xf7, 0xcd, 0xc0, 0x7d, 0x7c, 0x34, 0x0d, 0xfe, 0xa9, 0x94, - 0x60, 0xf5, 0x24, 0x7b, 0xb3, 0xef, 0xfb, 0x42, 0xf5, 0xc1, 0xfb, 0xf4, - 0x0c, 0xfb, 0xaf, 0x3e, 0x25, 0x79, 0x9f, 0xb6, 0x0f, 0x9d, 0xee, 0xf7, - 0x12, 0x99, 0xfc, 0xa9, 0x81, 0xb6, 0x17, 0x1c, 0xd3, 0x02, 0xcf, 0xd7, - 0x51, 0x92, 0xc8, 0xa3, 0xa5, 0x3b, 0x4f, 0xde, 0xbb, 0xea, 0x6a, 0x23, - 0x13, 0x9c, 0x63, 0xa4, 0xac, 0x8f, 0x31, 0xff, 0x84, 0x9e, 0xb7, 0x6a, - 0xf7, 0x3f, 0xaf, 0xde, 0x1a, 0xfc, 0x3e, 0x28, 0xa7, 0x4f, 0xd7, 0x33, - 0x42, 0xf2, 0x75, 0xc5, 0xf0, 0xfb, 0x7b, 0x71, 0x2c, 0x19, 0x72, 0x1f, - 0x63, 0xf4, 0x68, 0x2c, 0x3b, 0x44, 0xfb, 0x59, 0x12, 0x35, 0xc7, 0xd3, - 0xee, 0xf3, 0xe9, 0xf2, 0x27, 0x5d, 0xff, 0xc4, 0xf2, 0x2f, 0x03, 0xbe, - 0xfe, 0x3a, 0xae, 0x8f, 0xf5, 0x32, 0xfb, 0x7b, 0xa1, 0xaf, 0x1e, 0x49, - 0xf2, 0x49, 0xbd, 0x96, 0x1b, 0x7f, 0x11, 0x79, 0xe4, 0x23, 0xee, 0x93, - 0x18, 0xb6, 0xe6, 0x78, 0xf7, 0x6d, 0x84, 0x6e, 0xe1, 0xfd, 0xd0, 0x27, - 0x17, 0xcc, 0x5c, 0xbf, 0x9c, 0x8e, 0xb3, 0xa6, 0x5f, 0xe1, 0xfc, 0xf5, - 0x45, 0xfd, 0x3d, 0x55, 0x51, 0x1f, 0xa3, 0xea, 0x59, 0x91, 0xf9, 0xb5, - 0xc7, 0x82, 0xfd, 0x44, 0xbc, 0x5f, 0x54, 0xcc, 0xaf, 0x49, 0xde, 0xb7, - 0x5c, 0xfd, 0x04, 0x05, 0x69, 0x35, 0x35, 0xb8, 0x5f, 0xf5, 0x25, 0x29, - 0xbd, 0xee, 0xc0, 0xfe, 0xb8, 0xdf, 0x53, 0xa5, 0xfd, 0x10, 0x84, 0x9c, - 0xf7, 0xfd, 0x0a, 0x57, 0x5f, 0x57, 0xfb, 0xe2, 0x07, 0x34, 0x94, 0xe4, - 0xfa, 0x8e, 0xa7, 0x3b, 0xcf, 0xa4, 0xc3, 0xfa, 0x21, 0x66, 0xe7, 0x3e, - 0x4e, 0xef, 0xbf, 0xf3, 0x55, 0xf7, 0x3e, 0x5e, 0x79, 0x7f, 0xa9, 0xf2, - 0xbe, 0x80, 0x40, 0x0f, 0xb2, 0xe3, 0xb0, 0xf7, 0xa5, 0xa5, 0xb3, 0x46, - 0xef, 0xa9, 0x98, 0xf7, 0x63, 0xaa, 0xc1, 0x20, 0xbf, 0xa0, 0x7f, 0x10, - 0xe7, 0x77, 0xca, 0xf5, 0x8b, 0x4b, 0xd3, 0xbf, 0xf1, 0xb4, 0xe8, 0xc3, - 0xcb, 0x06, 0xf1, 0xfa, 0xb9, 0x3c, 0x96, 0x1e, 0xa8, 0x96, 0xa5, 0xd6, - 0x2e, 0xaf, 0x19, 0xfe, 0xfd, 0x36, 0xf7, 0xef, 0x17, 0x1b, 0x02, 0x9c, - 0x13, 0x60, 0x53, 0x80, 0x6d, 0x01, 0x66, 0xf9, 0x7e, 0x0f, 0xd6, 0x05, - 0xd8, 0x10, 0xe0, 0x9c, 0x00, 0x9b, 0x02, 0x7c, 0x76, 0xff, 0x1e, 0x95, - 0x23, 0xc0, 0x55, 0xff, 0xde, 0xda, 0x2c, 0xf3, 0x77, 0xee, 0xe7, 0xdc, - 0xcf, 0xb9, 0x9f, 0x98, 0x9f, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xec, - 0x5d, 0x7b, 0x90, 0x1c, 0x47, 0x79, 0xef, 0xee, 0x79, 0xec, 0xec, 0xde, - 0xee, 0x6a, 0x74, 0x9c, 0xc4, 0x5a, 0x0f, 0x7b, 0x4e, 0x3e, 0x49, 0x47, - 0x95, 0xe2, 0x3a, 0x0b, 0xd9, 0x9c, 0x1d, 0xc5, 0xcc, 0x49, 0x67, 0xe7, - 0x64, 0x9f, 0x1c, 0xc5, 0x81, 0x8a, 0x4c, 0x80, 0xac, 0x70, 0x51, 0x91, - 0x0c, 0x91, 0x4d, 0xa0, 0x92, 0x73, 0xec, 0x94, 0x7b, 0xf7, 0xf6, 0x1e, - 0xc6, 0x3a, 0xe7, 0x2c, 0x8c, 0x91, 0x8d, 0x0d, 0x7b, 0x92, 0x8c, 0x15, - 0x4c, 0x05, 0x0a, 0x42, 0x70, 0xf8, 0x87, 0xd5, 0xcb, 0x91, 0x29, 0xab, - 0x4a, 0x40, 0x42, 0x41, 0x15, 0x95, 0x5a, 0x3b, 0x3c, 0x54, 0x01, 0x14, - 0x51, 0xd8, 0xce, 0x19, 0x0c, 0x97, 0x7e, 0xcf, 0xf4, 0xec, 0xcc, 0xec, - 0x9e, 0x2c, 0xbb, 0x48, 0x60, 0xff, 0x90, 0x34, 0xda, 0xd9, 0x9e, 0x9e, - 0xee, 0xaf, 0xbf, 0xf7, 0xf7, 0xfb, 0x06, 0x98, 0x7e, 0xc5, 0xf1, 0x65, - 0x68, 0xbe, 0x95, 0x83, 0xf2, 0x06, 0xb1, 0x2f, 0xce, 0xdc, 0x07, 0x77, - 0xc3, 0xc6, 0x38, 0x3c, 0xf4, 0x0e, 0xf0, 0x1c, 0xde, 0x6f, 0xd6, 0x36, - 0x41, 0x83, 0xfb, 0x6b, 0x73, 0xe0, 0x21, 0x7a, 0x66, 0x57, 0xd9, 0xbd, - 0x0e, 0xfc, 0xc2, 0xa0, 0x85, 0x39, 0xbf, 0xba, 0xc1, 0x66, 0xde, 0x53, - 0x22, 0xbf, 0xcb, 0x2e, 0xf0, 0xef, 0xcb, 0x8d, 0x6f, 0xe8, 0x32, 0xb8, - 0x7f, 0x2a, 0xff, 0xf0, 0x9c, 0x59, 0x46, 0x08, 0x2c, 0x5d, 0x0a, 0xec, - 0x72, 0x69, 0x52, 0xe9, 0xbf, 0xae, 0xa8, 0x3f, 0x1d, 0xa6, 0xf6, 0x72, - 0x6d, 0x8b, 0xf2, 0x0f, 0xac, 0x23, 0xfa, 0xab, 0x8f, 0x96, 0x5d, 0x7f, - 0x39, 0x94, 0xf9, 0x67, 0xb7, 0xa4, 0xf6, 0xe3, 0xcc, 0x61, 0xa6, 0x4e, - 0xd4, 0xb7, 0xbc, 0xb3, 0x9f, 0x7e, 0x85, 0x73, 0x38, 0xcb, 0xaf, 0x45, - 0xbf, 0x38, 0xf9, 0xbd, 0xd3, 0x60, 0x8c, 0x74, 0xfa, 0xb0, 0xa7, 0xf3, - 0x1b, 0xaf, 0x9f, 0xca, 0x2b, 0xaf, 0x6b, 0xb6, 0xb8, 0x89, 0x06, 0xad, - 0xa9, 0x3f, 0x2f, 0xe6, 0x79, 0xef, 0xb4, 0xe4, 0xfb, 0x01, 0x70, 0x53, - 0x44, 0x7e, 0x29, 0xbc, 0x2d, 0x66, 0x5f, 0x7a, 0x9e, 0xb8, 0x7f, 0x27, - 0xc2, 0x75, 0xcb, 0x7b, 0xad, 0xf2, 0xe4, 0x75, 0xff, 0xb8, 0xfa, 0xe5, - 0x2e, 0xf9, 0x8f, 0x3e, 0xb1, 0x3f, 0x1e, 0x6b, 0xce, 0xed, 0x59, 0x92, - 0x3e, 0x68, 0xae, 0xa0, 0xef, 0x78, 0x96, 0x6b, 0xf1, 0xf5, 0x0f, 0xd3, - 0x4b, 0x93, 0xd0, 0xcb, 0x30, 0xb5, 0x37, 0xbd, 0x1b, 0x37, 0x42, 0x91, - 0x8f, 0x28, 0xe5, 0x1b, 0x12, 0xf5, 0x8a, 0x54, 0x76, 0x3b, 0xd7, 0xdc, - 0x6c, 0x4b, 0x7c, 0xa3, 0x28, 0xbd, 0x98, 0xdd, 0x00, 0x4f, 0x9b, 0x93, - 0xf9, 0xd9, 0x3c, 0xb9, 0xce, 0x53, 0xff, 0xe6, 0xb6, 0xc8, 0x7a, 0x2b, - 0xff, 0x31, 0xab, 0x27, 0x64, 0xe2, 0x10, 0x6f, 0x91, 0x12, 0xbd, 0xce, - 0x50, 0x55, 0xc1, 0xb2, 0xeb, 0x7b, 0x3b, 0xa4, 0x9f, 0x50, 0x3d, 0x90, - 0xc0, 0x57, 0x61, 0xfd, 0x5f, 0xdd, 0xe0, 0x79, 0x4c, 0xe5, 0xf2, 0x42, - 0xf1, 0x0e, 0x3f, 0x2d, 0x9f, 0xd1, 0x43, 0x8c, 0x9e, 0xb2, 0xc1, 0xf8, - 0xe9, 0xf3, 0xbf, 0xc8, 0xfa, 0xc7, 0x6b, 0x38, 0xff, 0x03, 0x6f, 0xe8, - 0xf9, 0xff, 0xa3, 0x8b, 0x74, 0xfe, 0x5b, 0xf7, 0x2b, 0x7d, 0xbd, 0xfe, - 0xaf, 0xed, 0xcf, 0xff, 0x57, 0xfe, 0xbf, 0xd7, 0x09, 0xd9, 0xc3, 0xa1, - 0xf3, 0x2b, 0xf7, 0xbf, 0x77, 0x91, 0xfc, 0x5f, 0xf2, 0xf7, 0x16, 0x7d, - 0x52, 0xe2, 0x5f, 0x2b, 0x7b, 0xe9, 0xb7, 0x7b, 0xbf, 0x5b, 0x3f, 0xcf, - 0x45, 0xea, 0xf3, 0xf2, 0x9a, 0xbd, 0x1c, 0xb5, 0xe7, 0x72, 0xf8, 0xf7, - 0xd8, 0xdf, 0x2b, 0x44, 0x7d, 0xb1, 0xac, 0x47, 0xae, 0xfa, 0xba, 0xbc, - 0x3d, 0xa6, 0x5f, 0x4b, 0xfe, 0x89, 0xd7, 0x70, 0xff, 0x9f, 0x97, 0xa4, - 0xff, 0x07, 0xf1, 0x36, 0x59, 0x5f, 0x1f, 0x27, 0x8f, 0x0d, 0xf5, 0x7d, - 0x0e, 0xf7, 0xc7, 0x8d, 0x87, 0xdf, 0x71, 0x26, 0xd8, 0xff, 0xfd, 0xda, - 0xfe, 0x2b, 0x7f, 0xe9, 0xaf, 0x7e, 0x3b, 0xf7, 0x5b, 0xff, 0xb4, 0xda, - 0xeb, 0x7f, 0x12, 0xb3, 0xde, 0x28, 0x7a, 0xde, 0x2e, 0xda, 0x7e, 0xb6, - 0x5d, 0xff, 0xe4, 0xfd, 0xfb, 0xf5, 0xef, 0xf6, 0xef, 0x0d, 0x39, 0xff, - 0xc2, 0x7b, 0x29, 0xf7, 0x9f, 0x9f, 0xff, 0x63, 0xc3, 0xfd, 0xda, 0xf9, - 0xef, 0x56, 0xfc, 0x20, 0x13, 0xe1, 0x0f, 0x8b, 0xa6, 0x97, 0x08, 0x3d, - 0xb6, 0x9c, 0xff, 0x86, 0xce, 0x8f, 0x7e, 0x77, 0xfe, 0x5f, 0xe3, 0xf9, - 0xd7, 0xf6, 0x37, 0xe6, 0xfc, 0x47, 0xf8, 0xff, 0xe2, 0xf6, 0xf3, 0x37, - 0xef, 0xbc, 0x47, 0xf0, 0x5e, 0x54, 0xbc, 0xee, 0xbf, 0xa2, 0xfd, 0x4d, - 0x4c, 0x11, 0xaf, 0x44, 0x1c, 0xdf, 0x7b, 0xcc, 0xe4, 0xf9, 0x4a, 0xd9, - 0x48, 0x7c, 0x63, 0x46, 0xc3, 0x6f, 0x57, 0xef, 0x2a, 0xf0, 0x81, 0x82, - 0x05, 0xd1, 0xe3, 0x07, 0xf7, 0xeb, 0xf8, 0x7b, 0x77, 0x76, 0xbd, 0x45, - 0xe2, 0x07, 0xcd, 0x00, 0x5e, 0xff, 0xbc, 0xd7, 0xa0, 0xf5, 0xcf, 0x00, - 0x16, 0x0c, 0x3f, 0xd4, 0xff, 0x4c, 0xe6, 0xbf, 0x19, 0x32, 0xdf, 0x8a, - 0x3e, 0x90, 0x42, 0x6e, 0x7b, 0x2a, 0x7f, 0xb5, 0x91, 0x77, 0xda, 0xfb, - 0xef, 0x65, 0x7d, 0x2e, 0x07, 0x2a, 0x3a, 0x5c, 0xfd, 0x16, 0x5c, 0x07, - 0x9a, 0x79, 0x85, 0x87, 0xed, 0xcb, 0xf1, 0x3d, 0x19, 0x3f, 0x9c, 0x3e, - 0x0a, 0xeb, 0xa1, 0xf8, 0xa1, 0x5e, 0xdf, 0xfb, 0x84, 0xc2, 0xcf, 0xdd, - 0x42, 0xfb, 0x57, 0x21, 0xcf, 0x06, 0xce, 0x98, 0x41, 0xeb, 0xd7, 0x78, - 0x3d, 0xcd, 0x23, 0xa1, 0x7a, 0xc8, 0xdd, 0x32, 0x5f, 0xe6, 0x17, 0x1c, - 0xbf, 0x96, 0xcf, 0x6b, 0xdc, 0x68, 0xf1, 0xe7, 0xb7, 0xe9, 0x07, 0xa5, - 0xea, 0xff, 0x45, 0x3f, 0x28, 0x2f, 0xbd, 0xbe, 0xb1, 0xb1, 0x26, 0x21, - 0x9f, 0x23, 0x12, 0x9f, 0x06, 0x99, 0x48, 0x7e, 0x5b, 0x03, 0x63, 0x0b, - 0xae, 0x22, 0x2f, 0xb8, 0xe1, 0xdf, 0x01, 0x98, 0xca, 0x7d, 0xa2, 0x97, - 0xfd, 0x7a, 0xeb, 0x2e, 0xa6, 0x6a, 0xe2, 0x61, 0xb6, 0xff, 0x13, 0x9f, - 0x31, 0xe0, 0x3d, 0x10, 0x87, 0xea, 0xe9, 0x65, 0xbd, 0x3b, 0xf0, 0x59, - 0xfc, 0xd7, 0x37, 0x32, 0x61, 0xfc, 0x59, 0xd0, 0x50, 0xfb, 0xc7, 0xde, - 0x26, 0xe3, 0x7c, 0xc3, 0x24, 0xeb, 0xe3, 0xc4, 0xd5, 0xcb, 0x6f, 0x43, - 0xbc, 0x3e, 0x4f, 0xe0, 0xe9, 0x46, 0xf1, 0xa3, 0x4d, 0x7d, 0xbf, 0x5a, - 0x7f, 0xff, 0x2c, 0x02, 0x7e, 0x06, 0x05, 0xf5, 0xf5, 0xfc, 0x5c, 0xaa, - 0xe7, 0x7b, 0xa7, 0x44, 0xfc, 0x65, 0x2f, 0x60, 0xf4, 0x16, 0xf4, 0x6f, - 0xd1, 0xf0, 0xf4, 0x03, 0x7a, 0x79, 0x96, 0xa6, 0xe6, 0x55, 0xbf, 0x01, - 0xcf, 0xc1, 0xe6, 0x34, 0xcf, 0x7f, 0x1f, 0x30, 0x93, 0xe9, 0x4b, 0xe2, - 0xbf, 0x3e, 0xf5, 0xe3, 0xcf, 0xe7, 0x81, 0x8e, 0xdf, 0x80, 0xda, 0xd4, - 0xaf, 0x0a, 0x79, 0x84, 0x21, 0xdf, 0x5f, 0x9c, 0x9e, 0x3f, 0xa9, 0xf2, - 0xdf, 0x12, 0xce, 0xb7, 0xc0, 0xb3, 0x91, 0xe7, 0xb3, 0x71, 0x0b, 0xaf, - 0x17, 0x2a, 0x3e, 0xb4, 0xeb, 0x53, 0xcf, 0x17, 0x33, 0xb5, 0x63, 0xbb, - 0x58, 0xde, 0x21, 0xfe, 0x9e, 0x85, 0x28, 0x7e, 0x8d, 0x49, 0xa7, 0x5a, - 0x66, 0xcf, 0x53, 0xf9, 0x3e, 0x48, 0xef, 0x97, 0x39, 0xa6, 0xe2, 0x6f, - 0xbe, 0x53, 0x63, 0xf7, 0xbb, 0xe4, 0x7e, 0xf9, 0xfe, 0xbe, 0xb0, 0x6f, - 0x1c, 0x58, 0xc0, 0xbe, 0xeb, 0x19, 0x60, 0xf0, 0x55, 0x86, 0xb7, 0x90, - 0x74, 0x1e, 0xaf, 0x0a, 0xdb, 0x43, 0x21, 0x7f, 0x09, 0x00, 0xa7, 0x40, - 0x78, 0x3f, 0x82, 0x7a, 0x67, 0x41, 0x4f, 0xe6, 0x34, 0xf0, 0x29, 0xf6, - 0xe1, 0xfc, 0xdd, 0xac, 0x1f, 0xc5, 0x8a, 0xfd, 0x2c, 0xc5, 0x08, 0x5f, - 0xcf, 0xeb, 0xd2, 0x31, 0x72, 0x01, 0x5e, 0xf7, 0xf4, 0x4d, 0x30, 0x58, - 0xdf, 0x55, 0x12, 0x6f, 0x5f, 0xc4, 0xdf, 0x9f, 0xd5, 0xc6, 0x93, 0xf0, - 0x5e, 0xc1, 0xf9, 0xd7, 0xe3, 0xd1, 0x7c, 0xfd, 0x26, 0x6c, 0xd1, 0x0f, - 0xaf, 0x8e, 0xd1, 0x7d, 0xe4, 0x7a, 0xea, 0x47, 0x73, 0xe6, 0x3c, 0xf4, - 0x6b, 0x71, 0xf4, 0xb2, 0x0d, 0x6d, 0xc9, 0x10, 0x7a, 0x87, 0xe7, 0x40, - 0xb3, 0x9a, 0x8c, 0x77, 0x70, 0x53, 0x02, 0xbe, 0x1c, 0xe7, 0x0f, 0x1c, - 0x7f, 0x81, 0xf7, 0x83, 0x91, 0xeb, 0x41, 0xf8, 0x48, 0x53, 0xc5, 0xe3, - 0xb1, 0x91, 0x80, 0x6f, 0xc0, 0xd6, 0xb3, 0x91, 0x41, 0xc1, 0xf3, 0x2e, - 0x0c, 0x3f, 0x04, 0xda, 0x17, 0x0b, 0x3f, 0x64, 0x46, 0xab, 0xcf, 0x0e, - 0xea, 0x7b, 0xe7, 0x0d, 0xf6, 0xfd, 0x10, 0xc5, 0x4f, 0xab, 0xd1, 0xfa, - 0x5d, 0xd3, 0x9b, 0x90, 0x78, 0xeb, 0xf4, 0x23, 0xf0, 0x7b, 0x24, 0xfd, - 0x95, 0xe7, 0xa3, 0xf8, 0x3c, 0x7c, 0xbe, 0x1e, 0xe5, 0x67, 0x99, 0x82, - 0xa4, 0xd7, 0x1c, 0xf0, 0xb3, 0xb4, 0x5f, 0x01, 0x0d, 0xd8, 0xbf, 0x09, - 0xb2, 0x42, 0x46, 0xf6, 0x59, 0xa7, 0xfa, 0xef, 0x49, 0xfc, 0xf2, 0x31, - 0x41, 0x5f, 0xa0, 0x91, 0x8e, 0xcf, 0xbe, 0x5d, 0xcf, 0x57, 0x52, 0xf6, - 0xb5, 0x47, 0xe3, 0xb6, 0x6c, 0x3f, 0xf2, 0xe1, 0xfa, 0x47, 0xf2, 0x40, - 0xb4, 0x8c, 0xc8, 0x83, 0x91, 0x01, 0x2a, 0xe7, 0xc8, 0xf8, 0x7b, 0x33, - 0x2d, 0xfc, 0xdf, 0xcf, 0x64, 0x22, 0xf1, 0x33, 0xbc, 0x36, 0xb2, 0x9f, - 0x2d, 0xf5, 0x09, 0x62, 0x3d, 0x82, 0x78, 0xbb, 0xc7, 0xf0, 0xb4, 0x92, - 0xf2, 0xbf, 0xd7, 0xaa, 0xfc, 0xe4, 0xd7, 0xb7, 0x7e, 0xbe, 0x15, 0xaf, - 0x57, 0x1f, 0xdf, 0x8f, 0xcc, 0xbf, 0x87, 0xe3, 0xf5, 0xe2, 0x09, 0x6f, - 0xf0, 0x67, 0x7f, 0x7f, 0x1c, 0x56, 0x5c, 0x32, 0x1e, 0xa3, 0x97, 0x33, - 0xc0, 0xc5, 0xc8, 0xab, 0x63, 0x8f, 0xe2, 0xcb, 0xd4, 0x0a, 0xc0, 0x21, - 0xf2, 0x85, 0xc8, 0xd3, 0x6f, 0x5a, 0x20, 0x5b, 0xbf, 0xb3, 0x54, 0xdd, - 0x1b, 0xd2, 0xb7, 0xea, 0x5d, 0x89, 0xf8, 0x82, 0x75, 0xe4, 0xcf, 0x18, - 0x39, 0x54, 0x2b, 0x82, 0xf9, 0x7b, 0x01, 0xcd, 0x57, 0x2d, 0x6d, 0x9b, - 0x5b, 0xa0, 0x8b, 0x7d, 0xf0, 0x28, 0xbf, 0xbf, 0x58, 0x63, 0xf8, 0x61, - 0xe0, 0xe5, 0x8a, 0x27, 0xf0, 0xbb, 0xfc, 0x20, 0x5f, 0xa9, 0x0e, 0xeb, - 0xfd, 0x60, 0xdf, 0x51, 0x3f, 0x77, 0x90, 0xdc, 0xb3, 0xd7, 0xf6, 0xbe, - 0x4f, 0xf9, 0x3d, 0xc5, 0x2f, 0xa1, 0xf2, 0xfe, 0x9c, 0x59, 0x66, 0xfc, - 0xec, 0x1a, 0xe9, 0x3f, 0x61, 0xf5, 0x49, 0x3e, 0xcb, 0x97, 0xfa, 0x0c, - 0x59, 0xfc, 0xbd, 0x26, 0xaf, 0x3f, 0x97, 0x6f, 0x2c, 0xf1, 0xe0, 0xdb, - 0xeb, 0x7f, 0x00, 0xcc, 0x65, 0x69, 0xfd, 0x1b, 0x3f, 0xef, 0x6f, 0x91, - 0xe3, 0x17, 0x63, 0xf3, 0x49, 0xe4, 0xfd, 0x34, 0xbe, 0xce, 0xee, 0xdf, - 0x93, 0x8a, 0xe7, 0x12, 0xe0, 0x09, 0xc8, 0xf3, 0x2f, 0xdf, 0xf7, 0x6c, - 0x67, 0xf3, 0x23, 0xfa, 0xac, 0xf8, 0x77, 0x2e, 0x7e, 0x7c, 0x3f, 0x62, - 0x4f, 0xb5, 0x1b, 0xef, 0xae, 0x36, 0xf9, 0xee, 0x7e, 0x24, 0x1f, 0xad, - 0xdd, 0x78, 0xb7, 0xa6, 0xe3, 0xc5, 0x30, 0xdc, 0x41, 0x21, 0xcf, 0xea, - 0x29, 0xfd, 0x5f, 0xe7, 0x65, 0xbe, 0xc2, 0xcd, 0x92, 0xb4, 0xe2, 0xf1, - 0xb2, 0xc8, 0xd3, 0xf2, 0x5a, 0x7d, 0x07, 0xff, 0x7c, 0x45, 0xf1, 0x73, - 0x88, 0xb4, 0xe7, 0xc9, 0x03, 0x4c, 0xec, 0xb3, 0x32, 0x24, 0xf6, 0x04, - 0x75, 0xa8, 0xa3, 0x71, 0xc3, 0xfd, 0xd5, 0x5b, 0x69, 0x2b, 0xd5, 0x39, - 0xe9, 0xc9, 0x2d, 0x6f, 0x64, 0xe7, 0x4c, 0xe2, 0xe7, 0x9f, 0x5f, 0x58, - 0x58, 0x58, 0x42, 0xfe, 0xb8, 0xa3, 0x67, 0x7f, 0x39, 0x7f, 0x6a, 0x69, - 0x89, 0x65, 0x34, 0x95, 0x8f, 0xed, 0xae, 0xa0, 0xf1, 0xba, 0xe9, 0xcd, - 0x6c, 0x62, 0x07, 0x80, 0xe1, 0xcd, 0xdd, 0x42, 0x36, 0x86, 0xf0, 0x23, - 0xf7, 0x2f, 0xaa, 0x00, 0x77, 0x79, 0xf5, 0x03, 0xa3, 0x18, 0xe2, 0x81, - 0xc1, 0xea, 0x44, 0xef, 0x08, 0x3a, 0xdb, 0x6d, 0xe2, 0x55, 0x2e, 0x68, - 0x4c, 0xdb, 0x30, 0xbf, 0x76, 0xa8, 0xba, 0x30, 0x55, 0xf2, 0xe6, 0x28, - 0xdb, 0x66, 0x78, 0x68, 0x25, 0x68, 0xd4, 0x69, 0xfe, 0xbe, 0x6b, 0x41, - 0xe0, 0xdf, 0x64, 0x00, 0xdf, 0xe7, 0xfd, 0x39, 0xf3, 0x43, 0xe4, 0x0d, - 0xab, 0x5d, 0x5b, 0x7f, 0xf0, 0x0a, 0x04, 0x33, 0x70, 0x6e, 0x04, 0x1c, - 0x85, 0xfe, 0x07, 0xb7, 0x1a, 0x12, 0x0f, 0xc9, 0xf1, 0x46, 0x69, 0x33, - 0x40, 0xe3, 0xf8, 0x0d, 0xaf, 0x18, 0x14, 0xff, 0xe2, 0xb3, 0x5b, 0x55, - 0x01, 0x39, 0xe8, 0x67, 0xfd, 0x98, 0x86, 0x22, 0xf2, 0x5b, 0xf1, 0x1f, - 0xd8, 0x86, 0xff, 0x88, 0xfb, 0x31, 0x10, 0xfd, 0x4e, 0xdb, 0xc8, 0x9f, - 0x45, 0xe6, 0xff, 0x2b, 0xfc, 0xd8, 0x82, 0xce, 0xaf, 0xcc, 0x07, 0x51, - 0xe8, 0x9a, 0xa7, 0x1a, 0x16, 0xc1, 0xaa, 0x2d, 0x6b, 0xa7, 0x29, 0xdb, - 0xc0, 0xf9, 0xda, 0xf3, 0x27, 0x28, 0xbe, 0xc7, 0x13, 0x64, 0x26, 0x67, - 0x0c, 0x58, 0xc1, 0xb0, 0x80, 0xcc, 0xa5, 0x5e, 0x06, 0x8c, 0xf0, 0xfc, - 0xdf, 0xe5, 0x53, 0xbd, 0x59, 0x6c, 0x0c, 0xe0, 0x4b, 0x8f, 0x86, 0xf8, - 0x53, 0x2e, 0x99, 0x3f, 0x81, 0xe1, 0x19, 0xc3, 0x5c, 0x66, 0x15, 0x41, - 0xe9, 0x55, 0xd0, 0x9c, 0x82, 0x87, 0x56, 0xdc, 0x5c, 0xa7, 0xfc, 0x09, - 0x3f, 0xd5, 0x10, 0xf7, 0x43, 0x8a, 0xe7, 0x34, 0x45, 0xeb, 0x45, 0x6c, - 0xc6, 0x6f, 0x72, 0xcf, 0x1d, 0xe3, 0x78, 0x54, 0x7e, 0xc6, 0xab, 0xd0, - 0xf9, 0xef, 0xd2, 0xe6, 0x4b, 0xd4, 0x3f, 0xe3, 0x06, 0x5a, 0x8f, 0x01, - 0xae, 0x40, 0xe5, 0x83, 0x6c, 0xbd, 0xe5, 0x79, 0xcc, 0xf0, 0x7e, 0x6e, - 0x94, 0x3f, 0x09, 0x7e, 0xc6, 0xf8, 0xd3, 0x66, 0x79, 0xfe, 0x56, 0xf1, - 0xfa, 0xca, 0x3c, 0xda, 0xc2, 0x5a, 0xac, 0x9e, 0xb3, 0x3c, 0xb6, 0x3e, - 0x35, 0xb1, 0x1f, 0xfd, 0x1d, 0xf1, 0x07, 0xda, 0x3f, 0x68, 0xf4, 0x56, - 0x1a, 0x65, 0x58, 0xcf, 0xe5, 0x21, 0xd8, 0x20, 0xc7, 0xbf, 0x24, 0x16, - 0xbf, 0x9f, 0xde, 0x7f, 0x0d, 0xb9, 0x5f, 0xe5, 0x07, 0xc9, 0xfb, 0x29, - 0xf0, 0x4f, 0x6c, 0xff, 0x1a, 0xc9, 0x4f, 0x85, 0xfc, 0x32, 0xc5, 0xfc, - 0x8e, 0x74, 0xc8, 0xbf, 0xd4, 0xf8, 0xcb, 0xd2, 0xc7, 0x3f, 0x1b, 0x19, - 0xbf, 0x1f, 0x2e, 0x72, 0xfc, 0xee, 0x36, 0xf3, 0xb7, 0x22, 0xf3, 0x5f, - 0xec, 0xf8, 0x4b, 0xe2, 0xc7, 0x57, 0xf3, 0x8d, 0xb5, 0x2f, 0x5a, 0xf0, - 0x4e, 0x82, 0xfd, 0xc9, 0xa7, 0x8f, 0x77, 0xa4, 0x43, 0xbc, 0xae, 0x7b, - 0xda, 0xc8, 0x07, 0x35, 0x3f, 0x23, 0x69, 0x7e, 0xd7, 0xc6, 0xcf, 0x2f, - 0xd3, 0x66, 0x7e, 0x89, 0xe3, 0x5d, 0x1d, 0x3b, 0x5e, 0x92, 0x7c, 0xa8, - 0x05, 0xef, 0x5b, 0x8f, 0x1f, 0x8f, 0xe5, 0x67, 0x2a, 0xf9, 0x70, 0x45, - 0xaa, 0x7c, 0x60, 0xf5, 0xb4, 0x4e, 0xab, 0x7c, 0xf0, 0x54, 0xbf, 0x03, - 0x0b, 0x86, 0x9f, 0x17, 0x8c, 0xff, 0x56, 0xad, 0xff, 0x9b, 0x94, 0x07, - 0x5c, 0x3f, 0x5d, 0xa5, 0xf4, 0xd3, 0x52, 0x95, 0xa1, 0x75, 0xe2, 0x32, - 0xe1, 0xfb, 0x03, 0x2b, 0x1c, 0xcc, 0xb4, 0xbe, 0xc6, 0x50, 0x05, 0x65, - 0x07, 0x68, 0x49, 0xb0, 0xb4, 0x0f, 0x94, 0xfc, 0xf8, 0xce, 0x36, 0xe8, - 0x36, 0xae, 0xec, 0xaf, 0x56, 0x76, 0xed, 0x06, 0xde, 0x9b, 0x0a, 0x38, - 0xc0, 0x93, 0xe4, 0xfa, 0x58, 0x99, 0xd5, 0x47, 0x4f, 0x7e, 0xbb, 0x92, - 0xdb, 0x44, 0x3b, 0xa2, 0xd5, 0x9f, 0xb3, 0xa1, 0x51, 0xde, 0xd1, 0x8f, - 0x6c, 0x22, 0x3f, 0x4a, 0x4b, 0x4c, 0x6c, 0x12, 0x5b, 0xeb, 0xa1, 0x87, - 0xec, 0xfc, 0xda, 0x57, 0xd6, 0x83, 0x66, 0x17, 0xb5, 0xdf, 0x9e, 0x97, - 0xf5, 0x61, 0x0b, 0x97, 0x11, 0xf5, 0x0e, 0x51, 0x16, 0x0d, 0x1e, 0x84, - 0x54, 0x9f, 0xc6, 0x44, 0x7f, 0x1f, 0x00, 0x27, 0x91, 0xd9, 0x05, 0xdc, - 0x75, 0xd5, 0x7f, 0x61, 0xfa, 0xfd, 0x3b, 0xc0, 0xf5, 0x06, 0x2a, 0x78, - 0xb7, 0xac, 0x79, 0xe1, 0x0f, 0x0c, 0xca, 0x2f, 0xbb, 0xc1, 0x49, 0x2a, - 0x5f, 0x76, 0xad, 0x41, 0x4f, 0x23, 0x5c, 0x83, 0x73, 0xeb, 0x86, 0x89, - 0xe5, 0x67, 0x70, 0x1f, 0xc4, 0x01, 0xc0, 0xf0, 0x93, 0xac, 0x7a, 0xd1, - 0x88, 0xe1, 0x9f, 0x65, 0x70, 0xa4, 0x41, 0xbf, 0xc7, 0x66, 0x79, 0x49, - 0xdc, 0xf7, 0x3e, 0xf8, 0x0e, 0xfb, 0x1e, 0x98, 0x38, 0xf6, 0x7b, 0x0f, - 0x34, 0xd9, 0xf7, 0xca, 0xdf, 0x82, 0x22, 0xfd, 0x7a, 0x40, 0x04, 0xaf, - 0x3c, 0xb0, 0x77, 0x97, 0x80, 0xda, 0xbf, 0xc2, 0xd2, 0x55, 0xb1, 0xf2, - 0x88, 0xaa, 0xe0, 0xe1, 0x49, 0x44, 0xe9, 0xab, 0x65, 0x3f, 0x5b, 0xea, - 0x17, 0x1a, 0xac, 0x96, 0xdb, 0xe5, 0x85, 0xe3, 0xca, 0xfe, 0x3c, 0xd2, - 0x4b, 0xe5, 0xbb, 0xa2, 0x1f, 0xd1, 0xa3, 0xef, 0x4e, 0xa7, 0x9b, 0x0a, - 0xa9, 0x89, 0xd1, 0xfb, 0xe1, 0x26, 0x86, 0x9f, 0xd4, 0xf2, 0x3c, 0x6a, - 0x7f, 0xf4, 0x84, 0xe8, 0x8f, 0xcc, 0x6e, 0x98, 0xf1, 0x77, 0x91, 0x8f, - 0x4a, 0x61, 0x96, 0xdf, 0x0c, 0x5a, 0xeb, 0xe1, 0x77, 0xb2, 0x96, 0x18, - 0x8c, 0x1e, 0x73, 0xd4, 0x44, 0x1a, 0xe0, 0xdf, 0x8f, 0x58, 0x82, 0xd8, - 0x77, 0x31, 0x1c, 0x18, 0xfc, 0x4f, 0x02, 0xcf, 0x76, 0xc2, 0xe3, 0xd7, - 0x7f, 0x0b, 0xf9, 0xf2, 0x0d, 0xf5, 0x72, 0x7f, 0xc2, 0x34, 0xe2, 0x37, - 0x58, 0x7b, 0x54, 0xbd, 0x85, 0x8c, 0x75, 0xff, 0xf2, 0xb2, 0x84, 0xfa, - 0xfc, 0x8d, 0x25, 0x4d, 0x5f, 0x95, 0x5b, 0x67, 0x24, 0xd5, 0xf3, 0xb7, - 0x9e, 0x8f, 0xe5, 0xea, 0x7c, 0xc4, 0xf0, 0xab, 0x4b, 0x1a, 0xce, 0xfa, - 0xda, 0x7b, 0xa5, 0x7c, 0x05, 0x66, 0x83, 0x19, 0xdd, 0x89, 0xf7, 0x77, - 0x58, 0xef, 0xa1, 0xea, 0x1d, 0xa2, 0xfb, 0x19, 0xad, 0x7f, 0xc0, 0xb4, - 0x3e, 0xd4, 0xcc, 0x08, 0x7b, 0x94, 0x5c, 0x7f, 0x09, 0x17, 0x0e, 0x89, - 0x7c, 0x5c, 0x46, 0xaf, 0x4d, 0xaa, 0x70, 0x04, 0xf3, 0x91, 0xef, 0x2f, - 0xfa, 0xdf, 0x40, 0xb3, 0x09, 0xf8, 0x7c, 0xd7, 0xc4, 0xcd, 0x57, 0xf5, - 0x1f, 0xc8, 0x75, 0xe4, 0xaf, 0x57, 0xd7, 0x77, 0x74, 0x78, 0x7f, 0x52, - 0x3d, 0x84, 0x07, 0xde, 0xcc, 0xed, 0xcb, 0x48, 0x3f, 0x3a, 0x89, 0xd7, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-11@freebsd.org Thu May 10 23:58:34 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 630F6FABC2F; Thu, 10 May 2018 23:58:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 161E969963; Thu, 10 May 2018 23:58:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EAC63276FE; Thu, 10 May 2018 23:58:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4ANwXGL016059; Thu, 10 May 2018 23:58:33 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4ANwX6W016056; Thu, 10 May 2018 23:58:33 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805102358.w4ANwX6W016056@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 10 May 2018 23:58:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333474 - in stable/11: etc/pkg sys/conf X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable/11: etc/pkg sys/conf X-SVN-Commit-Revision: 333474 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 23:58:34 -0000 Author: gjb Date: Thu May 10 23:58:33 2018 New Revision: 333474 URL: https://svnweb.freebsd.org/changeset/base/333474 Log: Rename stable/11 from PRERELEASE to BETA1 as part of the 11.2-RELEASE cycle. Update the default pkg(8) repository to the 'quarterly' branch to prevent further 11.2 builds from downgrading packages when invoking 'pkg upgrade' for the duration of the cycle. Approved by: re (implicit) Sponsored by: The FreeBSD Foundation Modified: stable/11/etc/pkg/FreeBSD.conf stable/11/sys/conf/newvers.sh Modified: stable/11/etc/pkg/FreeBSD.conf ============================================================================== --- stable/11/etc/pkg/FreeBSD.conf Thu May 10 21:46:58 2018 (r333473) +++ stable/11/etc/pkg/FreeBSD.conf Thu May 10 23:58:33 2018 (r333474) @@ -8,7 +8,7 @@ # FreeBSD: { - url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", + url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", Modified: stable/11/sys/conf/newvers.sh ============================================================================== --- stable/11/sys/conf/newvers.sh Thu May 10 21:46:58 2018 (r333473) +++ stable/11/sys/conf/newvers.sh Thu May 10 23:58:33 2018 (r333474) @@ -44,7 +44,7 @@ TYPE="FreeBSD" REVISION="11.2" -BRANCH="PRERELEASE" +BRANCH="BETA1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-stable-11@freebsd.org Fri May 11 20:40:27 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09EC2FCBE8C; Fri, 11 May 2018 20:40:27 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B148C6A819; Fri, 11 May 2018 20:40:26 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 926D1148D0; Fri, 11 May 2018 20:40:26 +0000 (UTC) (envelope-from shurd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BKeQ3U053077; Fri, 11 May 2018 20:40:26 GMT (envelope-from shurd@FreeBSD.org) Received: (from shurd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BKeQvO053076; Fri, 11 May 2018 20:40:26 GMT (envelope-from shurd@FreeBSD.org) Message-Id: <201805112040.w4BKeQvO053076@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: shurd set sender to shurd@FreeBSD.org using -f From: Stephen Hurd Date: Fri, 11 May 2018 20:40:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333503 - stable/11/sys/net X-SVN-Group: stable-11 X-SVN-Commit-Author: shurd X-SVN-Commit-Paths: stable/11/sys/net X-SVN-Commit-Revision: 333503 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 20:40:27 -0000 Author: shurd Date: Fri May 11 20:40:26 2018 New Revision: 333503 URL: https://svnweb.freebsd.org/changeset/base/333503 Log: MFC r333329, r333366, r333373 r333329: Fix off-by-one error requesting tx interrupt r333366: Cleanup queues when iflib_device_register fails r333373: Log iflib_tx_structures_setup failure in function Approved by: re (gjb@) Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15354 Modified: stable/11/sys/net/iflib.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/net/iflib.c ============================================================================== --- stable/11/sys/net/iflib.c Fri May 11 20:08:28 2018 (r333502) +++ stable/11/sys/net/iflib.c Fri May 11 20:40:26 2018 (r333503) @@ -3269,7 +3269,7 @@ defrag: */ txq->ift_rs_pending += nsegs + 1; if (txq->ift_rs_pending > TXQ_MAX_RS_DEFERRED(txq) || - iflib_no_tx_batch || (TXQ_AVAIL(txq) - nsegs - 1) <= MAX_TX_DESC(ctx)) { + iflib_no_tx_batch || (TXQ_AVAIL(txq) - nsegs) <= MAX_TX_DESC(ctx) + 2) { pi.ipi_flags |= IPI_TX_INTR; txq->ift_rs_pending = 0; } @@ -4342,10 +4342,8 @@ iflib_device_register(device_t dev, void *sc, if_share goto fail; } - if ((err = iflib_qset_structures_setup(ctx))) { - device_printf(dev, "qset structure setup failed %d\n", err); + if ((err = iflib_qset_structures_setup(ctx))) goto fail_queues; - } /* * Group taskqueues aren't properly set up until SMP is started, * so we disable interrupts until we can handle them post @@ -4392,7 +4390,8 @@ fail_intr_free: if (scctx->isc_intr == IFLIB_INTR_MSIX || scctx->isc_intr == IFLIB_INTR_MSI) pci_release_msi(ctx->ifc_dev); fail_queues: - /* XXX free queues */ + iflib_tx_structures_free(ctx); + iflib_rx_structures_free(ctx); fail: IFDI_DETACH(ctx); return (err); @@ -5003,14 +5002,18 @@ iflib_qset_structures_setup(if_ctx_t ctx) { int err; - if ((err = iflib_tx_structures_setup(ctx)) != 0) + /* + * It is expected that the caller takes care of freeing queues if this + * fails. + */ + if ((err = iflib_tx_structures_setup(ctx)) != 0) { + device_printf(ctx->ifc_dev, "iflib_tx_structures_setup failed: %d\n", err); return (err); + } - if ((err = iflib_rx_structures_setup(ctx)) != 0) { + if ((err = iflib_rx_structures_setup(ctx)) != 0) device_printf(ctx->ifc_dev, "iflib_rx_structures_setup failed: %d\n", err); - iflib_tx_structures_free(ctx); - iflib_rx_structures_free(ctx); - } + return (err); } From owner-svn-src-stable-11@freebsd.org Fri May 11 21:46:54 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5F88FCF755; Fri, 11 May 2018 21:46:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 64D6C7A92C; Fri, 11 May 2018 21:46:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3FF181541E; Fri, 11 May 2018 21:46:54 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4BLkrjY088272; Fri, 11 May 2018 21:46:53 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4BLkr7l088271; Fri, 11 May 2018 21:46:53 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201805112146.w4BLkr7l088271@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 11 May 2018 21:46:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333506 - stable/11/release/arm X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: stable/11/release/arm X-SVN-Commit-Revision: 333506 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 21:46:54 -0000 Author: gjb Date: Fri May 11 21:46:53 2018 New Revision: 333506 URL: https://svnweb.freebsd.org/changeset/base/333506 Log: Create a sun7i-a20-bananapi.dtb hard link to bananapi.dtb to fix a boot failure on the Banana Pi SoC. This is a direct commit to stable/11, as the sun7i-a20-bananapi.dtb file exists in head, but appears to have been part of a larger rework of dtb-related files that may have larger consequences than hard link creation. Note: creating a hard link to dtb files was an original fix in 12-CURRENT beforehand, introduced in r319603. Approved by: re (marius) Sponsored by: The FreeBSD Foundation Modified: stable/11/release/arm/BANANAPI.conf Modified: stable/11/release/arm/BANANAPI.conf ============================================================================== --- stable/11/release/arm/BANANAPI.conf Fri May 11 21:42:27 2018 (r333505) +++ stable/11/release/arm/BANANAPI.conf Fri May 11 21:46:53 2018 (r333506) @@ -30,6 +30,8 @@ arm_install_uboot() { chroot ${CHROOTDIR} mount /dev/${mddev}s2a ${UFSMOUNT} chroot ${CHROOTDIR} cp -p ${UFSMOUNT}/boot/ubldr.bin \ ${FATMOUNT}/ubldr.bin + chroot ${CHROOTDIR} ln ${UFSMOUNT}/boot/dtb/bananapi.dtb \ + ${UFSMOUNT}/boot/dtb/sun7i-a20-bananapi.dtb chroot ${CHROOTDIR} touch ${UFSMOUNT}/firstboot sync umount_loop ${CHROOTDIR}/${FATMOUNT} From owner-svn-src-stable-11@freebsd.org Fri May 11 23:31:48 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7F500FD42D5; Fri, 11 May 2018 23:31:48 +0000 (UTC) (envelope-from jonlooney@gmail.com) Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F040B732DE; Fri, 11 May 2018 23:31:47 +0000 (UTC) (envelope-from jonlooney@gmail.com) Received: by mail-wm0-f54.google.com with SMTP id x12-v6so4555657wmc.0; Fri, 11 May 2018 16:31:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=7N5lC/K43JaJu9nz9g2seXAsGbunWbRNMCv08Oh7MIM=; b=majeALttW6f6FHHQSeHRrImn4nJm53eIgFN0OXv5FPJA5ni65lpxyeC15owJofZF+Y CzUowAwNJ6BOuQdQ8tOm4mxjPyEeAorF10Y3o6ezqk+cy6E7gLUnZImtXYiJgjswAAMg 9iPNgzZWv6rs3ND7toXn3oimCFeAgR2DilTQlTFC8w6lFCI1iLyKwx6mZoXn+jonhAP9 Ff6NqyxbmN12g9nd+DA8nJmIUCyevU9nASyT/faN9q9lUxL3Psw1fY6Rm31Wo1eWmd22 Le5weqPAbE8tnGPmcUPF+qmPK4KXeS9HvlVgatSetI9KA/cG1klc/SBm/UOES2ZRe/OH Wb+g== X-Gm-Message-State: ALKqPwf6TZVwB8Ujoixv6XTSK66Jwa2D4JqO2shMKdhPBau2Ee3A36rT 9pXJ6iOXdKS5tmnTcVHZ6sNiMLCM X-Google-Smtp-Source: AB8JxZrKNENKVGyJ5t5AGqNNpYTk2pbJCLfJXeakTpxPubz7R8IhSVqLZLrfGJxhUYoINSYLe63fqg== X-Received: by 2002:a50:8d59:: with SMTP id t25-v6mr783681edt.238.1526081501587; Fri, 11 May 2018 16:31:41 -0700 (PDT) Received: from mail-wr0-f175.google.com (mail-wr0-f175.google.com. [209.85.128.175]) by smtp.gmail.com with ESMTPSA id g7-v6sm2195628edf.90.2018.05.11.16.31.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 16:31:41 -0700 (PDT) Received: by mail-wr0-f175.google.com with SMTP id 94-v6so6767832wrf.5; Fri, 11 May 2018 16:31:41 -0700 (PDT) X-Received: by 2002:adf:b583:: with SMTP id c3-v6mr651794wre.228.1526081501322; Fri, 11 May 2018 16:31:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.197.74 with HTTP; Fri, 11 May 2018 16:31:40 -0700 (PDT) In-Reply-To: <201805112040.w4BKeQvO053076@repo.freebsd.org> References: <201805112040.w4BKeQvO053076@repo.freebsd.org> From: "Jonathan T. Looney" Date: Fri, 11 May 2018 19:31:40 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r333503 - stable/11/sys/net To: Stephen Hurd Cc: src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 23:31:48 -0000 On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > Author: shurd > Date: Fri May 11 20:40:26 2018 > New Revision: 333503 > URL: https://svnweb.freebsd.org/changeset/base/333503 > > Log: > MFC r333329, r333366, r333373 > > r333329: Fix off-by-one error requesting tx interrupt > r333366: Cleanup queues when iflib_device_register fails > r333373: Log iflib_tx_structures_setup failure in function > Is this an acceptable style for MFC logs? I'm asking because I actually prefer this to reading (or compiling) the concatenated log messages from several changes. However, I never knew it was acceptable to summarize like this. If it is, I'd like to know so I can adopt it for run-of-the-mill MFCs. Jonathan From owner-svn-src-stable-11@freebsd.org Fri May 11 23:37:07 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC47FFD45EA for ; Fri, 11 May 2018 23:37:07 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5481D75514 for ; Fri, 11 May 2018 23:37:07 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 3e582c92-5574-11e8-b234-5d9545c6b53f X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound2.ore.mailhop.org (Halon) with ESMTPSA id 3e582c92-5574-11e8-b234-5d9545c6b53f; Fri, 11 May 2018 23:37:19 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id w4BNavNL068046; Fri, 11 May 2018 17:36:57 -0600 (MDT) (envelope-from ian@freebsd.org) Message-ID: <1526081817.2597.5.camel@freebsd.org> Subject: Re: svn commit: r333503 - stable/11/sys/net From: Ian Lepore To: "Jonathan T. Looney" , Stephen Hurd Cc: src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Date: Fri, 11 May 2018 17:36:57 -0600 In-Reply-To: References: <201805112040.w4BKeQvO053076@repo.freebsd.org> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2018 23:37:08 -0000 On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > > > > > Author: shurd > > Date: Fri May 11 20:40:26 2018 > > New Revision: 333503 > > URL: https://svnweb.freebsd.org/changeset/base/333503 > > > > Log: > > MFC r333329, r333366, r333373 > > > > r333329: Fix off-by-one error requesting tx interrupt > > r333366: Cleanup queues when iflib_device_register fails > > r333373: Log iflib_tx_structures_setup failure in function > > > Is this an acceptable style for MFC logs? > > I'm asking because I actually prefer this to reading (or compiling) the > concatenated log messages from several changes. However, I never knew it > was acceptable to summarize like this. If it is, I'd like to know so I can > adopt it for run-of-the-mill MFCs. > > Jonathan This used to be my preferred format, essentially to summarize what's being mfc'd. But then I started using the MFC Tracker tool [*] and it automatically generates a commit message that contains the full text, so I stopped trying to summarize things. [*]https://mfc.kernelnomicon.org/6/ -- Ian From owner-svn-src-stable-11@freebsd.org Sat May 12 00:12:44 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B21EFD6310; Sat, 12 May 2018 00:12:44 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail104.syd.optusnet.com.au (mail104.syd.optusnet.com.au [211.29.132.246]) by mx1.freebsd.org (Postfix) with ESMTP id E77527C2B7; Sat, 12 May 2018 00:12:43 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from [192.168.0.102] (c110-21-101-228.carlnfd1.nsw.optusnet.com.au [110.21.101.228]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 44EEA42D1E5; Sat, 12 May 2018 10:12:34 +1000 (AEST) Date: Sat, 12 May 2018 10:12:33 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Ian Lepore cc: "Jonathan T. Looney" , Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r333503 - stable/11/sys/net In-Reply-To: <1526081817.2597.5.camel@freebsd.org> Message-ID: <20180512100335.B1840@besplex.bde.org> References: <201805112040.w4BKeQvO053076@repo.freebsd.org> <1526081817.2597.5.camel@freebsd.org> MIME-Version: 1.0 X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.2 cv=cIaQihWN c=1 sm=1 tr=0 a=PalzARQSbocsUSjMRkwAPg==:117 a=PalzARQSbocsUSjMRkwAPg==:17 a=nlC_4_pT8q9DhB4Ho9EA:9 a=6I5d2MoRAAAA:8 a=bv4Z-FHaAAAA:8 a=11r9OUSASBqB_IOUNh8A:9 a=45ClL6m2LaAA:10 a=IjZwj45LgO3ly-622nXo:22 a=1OByGr4bXvbdRoVEmkj7:22 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 00:12:44 -0000 On Fri, 11 May 2018, Ian Lepore wrote: > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: >> On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: >>> >>> >>> Author: shurd >>> Date: Fri May 11 20:40:26 2018 >>> New Revision: 333503 >>> URL: https://svnweb.freebsd.org/changeset/base/333503 >>> >>> Log: >>> =A0 MFC r333329, r333366, r333373 >>> >>> =A0 r333329: Fix off-by-one error requesting tx interrupt >>> =A0 r333366: Cleanup queues when iflib_device_register fails >>> =A0 r333373: Log iflib_tx_structures_setup failure in function >>> >> Is this an acceptable style for MFC logs? >> >> I'm asking because I actually prefer this to reading (or compiling) the >> concatenated log messages from several changes. However, I never knew it >> was acceptable to summarize like this. If it is, I'd like to know so I c= an >> adopt it for run-of-the-mill MFCs. >> >> Jonathan > > This used to be my preferred format, essentially to summarize what's > being mfc'd. But then I started using the MFC Tracker tool [*] and it > automatically generates a commit message that contains the full text, > so I stopped trying to summarize things. > > [*]=A0https://mfc.kernelnomicon.org/6/ It was the normal style with cvs (to avoid spamming the repository as well as readers). Howver, one of many worse behaviours in svn is that after checking out a branch, svn log only shows history for the branch, so it is hard to find the full log messages even if you know that the visible ones are only summaries. Bruce From owner-svn-src-stable-11@freebsd.org Sat May 12 00:17:53 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27ABBFD670A for ; Sat, 12 May 2018 00:17:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-io0-x22b.google.com (mail-io0-x22b.google.com [IPv6:2607:f8b0:4001:c06::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A46807DDEA for ; Sat, 12 May 2018 00:17:52 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-io0-x22b.google.com with SMTP id e78-v6so8936915iod.0 for ; Fri, 11 May 2018 17:17:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=QWgzeorpigwh9yNCMi6v4B5uZhvV6Po2yZnXpj3hPwQ=; b=NtUf5+UeMDMepKJ4jQB1ZjJrs+zpc/DWBLHUqP3ZhqZ2O/2gK80DL9mz7ixN71x0hK csa19wTtg5k0p6wlC2Dk4/Se/1mxFy2Jjspdfjc72myvZECHB4vLQP4XTh3e8VkqXXqv aZafjbLRcTofgUQ76I3pXddNJSm8tps7sSPzdmPewgx3IA6jxBsbd5cWBlPeJTrPM7Lw 0NNjQ0156xFz2UzVLxyb6sP0+bDXqWG54ttcx4b03MAhtmRQf67Wa97bTFLl/korLqa2 0QvHM7NcShLo1CEhchueKT9hdhkkx6xmwn6DpRIEotkAXpr7mbAKb1F5dTZcLg+YqWB9 ml6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=QWgzeorpigwh9yNCMi6v4B5uZhvV6Po2yZnXpj3hPwQ=; b=AIvfUTLceCG+Db8fWKESN9FiD+z9/klf6tZFGKV/4ktF9ARZ/mfIXy/WCGI51WNht+ VQyq9PVxQA4PCL+9aKrio5aMdo3XxTJcpQxpaSposcjHbmdPC4BwEkq0IgZUok5y8iFr oKqeq5fJ/rvSyR3NyuejXNONyBEDGAz7zwOKNtpAHJ9iVTKrUMl2G0RcoelT4f9b3jWG RHOFTsr7qA+FCTFF6E381QSv5WkHn2nrtA/6nLDxnJIOJVetswParNjieFZgpx0hK17G jJCD/osnnJ8bYm4OWIP8ogXU3lS8Sl/K00fE9hg+kN4ixnjyWYqbyiE4UY+84RzLy5Gy 7t+A== X-Gm-Message-State: ALKqPwePRq68eYKfN8aYK2u0vgeTO8opxB7+pT4+3xzP3wM6LpxHJWdr xnlcX09Sn3F/jxN4wSQbL+riYS8SvuuwG7nv4arMrw== X-Google-Smtp-Source: AB8JxZo7j0Al2IOw8iQa8LpVoV/ZQaWZH4VFp67teIJZf+CQNQUemYYKROQr5GbxJMRLPMLJ7Q5g9l3SiGaRRrDuCk0= X-Received: by 2002:a6b:12a3:: with SMTP id 35-v6mr591687ios.168.1526084271784; Fri, 11 May 2018 17:17:51 -0700 (PDT) MIME-Version: 1.0 Sender: wlosh@bsdimp.com Received: by 2002:a4f:a649:0:0:0:0:0 with HTTP; Fri, 11 May 2018 17:17:51 -0700 (PDT) X-Originating-IP: [2603:300b:6:5100:1052:acc7:f9de:2b6d] In-Reply-To: References: <201805112040.w4BKeQvO053076@repo.freebsd.org> From: Warner Losh Date: Fri, 11 May 2018 18:17:51 -0600 X-Google-Sender-Auth: 8QNEvPLqo5aW5VmOIG3Q2jG0Jcc Message-ID: Subject: Re: svn commit: r333503 - stable/11/sys/net To: "Jonathan T. Looney" Cc: Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 00:17:53 -0000 On Fri, May 11, 2018 at 5:31 PM, Jonathan T. Looney wrote: > On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > > > Author: shurd > > Date: Fri May 11 20:40:26 2018 > > New Revision: 333503 > > URL: https://svnweb.freebsd.org/changeset/base/333503 > > > > Log: > > MFC r333329, r333366, r333373 > > > > r333329: Fix off-by-one error requesting tx interrupt > > r333366: Cleanup queues when iflib_device_register fails > > r333373: Log iflib_tx_structures_setup failure in function > > > > Is this an acceptable style for MFC logs? > > I'm asking because I actually prefer this to reading (or compiling) the > concatenated log messages from several changes. However, I never knew it > was acceptable to summarize like this. If it is, I'd like to know so I can > adopt it for run-of-the-mill MFCs. > Unless there's a compelling reason to not do it, it is totally fine. I used to do mega-nanobsd MFCs exactly like this (though I may have include author of original commit sometimes). In general, anything is an acceptable style for MFC. The project hasn't set a style, and the variation between committers is large. Warner From owner-svn-src-stable-11@freebsd.org Sat May 12 00:31:42 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C1880FD73E4; Sat, 12 May 2018 00:31:42 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2928780DD1; Sat, 12 May 2018 00:31:41 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4C0VZwo077989; Fri, 11 May 2018 17:31:35 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4C0VZ8X077988; Fri, 11 May 2018 17:31:35 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805120031.w4C0VZ8X077988@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333503 - stable/11/sys/net In-Reply-To: <20180512100335.B1840@besplex.bde.org> To: Bruce Evans Date: Fri, 11 May 2018 17:31:35 -0700 (PDT) CC: Ian Lepore , "Jonathan T. Looney" , Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UNKNOWN-8BIT X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 00:31:42 -0000 > On Fri, 11 May 2018, Ian Lepore wrote: > > > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > >> On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > >>> > >>> > >>> Author: shurd > >>> Date: Fri May 11 20:40:26 2018 > >>> New Revision: 333503 > >>> URL: https://svnweb.freebsd.org/changeset/base/333503 > >>> > >>> Log: > >>> MFC r333329, r333366, r333373 > >>> > >>> r333329: Fix off-by-one error requesting tx interrupt > >>> r333366: Cleanup queues when iflib_device_register fails > >>> r333373: Log iflib_tx_structures_setup failure in function > >>> > >> Is this an acceptable style for MFC logs? > >> > >> I'm asking because I actually prefer this to reading (or compiling) the > >> concatenated log messages from several changes. However, I never knew it > >> was acceptable to summarize like this. If it is, I'd like to know so I can > >> adopt it for run-of-the-mill MFCs. > >> > >> Jonathan > > > > This used to be my preferred format, essentially to summarize what's > > being mfc'd. But then I started using the MFC Tracker tool [*] and it > > automatically generates a commit message that contains the full text, > > so I stopped trying to summarize things. > > > > [*]https://mfc.kernelnomicon.org/6/ > > It was the normal style with cvs (to avoid spamming the repository as > well as readers). Howver, one of many worse behaviours in svn is that > after checking out a branch, svn log only shows history for the branch, > so it is hard to find the full log messages even if you know that the > visible ones are only summaries. Though I don't care much for this behavior either you can get the original log entry if you get the changeset number by doing a svn log -c XXXXXX ^/head without that trailing ^/head you get a null output as that change does not exist on your current branch. You can also find the changeset number if the stable/X commit log does not have it by looking at the tail of a svn diff -c XXXXXX which has the mergeinfo in it, if it was done correctly. For this commit it would be svn diff -c 333503 | tail > Bruce -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-stable-11@freebsd.org Sat May 12 00:54:23 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0A5FBFD825B; Sat, 12 May 2018 00:54:23 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id A413686795; Sat, 12 May 2018 00:54:22 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 62331203CE; Sat, 12 May 2018 00:54:22 +0000 (UTC) (envelope-from jhb@freebsd.org) From: John Baldwin To: "Jonathan T. Looney" Cc: Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r333503 - stable/11/sys/net Date: Fri, 11 May 2018 17:24:20 -0700 Message-ID: <2564916.ivnyjH5XrP@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: References: <201805112040.w4BKeQvO053076@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 00:54:23 -0000 On Friday, May 11, 2018 07:31:40 PM Jonathan T. Looney wrote: > On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > > > Author: shurd > > Date: Fri May 11 20:40:26 2018 > > New Revision: 333503 > > URL: https://svnweb.freebsd.org/changeset/base/333503 > > > > Log: > > MFC r333329, r333366, r333373 > > > > r333329: Fix off-by-one error requesting tx interrupt > > r333366: Cleanup queues when iflib_device_register fails > > r333373: Log iflib_tx_structures_setup failure in function > > > > Is this an acceptable style for MFC logs? > > I'm asking because I actually prefer this to reading (or compiling) the > concatenated log messages from several changes. However, I never knew it > was acceptable to summarize like this. If it is, I'd like to know so I can > adopt it for run-of-the-mill MFCs. I prefer to summarize myself, but others have complained that you then can't grep for strings used in the head commit log to determine if a change has been MFC'd (assuming you don't have the head rev handy and want to search by some name / string you remember). In particular I preferred doing a "squash" of fixup type commits when doing MFCs, but I've relented to doing the full logs. -- John Baldwin From owner-svn-src-stable-11@freebsd.org Sat May 12 01:10:42 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AA726FD8E5F; Sat, 12 May 2018 01:10:42 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0464969B95; Sat, 12 May 2018 01:10:41 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w4C1ASL6078174; Fri, 11 May 2018 18:10:28 -0700 (PDT) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w4C1ASmO078173; Fri, 11 May 2018 18:10:28 -0700 (PDT) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201805120110.w4C1ASmO078173@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r333503 - stable/11/sys/net In-Reply-To: <201805120031.w4C0VZ8X077988@pdx.rh.CN85.dnsmgr.net> To: rgrimes@freebsd.org Date: Fri, 11 May 2018 18:10:28 -0700 (PDT) CC: Bruce Evans , Ian Lepore , "Jonathan T. Looney" , Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UNKNOWN-8BIT X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 01:10:42 -0000 > > On Fri, 11 May 2018, Ian Lepore wrote: > > > > > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > > >> On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > >>> > > >>> > > >>> Author: shurd > > >>> Date: Fri May 11 20:40:26 2018 > > >>> New Revision: 333503 > > >>> URL: https://svnweb.freebsd.org/changeset/base/333503 > > >>> > > >>> Log: > > >>> MFC r333329, r333366, r333373 > > >>> > > >>> r333329: Fix off-by-one error requesting tx interrupt > > >>> r333366: Cleanup queues when iflib_device_register fails > > >>> r333373: Log iflib_tx_structures_setup failure in function > > >>> I was actually discussing an aspect of this early today and would like to see, if possible, the *actual* mergeinfo in the commit mail message, and would really really like to have it in the log, but that may not be possible. For r333354 this looks like: Modified: svn:mergeinfo ## -0,0 +0,1 ## Merged /head:r308728,314369,315243,316026,316581,316616,318359,319922,319990,321481,323232-323233,323321,323874,323955,324323,324964,325169,325488,325620,326985,326999-327001,327003,329335 (We would want to line wrap it at 80, left untouched here) As, IMHO, this would help to catch missing mergeinfo (caused by svn commit not in root of branch), and merges that are more than what they claim (usually caused by a dirty tree before svn merge commands). This is typically 2 lines of added info, and it IS part of the normal output from a svn diff, but not clear to me why this is not in the commit mail message. > > >> Is this an acceptable style for MFC logs? > > >> > > >> I'm asking because I actually prefer this to reading (or compiling) the > > >> concatenated log messages from several changes. However, I never knew it > > >> was acceptable to summarize like this. If it is, I'd like to know so I can > > >> adopt it for run-of-the-mill MFCs. > > >> > > >> Jonathan > > > > > > This used to be my preferred format, essentially to summarize what's > > > being mfc'd. But then I started using the MFC Tracker tool [*] and it > > > automatically generates a commit message that contains the full text, > > > so I stopped trying to summarize things. > > > > > > [*]https://mfc.kernelnomicon.org/6/ > > > > It was the normal style with cvs (to avoid spamming the repository as > > well as readers). Howver, one of many worse behaviours in svn is that > > after checking out a branch, svn log only shows history for the branch, > > so it is hard to find the full log messages even if you know that the > > visible ones are only summaries. > > Though I don't care much for this behavior either you can get the > original log entry if you get the changeset number by doing a > svn log -c XXXXXX ^/head > without that trailing ^/head you get a null output as that change > does not exist on your current branch. > > You can also find the changeset number if the stable/X commit log > does not have it by looking at the tail of a > svn diff -c XXXXXX > which has the mergeinfo in it, if it was done correctly. > > For this commit it would be > svn diff -c 333503 | tail > > > Bruce > > -- > Rod Grimes rgrimes@freebsd.org > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-stable-11@freebsd.org Sat May 12 01:55:25 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 18DF2FDBD71; Sat, 12 May 2018 01:55:25 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B90407309B; Sat, 12 May 2018 01:55:24 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9AA0D17DA8; Sat, 12 May 2018 01:55:24 +0000 (UTC) (envelope-from jtl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4C1tOXe013171; Sat, 12 May 2018 01:55:24 GMT (envelope-from jtl@FreeBSD.org) Received: (from jtl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4C1tOoD013170; Sat, 12 May 2018 01:55:24 GMT (envelope-from jtl@FreeBSD.org) Message-Id: <201805120155.w4C1tOoD013170@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jtl set sender to jtl@FreeBSD.org using -f From: "Jonathan T. Looney" Date: Sat, 12 May 2018 01:55:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333511 - stable/11/sys/kern X-SVN-Group: stable-11 X-SVN-Commit-Author: jtl X-SVN-Commit-Paths: stable/11/sys/kern X-SVN-Commit-Revision: 333511 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 01:55:25 -0000 Author: jtl Date: Sat May 12 01:55:24 2018 New Revision: 333511 URL: https://svnweb.freebsd.org/changeset/base/333511 Log: r285910 attempted to make shutdown() be POSIX compliant by returning ENOTCONN when shutdown() is called on unconnected sockets. This change was slightly modified by r316874, which returns ENOTCONN in the case of an unconnected datagram socket, but still runs the shutdown code for the socket. This specifically supports the case where the user-space code is using the shutdown() call to wakeup another thread blocked on the socket. In PR 227259, a user is reporting that they have code which is using shutdown() to wakup another thread blocked on a stream listen socket. This code is failing, while it used to work on FreeBSD 10 and still works on Linux. It seems reasonable to add another exception to support something users are actually doing, which used to work on FreeBSD 10, and still works on Linux. And, it seems like it should be acceptable to POSIX, as we still return ENOTCONN. This is a direct commit to stable/11. The listen socket code changed substantially in head, and the code change there will be substantially more complex. In the meantime, it seems to make sense to commit this trivial fix to stable/11 given the fact that users appear to depend on this behavior, this appears to have been an unintended change in stable/11, and we did not announce the change. PR: 227259 Reviewed by: ed Approved by: re (gjb) Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D15021 Tested by: Eric Masson (emss at free.fr) Modified: stable/11/sys/kern/uipc_socket.c Modified: stable/11/sys/kern/uipc_socket.c ============================================================================== --- stable/11/sys/kern/uipc_socket.c Sat May 12 01:43:32 2018 (r333510) +++ stable/11/sys/kern/uipc_socket.c Sat May 12 01:55:24 2018 (r333511) @@ -2359,7 +2359,8 @@ soshutdown(struct socket *so, int how) * both backward-compatibility and POSIX requirements by forcing * ENOTCONN but still asking protocol to perform pru_shutdown(). */ - if (so->so_type != SOCK_DGRAM) + if (so->so_type != SOCK_DGRAM && + !(so->so_options & SO_ACCEPTCONN)) return (ENOTCONN); soerror_enotconn = 1; } From owner-svn-src-stable-11@freebsd.org Sat May 12 05:15:54 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C7256FAF87B; Sat, 12 May 2018 05:15:53 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from id.bluezbox.com (id.bluezbox.com [45.55.20.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6270A7E7DF; Sat, 12 May 2018 05:15:52 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from localhost ([127.0.0.1] helo=id.bluezbox.com) by id.bluezbox.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1 (FreeBSD)) (envelope-from ) id 1fHMsh-00028K-Uo; Fri, 11 May 2018 22:15:44 -0700 Received: (from gonzo@localhost) by id.bluezbox.com (8.15.2/8.15.2/Submit) id w4C5Fhla008202; Fri, 11 May 2018 22:15:43 -0700 (PDT) (envelope-from gonzo@FreeBSD.org) X-Authentication-Warning: id.bluezbox.com: gonzo set sender to gonzo@FreeBSD.org using -f Date: Fri, 11 May 2018 22:15:43 -0700 From: Oleksandr Tymoshenko To: Ian Lepore Cc: "Jonathan T. Looney" , Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r333503 - stable/11/sys/net Message-ID: <20180512051543.GA8131@bluezbox.com> References: <201805112040.w4BKeQvO053076@repo.freebsd.org> <1526081817.2597.5.camel@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1526081817.2597.5.camel@freebsd.org> X-Operating-System: FreeBSD/11.1-RELEASE-p4 (amd64) User-Agent: Mutt/1.9.1 (2017-09-22) X-Spam-Level: -- X-Spam-Report: Spam detection software, running on the system "id.bluezbox.com", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see The administrator of that system for details. Content preview: Ian Lepore (ian@freebsd.org) wrote: > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > > On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > > > > > > > > Author [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:15:54 -0000 Ian Lepore (ian@freebsd.org) wrote: > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > > On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > > > > > > > > > Author: shurd > > > Date: Fri May 11 20:40:26 2018 > > > New Revision: 333503 > > > URL: https://svnweb.freebsd.org/changeset/base/333503 > > > > > > Log: > > > MFC r333329, r333366, r333373 > > > > > > r333329: Fix off-by-one error requesting tx interrupt > > > r333366: Cleanup queues when iflib_device_register fails > > > r333373: Log iflib_tx_structures_setup failure in function > > > > > Is this an acceptable style for MFC logs? > > > > I'm asking because I actually prefer this to reading (or compiling) the > > concatenated log messages from several changes. However, I never knew it > > was acceptable to summarize like this. If it is, I'd like to know so I can > > adopt it for run-of-the-mill MFCs. > > > > Jonathan > > This used to be my preferred format, essentially to summarize what's > being mfc'd. But then I started using the MFC Tracker tool [*] and it > automatically generates a commit message that contains the full text, > so I stopped trying to summarize things. I've just deployed new mfctracker version with summarized MFC commit message support so users can now switch between full MFC log and a short version. Of course it's only useful if selected commits have one-line summary in the first line of a commit message. > [*]https://mfc.kernelnomicon.org/6/ > > -- Ian -- gonzo From owner-svn-src-stable-11@freebsd.org Sat May 12 05:21:00 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C1EFFAFC54; Sat, 12 May 2018 05:21:00 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from id.bluezbox.com (id.bluezbox.com [45.55.20.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ED8A87EB1D; Sat, 12 May 2018 05:20:59 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from localhost ([127.0.0.1] helo=id.bluezbox.com) by id.bluezbox.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1 (FreeBSD)) (envelope-from ) id 1fHMxj-00028v-W8; Fri, 11 May 2018 22:20:56 -0700 Received: (from gonzo@localhost) by id.bluezbox.com (8.15.2/8.15.2/Submit) id w4C5Ktos008240; Fri, 11 May 2018 22:20:55 -0700 (PDT) (envelope-from gonzo@FreeBSD.org) X-Authentication-Warning: id.bluezbox.com: gonzo set sender to gonzo@FreeBSD.org using -f Date: Fri, 11 May 2018 22:20:55 -0700 From: Oleksandr Tymoshenko To: Bruce Evans Cc: Ian Lepore , "Jonathan T. Looney" , Stephen Hurd , src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r333503 - stable/11/sys/net Message-ID: <20180512052055.GB8131@bluezbox.com> References: <201805112040.w4BKeQvO053076@repo.freebsd.org> <1526081817.2597.5.camel@freebsd.org> <20180512100335.B1840@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180512100335.B1840@besplex.bde.org> X-Operating-System: FreeBSD/11.1-RELEASE-p4 (amd64) User-Agent: Mutt/1.9.1 (2017-09-22) X-Spam-Level: -- X-Spam-Report: Spam detection software, running on the system "id.bluezbox.com", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see The administrator of that system for details. Content preview: Bruce Evans (brde@optusnet.com.au) wrote: > On Fri, 11 May 2018, Ian Lepore wrote: > > > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > >> On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:21:00 -0000 Bruce Evans (brde@optusnet.com.au) wrote: > On Fri, 11 May 2018, Ian Lepore wrote: > > > On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: > >> On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wrote: > >>> > >>> > >>> Author: shurd > >>> Date: Fri May 11 20:40:26 2018 > >>> New Revision: 333503 > >>> URL: https://svnweb.freebsd.org/changeset/base/333503 > >>> > >>> Log: > >>> MFC r333329, r333366, r333373 > >>> > >>> r333329: Fix off-by-one error requesting tx interrupt > >>> r333366: Cleanup queues when iflib_device_register fails > >>> r333373: Log iflib_tx_structures_setup failure in function > >>> > >> Is this an acceptable style for MFC logs? > >> > >> I'm asking because I actually prefer this to reading (or compiling) the > >> concatenated log messages from several changes. However, I never knew it > >> was acceptable to summarize like this. If it is, I'd like to know so I can > >> adopt it for run-of-the-mill MFCs. > >> > >> Jonathan > > > > This used to be my preferred format, essentially to summarize what's > > being mfc'd. But then I started using the MFC Tracker tool [*] and it > > automatically generates a commit message that contains the full text, > > so I stopped trying to summarize things. > > > > [*]https://mfc.kernelnomicon.org/6/ > > It was the normal style with cvs (to avoid spamming the repository as > well as readers). Howver, one of many worse behaviours in svn is that > after checking out a branch, svn log only shows history for the branch, > so it is hard to find the full log messages even if you know that the > visible ones are only summaries. Although not a direct functional equivalent of CVS log command 'svn log -g' shows logs for merged commits too -- gonzo From owner-svn-src-stable-11@freebsd.org Sat May 12 05:31:30 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5A5CFB464A; Sat, 12 May 2018 05:31:30 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from mx1.scaleengine.net (mx1.scaleengine.net [209.51.186.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1C62A8196C; Sat, 12 May 2018 05:31:30 +0000 (UTC) (envelope-from allanjude@freebsd.org) Received: from [10.1.1.2] (Seawolf.HML3.ScaleEngine.net [209.51.186.28]) (Authenticated sender: allanjude.freebsd@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 605AC187D6; Sat, 12 May 2018 05:31:23 +0000 (UTC) Subject: Re: svn commit: r333503 - stable/11/sys/net To: Oleksandr Tymoshenko Cc: src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org References: <201805112040.w4BKeQvO053076@repo.freebsd.org> <1526081817.2597.5.camel@freebsd.org> <20180512051543.GA8131@bluezbox.com> From: Allan Jude Openpgp: preference=signencrypt Autocrypt: addr=allanjude@freebsd.org; prefer-encrypt=mutual; keydata= xsFNBFVwZcYBEADwrZDH0xe0ZVjc9ORCc6PcBLwS/RTXA6NkvpD6ea02pZ8lPOVgteuuugFc D34LdDbiWr+479vfrKBh+Y38GL0oZ0/13j10tIlDMHSa5BU0y6ACtnhupFvVlQ57+XaJAb/q 7qkfSiuxVwQ3FY3PL3cl1RrIP5eGHLA9hu4eVbu+FOX/q/XVKz49HaeIaxzo2Q54572VzIo6 C28McX9m65UL5fXMUGJDDLCItLmehZlHsQQ+uBxvODLFpVV2lUgDR/0rDa0B9zHZX8jY8qQ7 ZdCSy7CwClXI054CkXZCaBzgxYh/CotdI8ezmaw7NLs5vWNTxaDEFXaFMQtMVhvqQBpHkfOD 7rjjOmFw00nJL4FuPE5Yut0CPyx8vLjVmNJSt/Y8WxxmhutsqJYFgYfWl/vaWkrFLur/Zcmz IklwLw35HLsCZytCN5A3rGKdRbQjD6QPXOTJu0JPrJF6t2xFkWAT7oxnSV0ELhl2g+JfMMz2 Z1PDmS3NRnyEdqEm7NoRGXJJ7bgxDbN+9SXTyOletqGNXj/bSrBvhvZ0RQrzdHAPwQUfVSU2 qBhQEi2apSZstgVNMan0GUPqCdbE2zpysg+zT7Yhvf9EUQbzPL4LpdK1llT9fZbrdMzEXvEF oSvwJFdV3sqKmZc7b+E3PuxK6GTsKqaukd/3Cj8aLHG1T1im1QARAQABzSJBbGxhbiBKdWRl IDxhbGxhbmp1ZGVAZnJlZWJzZC5vcmc+wsF/BBMBAgApBQJVcGXGAhsjBQkSzAMABwsJCAcD AgEGFQgCCQoLBBYCAwECHgECF4AACgkQGZU1PhKYC34Muw/+JOKpSfhhysWFYiRXynGRDe07 Z6pVsn7DzrPUMRNZfHu8Uujmmy3p2nx9FelIY9yjd2UKHhug+whM54MiIFs90eCRVa4XEsPR 4FFAm0DAWrrb7qhZFcE/GhHdRWpZ341WAElWf6Puj2devtRjfYbikvj5+1V1QmDbju7cEw5D mEET44pTuD2VMRJpu2yZZzkM0i+wKFuPxlhqreufA1VNkZXI/rIfkYWK+nkXd9Efw3YdCyCQ zUgTUCb88ttSqcyhik/li1CDbXBpkzDCKI6I/8fAb7jjOC9LAtrZJrdgONywcVFoyK9ZN7EN AVA+xvYCmuYhR/3zHWH1g4hAm1v1+gIsufhajhfo8/wY1SetlzPaYkSkVQLqD8T6zZyhf+AN bC7ci44UsiKGAplB3phAXrtSPUEqM86kbnHg3fSx37kWKUiYNOnx4AC2VXvEiKsOBlpyt3dw WQbOtOYM+vkfbBwDtoGOOPYAKxc4LOIt9r+J8aD+gTooi9Eo5tvphATf9WkCpl9+aaGbSixB tUpvQMRnSMqTqq4Z7DeiG6VMRQIjsXDSLJEUqcfhnLFo0Ko/RiaHd5xyAQ4DhQ9QpkyQjjNf /3f/dYG7JAtoD30txaQ5V8uHrz210/77DRRX+HJjEj6xCxWUGvQgvEZf5XXyxeePvqZ+zQyT DX61bYw6w6bOwU0EVXBlxgEQAMy7YVnCCLN4oAOBVLZ5nUbVPvpUhsdA94/0/P+uqCIh28Cz ar56OCX0X19N/nAWecxL4H32zFbIRyDB2V/MEh4p9Qvyu/j4i1r3Ex5GhOT2hnit43Ng46z5 29Es4TijrHJP4/l/rB2VOqMKBS7Cq8zk1cWqaI9XZ59imxDNjtLLPPM+zQ1yE3OAMb475QwN UgWxTMw8rkA7CEaqeIn4sqpTSD5C7kT1Bh26+rbgJDZ77D6Uv1LaCZZOaW52okW3bFbdozV8 yM2u+xz2Qs8bHz67p+s+BlygryiOyYytpkiK6Iy4N7FTolyj5EIwCuqzfk0SaRHeOKX2ZRjC qatkgoD/t13PNT38V9tw3qZVOJDS0W6WM8VSg+F+bkM9LgJ8CmKV+Hj0k3pfGfYPOZJ/v18i +SmZmL/Uw2RghnwDWGAsPCKu4uZR777iw7n9Io6Vfxndw2dcS0e9klvFYoaGS6H2F13Asygr WBzFNGFQscN4mUW+ZYBzpTOcHkdT7w8WS55BmXYLna+dYer9/HaAuUrONjujukN4SPS1fMJ2 /CS/idAUKyyVVX5vozoNK2JVC1h1zUAVsdnmhEzNPsvBoqcVNfyqBFROEVLIPwq+lQMGNVjH ekLTKRWf59MEhUC2ztjSKkGmwdg73d6xSXMuq45EgIJV2wPvOgWQonoHH/kxABEBAAHCwWUE GAECAA8FAlVwZcYCGwwFCRLMAwAACgkQGZU1PhKYC34w5A//YViBtZyDV5O+SJT9FFO3lb9x Zdxf0trA3ooCt7gdBkdnBM6T5EmjgVZ3KYYyFfwXZVkteuCCycMF/zVw5eE9FL1+zz9gg663 nY9q2F77TZTKXVWOLlOV2bY+xaK94U4ytogOGhh9b4UnQ/Ct3+6aviCF78Go608BXbmF/GVT 7uhddemk7ItxM1gE5Hscx3saxGKlayaOsdPKeGTVJCDEtHDuOc7/+jGh5Zxpk/Hpi+DUt1ot 8e6hPYLIQa4uVx4f1xxxV858PQ7QysSLr9pTV7FAQ18JclCaMc7JWIa3homZQL/MNKOfST0S 2e+msuRwQo7AnnfFKBUtb02KwpA4GhWryhkjUh/kbVc1wmGxaU3DgXYQ5GV5+Zf4kk/wqr/7 KG0dkTz6NLCVLyDlmAzuFhf66DJ3zzz4yIo3pbDYi3HB/BwJXVSKB3Ko0oUo+6/qMrOIS02L s++QE/z7K12CCcs7WwOjfCYHK7VtE0Sr/PfybBdTbuDncOuAyAIeIKxdI2nmQHzl035hhvQX s4CSghsP319jAOQiIolCeSbTMD4QWMK8RL/Pe1FI1jC3Nw9s+jq8Dudtbcj2UwAP/STUEbJ9 5rznzuuhPjE0e++EU/RpWmcaIMK/z1zZDMN+ce2v1qzgV936ZhJ3iaVzyqbEE81gDxg3P+IM kiYh4ZtPB4Q= Message-ID: <5db6b500-8c4c-d171-4418-5e25c510f66d@freebsd.org> Date: Sat, 12 May 2018 01:31:19 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180512051543.GA8131@bluezbox.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="uV4rTWLqWNWce1EYzanASLYijBtBCJsF4" X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 05:31:30 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --uV4rTWLqWNWce1EYzanASLYijBtBCJsF4 Content-Type: multipart/mixed; boundary="NAX9ZmWMvFU6YjSjjjXX16y2OBGHrOGf8"; protected-headers="v1" From: Allan Jude To: Oleksandr Tymoshenko Cc: src-committers , svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Message-ID: <5db6b500-8c4c-d171-4418-5e25c510f66d@freebsd.org> Subject: Re: svn commit: r333503 - stable/11/sys/net References: <201805112040.w4BKeQvO053076@repo.freebsd.org> <1526081817.2597.5.camel@freebsd.org> <20180512051543.GA8131@bluezbox.com> In-Reply-To: <20180512051543.GA8131@bluezbox.com> --NAX9ZmWMvFU6YjSjjjXX16y2OBGHrOGf8 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 2018-05-12 01:15, Oleksandr Tymoshenko wrote: > Ian Lepore (ian@freebsd.org) wrote: >> On Fri, 2018-05-11 at 19:31 -0400, Jonathan T. Looney wrote: >>> On Fri, May 11, 2018 at 4:40 PM, Stephen Hurd wro= te: >>>> >>>> >>>> Author: shurd >>>> Date: Fri May 11 20:40:26 2018 >>>> New Revision: 333503 >>>> URL: https://svnweb.freebsd.org/changeset/base/333503 >>>> >>>> Log: >>>> =C2=A0 MFC r333329, r333366, r333373 >>>> >>>> =C2=A0 r333329: Fix off-by-one error requesting tx interrupt >>>> =C2=A0 r333366: Cleanup queues when iflib_device_register fails >>>> =C2=A0 r333373: Log iflib_tx_structures_setup failure in function >>>> >>> Is this an acceptable style for MFC logs? >>> >>> I'm asking because I actually prefer this to reading (or compiling) t= he >>> concatenated log messages from several changes. However, I never knew= it >>> was acceptable to summarize like this. If it is, I'd like to know so = I can >>> adopt it for run-of-the-mill MFCs. >>> >>> Jonathan >> >> This used to be my preferred format, essentially to summarize what's >> being mfc'd. But then I started using the MFC Tracker tool [*] and it >> automatically generates a commit message that contains the full text, >> so I stopped trying to summarize things. >=20 > I've just deployed new mfctracker version with summarized MFC commit > message support so users can now switch between full MFC log and a > short version. Of course it's only useful if selected commits have > one-line summary in the first line of a commit message. > =20 >> [*]=C2=A0https://mfc.kernelnomicon.org/6/ >> >> -- Ian >=20 Thank you for building and constantly improving this extremely useful too= l. --=20 Allan Jude --NAX9ZmWMvFU6YjSjjjXX16y2OBGHrOGf8-- --uV4rTWLqWNWce1EYzanASLYijBtBCJsF4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (MingW32) iQIcBAEBAgAGBQJa9nwqAAoJEBmVNT4SmAt+AgIQAJ2QnpbuJwU+t3DmUbR0Tj0K 9oB6JE+EXisoXaQ5rI1LgnIzbSxbVFeUhwS4WGJxuqhNarS6XO1EuZgYgNeOW1oi 1e3wAWoqwsJQtHhJ21OqD4Gvc0KRTlb2P5so2kxNgExwpC8lZ/fXE7e3L5H5ucfN ysG3c9xp8MfmR0Xb17wdV3cfhwNAFBuyQuN9ndwhpqVddl5l6rg3nr82qWQOvb1I q5sYiZ7rSJ05+QHEOiy+yPwT0lBvSdNXbaBIKOvA2W6HzpqGOL6voZ7zK9ALZAMI 1VWKEXs8CEWNfB7PAuWemqpMjXSDJ39gmsyRqu93B9g5J7BPfupJa6/uWiY8PKxG gH3Uy/xlxUJBV+MOfGf39OtC2E3Dnu0mOL+G6XjCKruWhHyT3RgNVlyfNTkes1IR X8+O7DRozOYhBawMtDcl0Cr3J8mkL+p3jIAL+RWrapz76+02yoAeBGJzmKw2z1Vo zp9u8CWxQiLGG9wxqcbm+HoaLZb6iUlxNqt1tWlc26qqb614p0eyb8d1LogeKU2K ufkDCob8hUcqBnpzVoD+57CPP5yJformnWQiTZpEbXN+8SL3MpJXjH1SpvsmfisF CpZBTYTpNGV2MgjIYgfPHp3LalV9zJfri4tp2NlWD6N9fkhT6kJAxa1R5shf5JO9 hYOhzIgB8Q+EAqOfztDi =O8eA -----END PGP SIGNATURE----- --uV4rTWLqWNWce1EYzanASLYijBtBCJsF4-- From owner-svn-src-stable-11@freebsd.org Sat May 12 08:26:02 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D21EAFCC741; Sat, 12 May 2018 08:26:01 +0000 (UTC) (envelope-from emss.mail@gmail.com) Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 30979824E3; Sat, 12 May 2018 08:26:01 +0000 (UTC) (envelope-from emss.mail@gmail.com) Received: by mail-wm0-x241.google.com with SMTP id f8-v6so6915188wmc.4; Sat, 12 May 2018 01:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-transfer-encoding; bh=f675F86lLxa1cre3uDn1+6Fj6cccdMQl1LXhjv4nmaI=; b=tG8rwT9KNr8A37RYvrvAYnRa1n3SEJwu3Tj6MwbCfZCO6mAD7ZXxdyYJybHUJeo/In Wjy0H42Uf9yuxFV2bO4K3jDK+xwEacgnpPRyW54224f311x0m0SmLyNB3Bt6j0QKmxHz tf40gJMnt3hLwQSk5XMqQKwzfZSUk+JReSk8AVrVyuPMQZpuG29D9uLNtoLlEFntuaVu E6/ljvqQCXjXg2oquii2Hb/w9b7P3YQbq5J48K6+Cc3xghWFquWRJ/aIQYVxxsqWWwLu H+F48k96bitYvD9efqZYrh/IzylRrE5jOJWjQVtgTXT+/30k/qY/AWg85nXPoi0UYk0o qVSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:in-reply-to:references :user-agent:date:message-id:mime-version:content-transfer-encoding; bh=f675F86lLxa1cre3uDn1+6Fj6cccdMQl1LXhjv4nmaI=; b=Rxavkcqpgz5WC1j04T7pPcFARAtHD7prYL/Lai7x+DAOl0lDOyTvFwzWQCN35gkEVH bSqfcCHiZxzgEMIrY1IiW3vFFnLOzU1ZhiDD4uY0CTR3tABAQJuy8mj8lhUwopA9ODAe MGTYCbEd6FVvf8L9Fuz+ffSSHwH4gSZyt583oLQC266CJbp7cC8JrGYcCW1OJJO3j+3m K4UlKmYm58KhUS+LHHLXcnHCfSxMY79AtReXjvtxb8slE396iqAEWvS2DALAKLJaE+5a Yuehl2YT4nRDoAOFnjsmecuySSj77a+xxpopuci54qCTBmqb3KlDIFr6xG/kxjVmBREU Jigw== X-Gm-Message-State: ALKqPwdMe0io+RNr0Or9dlx0QIWRzwXqs0MOFpZftp1Ek6CnoAnRZhBo TZfLnlSZFCy6h9ot82K5OpWyJA== X-Google-Smtp-Source: AB8JxZp8pD6Dz3ar0OVDK54a8l83VWcpiTcAX+hCo5gfam60lsZwOnsvvjKx+2/XcEI+UxFkwqj+4g== X-Received: by 2002:a1c:9a89:: with SMTP id c131-v6mr855287wme.146.1526113559975; Sat, 12 May 2018 01:25:59 -0700 (PDT) Received: from srvbsdfenssv.interne.associated-bears.org (LStLambert-658-1-110-48.w217-128.abo.wanadoo.fr. [217.128.200.48]) by smtp.gmail.com with ESMTPSA id t203-v6sm4099025wmt.33.2018.05.12.01.25.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 12 May 2018 01:25:59 -0700 (PDT) Sender: Eric Masson Received: from newsrv.interne.associated-bears.org (localhost [127.0.0.1]) by srvbsdfenssv.interne.associated-bears.org (Postfix) with ESMTP id 49CA71288; Sat, 12 May 2018 10:25:58 +0200 (CEST) X-Virus-Scanned: amavisd-new at interne.associated-bears.org Received: from srvbsdfenssv.interne.associated-bears.org ([127.0.0.1]) by newsrv.interne.associated-bears.org (newsrv.interne.associated-bears.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9RSsuotBJqL8; Sat, 12 May 2018 10:25:57 +0200 (CEST) Received: by srvbsdfenssv.interne.associated-bears.org (Postfix, from userid 1001) id 6CF2C1282; Sat, 12 May 2018 10:25:57 +0200 (CEST) From: Eric Masson To: "Jonathan T. Looney" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r333511 - stable/11/sys/kern In-Reply-To: <201805120155.w4C1tOoD013170@repo.freebsd.org> (Jonathan T. Looney's message of "Sat, 12 May 2018 01:55:24 +0000 (UTC)") References: <201805120155.w4C1tOoD013170@repo.freebsd.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (berkeley-unix) X-Operating-System: FreeBSD 11.2-PRERELEASE amd64 Date: Sat, 12 May 2018 10:25:57 +0200 Message-ID: <86vabtz3e2.fsf@newsrv.interne.associated-bears.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 08:26:02 -0000 "Jonathan T. Looney" writes: Hi Jonathan, > Log: > r285910 attempted to make shutdown() be POSIX compliant by returning > ENOTCONN when shutdown() is called on unconnected sockets. This change was > slightly modified by r316874, which returns ENOTCONN in the case of an > unconnected datagram socket, but still runs the shutdown code for the > socket. This specifically supports the case where the user-space code is > using the shutdown() call to wakeup another thread blocked on the socket. Thanks a lot. ric Masson -- >Une RedHat (je ne connais pas les autres distributions) ce configure >aussi simplement que windows pour un poste client. Hlas, elle gnre un maximum de traffic sur Usenet -+- TP in guide du linuxien pervers - "Je veux revoir ma SLS ! -+- From owner-svn-src-stable-11@freebsd.org Sat May 12 11:18:15 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A97F8FD4C0E; Sat, 12 May 2018 11:18:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 56F7F86A65; Sat, 12 May 2018 11:18:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1E44B1D99C; Sat, 12 May 2018 11:18:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CBIFhV098812; Sat, 12 May 2018 11:18:15 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CBIElb098811; Sat, 12 May 2018 11:18:14 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121118.w4CBIElb098811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 11:18:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333527 - stable/11/sys/amd64/amd64 X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/amd64/amd64 X-SVN-Commit-Revision: 333527 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 11:18:15 -0000 Author: kib Date: Sat May 12 11:18:14 2018 New Revision: 333527 URL: https://svnweb.freebsd.org/changeset/base/333527 Log: MFC r332450: Optimize context switch for PTI on PCID pmap. Approved by: re (marius) Modified: stable/11/sys/amd64/amd64/pmap.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/amd64/pmap.c ============================================================================== --- stable/11/sys/amd64/amd64/pmap.c Sat May 12 11:06:59 2018 (r333526) +++ stable/11/sys/amd64/amd64/pmap.c Sat May 12 11:18:14 2018 (r333527) @@ -7293,8 +7293,9 @@ pmap_pcid_alloc(pmap_t pmap, u_int cpuid) CRITICAL_ASSERT(curthread); gen = PCPU_GET(pcid_gen); - if (!pti && (pmap->pm_pcids[cpuid].pm_pcid == PMAP_PCID_KERN || - pmap->pm_pcids[cpuid].pm_gen == gen)) + if (pmap->pm_pcids[cpuid].pm_pcid == PMAP_PCID_KERN) + return (pti ? 0 : CR3_PCID_SAVE); + if (pmap->pm_pcids[cpuid].pm_gen == gen) return (CR3_PCID_SAVE); pcid_next = PCPU_GET(pcid_next); KASSERT((!pti && pcid_next <= PMAP_PCID_OVERMAX) || @@ -7321,7 +7322,7 @@ pmap_activate_sw(struct thread *td) { pmap_t oldpmap, pmap; struct invpcid_descr d; - uint64_t cached, cr3, kcr3, ucr3; + uint64_t cached, cr3, kcr3, kern_pti_cached, ucr3; register_t rflags; u_int cpuid; @@ -7370,11 +7371,10 @@ pmap_activate_sw(struct thread *td) if (!invpcid_works) rflags = intr_disable(); - if (!cached || (cr3 & ~CR3_PCID_MASK) != pmap->pm_cr3) { + kern_pti_cached = pti ? 0 : cached; + if (!kern_pti_cached || (cr3 & ~CR3_PCID_MASK) != pmap->pm_cr3) { load_cr3(pmap->pm_cr3 | pmap->pm_pcids[cpuid].pm_pcid | - cached); - if (cached) - PCPU_INC(pm_save_cnt); + kern_pti_cached); } PCPU_SET(curpmap, pmap); if (pti) { @@ -7382,13 +7382,13 @@ pmap_activate_sw(struct thread *td) ucr3 = pmap->pm_ucr3 | pmap->pm_pcids[cpuid].pm_pcid | PMAP_PCID_USER_PT; - /* - * Manually invalidate translations cached - * from the user page table, which are not - * flushed by reload of cr3 with the kernel - * page table pointer above. - */ - if (pmap->pm_ucr3 != PMAP_NO_CR3) { + if (!cached && pmap->pm_ucr3 != PMAP_NO_CR3) { + /* + * Manually invalidate translations cached + * from the user page table. They are not + * flushed by reload of cr3 with the kernel + * page table pointer above. + */ if (invpcid_works) { d.pcid = PMAP_PCID_USER_PT | pmap->pm_pcids[cpuid].pm_pcid; @@ -7405,6 +7405,8 @@ pmap_activate_sw(struct thread *td) } if (!invpcid_works) intr_restore(rflags); + if (cached) + PCPU_INC(pm_save_cnt); } else if (cr3 != pmap->pm_cr3) { load_cr3(pmap->pm_cr3); PCPU_SET(curpmap, pmap); From owner-svn-src-stable-11@freebsd.org Sat May 12 11:40:35 2018 Return-Path: Delivered-To: svn-src-stable-11@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D55BEFD5B5F; Sat, 12 May 2018 11:40:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 89BE76C3C6; Sat, 12 May 2018 11:40:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6AE2E1DDDC; Sat, 12 May 2018 11:40:35 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4CBeZoq009351; Sat, 12 May 2018 11:40:35 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4CBeZpt009350; Sat, 12 May 2018 11:40:35 GMT (envelope-from kib@FreeBSD.org) Message-Id: <201805121140.w4CBeZpt009350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Sat, 12 May 2018 11:40:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r333528 - stable/11/sys/amd64/amd64 X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/sys/amd64/amd64 X-SVN-Commit-Revision: 333528 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-11@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for only the 11-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 May 2018 11:40:36 -0000 Author: kib Date: Sat May 12 11:40:34 2018 New Revision: 333528 URL: https://svnweb.freebsd.org/changeset/base/333528 Log: MFC r332504: Set PG_G global mapping bit on the trampoline ptes. Approved by: re (marius) Modified: stable/11/sys/amd64/amd64/pmap.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/amd64/amd64/pmap.c ============================================================================== --- stable/11/sys/amd64/amd64/pmap.c Sat May 12 11:18:14 2018 (r333527) +++ stable/11/sys/amd64/amd64/pmap.c Sat May 12 11:40:34 2018 (r333528) @@ -7968,7 +7968,7 @@ pmap_pti_add_kva_locked(vm_offset_t sva, vm_offset_t e for (; sva < eva; sva += PAGE_SIZE) { pte = pmap_pti_pte(sva, &unwire_pde); pa = pmap_kextract(sva); - ptev = pa | X86_PG_RW | X86_PG_V | X86_PG_A | + ptev = pa | X86_PG_RW | X86_PG_V | X86_PG_A | X86_PG_G | (exec ? 0 : pg_nx) | pmap_cache_bits(kernel_pmap, VM_MEMATTR_DEFAULT, FALSE); if (*pte == 0) {