svn commit: r273719 - stable/10/contrib/tzdata
Author: edwin Date: Mon Oct 27 06:05:40 2014 New Revision: 273719 URL: https://svnweb.freebsd.org/changeset/base/273719 Log: MFC of 273718, tzdata2014i Upgrade to 2014i Lots of historical data Pacific/Fiji will go into DST from 2014-11-02 to 2015-01-18 Pacific/Bougainville will go from UTC+10 to UTC+11. Europe/Minsk will go from FET to MSK. Modified: stable/10/contrib/tzdata/africa stable/10/contrib/tzdata/antarctica stable/10/contrib/tzdata/asia stable/10/contrib/tzdata/australasia stable/10/contrib/tzdata/backward stable/10/contrib/tzdata/europe stable/10/contrib/tzdata/northamerica stable/10/contrib/tzdata/southamerica stable/10/contrib/tzdata/zone.tab stable/10/contrib/tzdata/zone1970.tab Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/tzdata/africa == --- stable/10/contrib/tzdata/africa Mon Oct 27 05:50:02 2014 (r273718) +++ stable/10/contrib/tzdata/africa Mon Oct 27 06:05:40 2014 (r273719) @@ -1,9 +1,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# This data is by no means authoritative; if you think you know better, +# This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to -# t...@iana.org for general use in the future). +# t...@iana.org for general use in the future). For more, please see +# the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2013-02-21): # @@ -25,8 +26,8 @@ # I found in the UCLA library. # # For data circa 1899, a common source is: -# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# http://www.jstor.org/stable/1774359. +# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. +# http://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). @@ -93,9 +94,9 @@ Rule Algeria 1980only- Oct 31 2:00 0 # Shanks Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 - 0:09:21 - PMT 1911 Mar 11# Paris Mean Time - 0:00Algeria WE%sT 1940 Feb 25 2:00 +Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 + 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time + 0:00Algeria WE%sT 1940 Feb 25 2:00 1:00Algeria CE%sT 1946 Oct 7 0:00- WET 1956 Jan 29 1:00- CET 1963 Apr 14 @@ -105,82 +106,57 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 M 1:00- CET # Angola -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52:04 - AOT 1911 May 26 # Angola Time - 1:00- WAT - # Benin -# Whitman says they switched to 1:00 in 1946, not 1934; -# go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Porto-Novo 0:10:28 - LMT 1912 - 0:00- GMT 1934 Feb 26 - 1:00- WAT +# See Africa/Lagos. # Botswana -# From Paul Eggert (2013-02-21): -# Milne says they were regulated by the Cape Town Signal in 1899; -# assume they switched to 2:00 when Cape Town did. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Gaborone 1:43:40 - LMT 1885 - 1:30- SAST1903 Mar - 2:00- CAT 1943 Sep 19 2:00 - 2:001:00CAST1944 Mar 19 2:00 - 2:00- CAT +# See Africa/Maputo. # Burkina Faso # See Africa/Abidjan. # Burundi -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bujumbura 1:57:28 - LMT 1890 - 2:00- CAT +# See Africa/Maputo. # Cameroon -# Whitman says they switched to 1:00 in 1920; go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Douala 0:38:48 - LMT 1912 - 1:00- WAT +# See Africa/Lagos. # Cape Verde +# +# Shanks gives 1907 for the transition to CVT. +# Perhaps the 1911-05-26 Portuguese decree +# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# merely made it official? +# # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia +Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia
svn commit: r273721 - stable/9/contrib/tzdata
Author: edwin Date: Mon Oct 27 06:12:29 2014 New Revision: 273721 URL: https://svnweb.freebsd.org/changeset/base/273721 Log: MFC of 267473,tzdata2014e Fix historical data for Egypt. Better prediction for future Egypt / Morocco changes. Update to Cocos / Cook islands. Fix historical data for Russia. Modified: Directory Properties: stable/9/contrib/tzdata/zone1970.tab (props changed) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273722 - stable/8/share/zoneinfo
Author: edwin Date: Mon Oct 27 06:12:41 2014 New Revision: 273722 URL: https://svnweb.freebsd.org/changeset/base/273722 Log: MFC of 273718, tzdata2014i Upgrade to 2014i Lots of historical data Pacific/Fiji will go into DST from 2014-11-02 to 2015-01-18 Pacific/Bougainville will go from UTC+10 to UTC+11. Europe/Minsk will go from FET to MSK. Modified: stable/8/share/zoneinfo/africa stable/8/share/zoneinfo/antarctica stable/8/share/zoneinfo/asia stable/8/share/zoneinfo/australasia stable/8/share/zoneinfo/backward stable/8/share/zoneinfo/europe stable/8/share/zoneinfo/northamerica stable/8/share/zoneinfo/southamerica stable/8/share/zoneinfo/zone.tab stable/8/share/zoneinfo/zone1970.tab (contents, props changed) Modified: stable/8/share/zoneinfo/africa == --- stable/8/share/zoneinfo/africa Mon Oct 27 06:12:29 2014 (r273721) +++ stable/8/share/zoneinfo/africa Mon Oct 27 06:12:41 2014 (r273722) @@ -1,9 +1,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# This data is by no means authoritative; if you think you know better, +# This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to -# t...@iana.org for general use in the future). +# t...@iana.org for general use in the future). For more, please see +# the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2013-02-21): # @@ -25,8 +26,8 @@ # I found in the UCLA library. # # For data circa 1899, a common source is: -# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# http://www.jstor.org/stable/1774359. +# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. +# http://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). @@ -93,9 +94,9 @@ Rule Algeria 1980only- Oct 31 2:00 0 # Shanks Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 - 0:09:21 - PMT 1911 Mar 11# Paris Mean Time - 0:00Algeria WE%sT 1940 Feb 25 2:00 +Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 + 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time + 0:00Algeria WE%sT 1940 Feb 25 2:00 1:00Algeria CE%sT 1946 Oct 7 0:00- WET 1956 Jan 29 1:00- CET 1963 Apr 14 @@ -105,82 +106,57 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 M 1:00- CET # Angola -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52:04 - AOT 1911 May 26 # Angola Time - 1:00- WAT - # Benin -# Whitman says they switched to 1:00 in 1946, not 1934; -# go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Porto-Novo 0:10:28 - LMT 1912 - 0:00- GMT 1934 Feb 26 - 1:00- WAT +# See Africa/Lagos. # Botswana -# From Paul Eggert (2013-02-21): -# Milne says they were regulated by the Cape Town Signal in 1899; -# assume they switched to 2:00 when Cape Town did. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Gaborone 1:43:40 - LMT 1885 - 1:30- SAST1903 Mar - 2:00- CAT 1943 Sep 19 2:00 - 2:001:00CAST1944 Mar 19 2:00 - 2:00- CAT +# See Africa/Maputo. # Burkina Faso # See Africa/Abidjan. # Burundi -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bujumbura 1:57:28 - LMT 1890 - 2:00- CAT +# See Africa/Maputo. # Cameroon -# Whitman says they switched to 1:00 in 1920; go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Douala 0:38:48 - LMT 1912 - 1:00- WAT +# See Africa/Lagos. # Cape Verde +# +# Shanks gives 1907 for the transition to CVT. +# Perhaps the 1911-05-26 Portuguese decree +# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# merely made it official? +# # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia +Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia -2:00 -
svn commit: r273720 - stable/9/contrib/tzdata
Author: edwin Date: Mon Oct 27 06:12:10 2014 New Revision: 273720 URL: https://svnweb.freebsd.org/changeset/base/273720 Log: MFC of 273718, tzdata2014i Upgrade to 2014i Lots of historical data Pacific/Fiji will go into DST from 2014-11-02 to 2015-01-18 Pacific/Bougainville will go from UTC+10 to UTC+11. Europe/Minsk will go from FET to MSK. Modified: stable/9/contrib/tzdata/africa stable/9/contrib/tzdata/antarctica stable/9/contrib/tzdata/asia stable/9/contrib/tzdata/australasia stable/9/contrib/tzdata/backward stable/9/contrib/tzdata/europe stable/9/contrib/tzdata/northamerica stable/9/contrib/tzdata/southamerica stable/9/contrib/tzdata/zone.tab stable/9/contrib/tzdata/zone1970.tab Directory Properties: stable/9/contrib/tzdata/ (props changed) Modified: stable/9/contrib/tzdata/africa == --- stable/9/contrib/tzdata/africa Mon Oct 27 06:05:40 2014 (r273719) +++ stable/9/contrib/tzdata/africa Mon Oct 27 06:12:10 2014 (r273720) @@ -1,9 +1,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# This data is by no means authoritative; if you think you know better, +# This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to -# t...@iana.org for general use in the future). +# t...@iana.org for general use in the future). For more, please see +# the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2013-02-21): # @@ -25,8 +26,8 @@ # I found in the UCLA library. # # For data circa 1899, a common source is: -# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# http://www.jstor.org/stable/1774359. +# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. +# http://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). @@ -93,9 +94,9 @@ Rule Algeria 1980only- Oct 31 2:00 0 # Shanks Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 - 0:09:21 - PMT 1911 Mar 11# Paris Mean Time - 0:00Algeria WE%sT 1940 Feb 25 2:00 +Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 + 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time + 0:00Algeria WE%sT 1940 Feb 25 2:00 1:00Algeria CE%sT 1946 Oct 7 0:00- WET 1956 Jan 29 1:00- CET 1963 Apr 14 @@ -105,82 +106,57 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 M 1:00- CET # Angola -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52:04 - AOT 1911 May 26 # Angola Time - 1:00- WAT - # Benin -# Whitman says they switched to 1:00 in 1946, not 1934; -# go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Porto-Novo 0:10:28 - LMT 1912 - 0:00- GMT 1934 Feb 26 - 1:00- WAT +# See Africa/Lagos. # Botswana -# From Paul Eggert (2013-02-21): -# Milne says they were regulated by the Cape Town Signal in 1899; -# assume they switched to 2:00 when Cape Town did. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Gaborone 1:43:40 - LMT 1885 - 1:30- SAST1903 Mar - 2:00- CAT 1943 Sep 19 2:00 - 2:001:00CAST1944 Mar 19 2:00 - 2:00- CAT +# See Africa/Maputo. # Burkina Faso # See Africa/Abidjan. # Burundi -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bujumbura 1:57:28 - LMT 1890 - 2:00- CAT +# See Africa/Maputo. # Cameroon -# Whitman says they switched to 1:00 in 1920; go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Douala 0:38:48 - LMT 1912 - 1:00- WAT +# See Africa/Lagos. # Cape Verde +# +# Shanks gives 1907 for the transition to CVT. +# Perhaps the 1911-05-26 Portuguese decree +# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# merely made it official? +# # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia +Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907#
svn commit: r273723 - stable/7/share/zoneinfo
Author: edwin Date: Mon Oct 27 06:13:22 2014 New Revision: 273723 URL: https://svnweb.freebsd.org/changeset/base/273723 Log: MFC of 273718, tzdata2014i Upgrade to 2014i Lots of historical data Pacific/Fiji will go into DST from 2014-11-02 to 2015-01-18 Pacific/Bougainville will go from UTC+10 to UTC+11. Europe/Minsk will go from FET to MSK. Modified: stable/7/share/zoneinfo/africa stable/7/share/zoneinfo/antarctica stable/7/share/zoneinfo/asia stable/7/share/zoneinfo/australasia stable/7/share/zoneinfo/backward stable/7/share/zoneinfo/europe stable/7/share/zoneinfo/northamerica stable/7/share/zoneinfo/southamerica stable/7/share/zoneinfo/zone.tab stable/7/share/zoneinfo/zone1970.tab (contents, props changed) Modified: stable/7/share/zoneinfo/africa == --- stable/7/share/zoneinfo/africa Mon Oct 27 06:12:41 2014 (r273722) +++ stable/7/share/zoneinfo/africa Mon Oct 27 06:13:22 2014 (r273723) @@ -1,9 +1,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# This data is by no means authoritative; if you think you know better, +# This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to -# t...@iana.org for general use in the future). +# t...@iana.org for general use in the future). For more, please see +# the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2013-02-21): # @@ -25,8 +26,8 @@ # I found in the UCLA library. # # For data circa 1899, a common source is: -# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# http://www.jstor.org/stable/1774359. +# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. +# http://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). @@ -93,9 +94,9 @@ Rule Algeria 1980only- Oct 31 2:00 0 # Shanks Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 - 0:09:21 - PMT 1911 Mar 11# Paris Mean Time - 0:00Algeria WE%sT 1940 Feb 25 2:00 +Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 + 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time + 0:00Algeria WE%sT 1940 Feb 25 2:00 1:00Algeria CE%sT 1946 Oct 7 0:00- WET 1956 Jan 29 1:00- CET 1963 Apr 14 @@ -105,82 +106,57 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 M 1:00- CET # Angola -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52:04 - AOT 1911 May 26 # Angola Time - 1:00- WAT - # Benin -# Whitman says they switched to 1:00 in 1946, not 1934; -# go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Porto-Novo 0:10:28 - LMT 1912 - 0:00- GMT 1934 Feb 26 - 1:00- WAT +# See Africa/Lagos. # Botswana -# From Paul Eggert (2013-02-21): -# Milne says they were regulated by the Cape Town Signal in 1899; -# assume they switched to 2:00 when Cape Town did. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Gaborone 1:43:40 - LMT 1885 - 1:30- SAST1903 Mar - 2:00- CAT 1943 Sep 19 2:00 - 2:001:00CAST1944 Mar 19 2:00 - 2:00- CAT +# See Africa/Maputo. # Burkina Faso # See Africa/Abidjan. # Burundi -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bujumbura 1:57:28 - LMT 1890 - 2:00- CAT +# See Africa/Maputo. # Cameroon -# Whitman says they switched to 1:00 in 1920; go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Douala 0:38:48 - LMT 1912 - 1:00- WAT +# See Africa/Lagos. # Cape Verde +# +# Shanks gives 1907 for the transition to CVT. +# Perhaps the 1911-05-26 Portuguese decree +# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# merely made it official? +# # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia +Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia -2:00 -
svn commit: r273724 - stable/6/share/zoneinfo
Author: edwin Date: Mon Oct 27 06:14:13 2014 New Revision: 273724 URL: https://svnweb.freebsd.org/changeset/base/273724 Log: MFC of 273718, tzdata2014i Upgrade to 2014i Lots of historical data Pacific/Fiji will go into DST from 2014-11-02 to 2015-01-18 Pacific/Bougainville will go from UTC+10 to UTC+11. Europe/Minsk will go from FET to MSK. Modified: stable/6/share/zoneinfo/africa stable/6/share/zoneinfo/antarctica stable/6/share/zoneinfo/asia stable/6/share/zoneinfo/australasia stable/6/share/zoneinfo/backward stable/6/share/zoneinfo/europe stable/6/share/zoneinfo/northamerica stable/6/share/zoneinfo/southamerica stable/6/share/zoneinfo/zone.tab stable/6/share/zoneinfo/zone1970.tab (contents, props changed) Modified: stable/6/share/zoneinfo/africa == --- stable/6/share/zoneinfo/africa Mon Oct 27 06:13:22 2014 (r273723) +++ stable/6/share/zoneinfo/africa Mon Oct 27 06:14:13 2014 (r273724) @@ -1,9 +1,10 @@ # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. -# This data is by no means authoritative; if you think you know better, +# This file is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to -# t...@iana.org for general use in the future). +# t...@iana.org for general use in the future). For more, please see +# the file CONTRIBUTING in the tz distribution. # From Paul Eggert (2013-02-21): # @@ -25,8 +26,8 @@ # I found in the UCLA library. # # For data circa 1899, a common source is: -# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94 -# http://www.jstor.org/stable/1774359. +# Milne J. Civil time. Geogr J. 1899 Feb;13(2):173-94. +# http://www.jstor.org/stable/1774359 # # A reliable and entertaining source about time zones is # Derek Howse, Greenwich time and longitude, Philip Wilson Publishers (1997). @@ -93,9 +94,9 @@ Rule Algeria 1980only- Oct 31 2:00 0 # Shanks Pottenger give 0:09:20 for Paris Mean Time; go with Howse's # more precise 0:09:21. # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 - 0:09:21 - PMT 1911 Mar 11# Paris Mean Time - 0:00Algeria WE%sT 1940 Feb 25 2:00 +Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 + 0:09:21 - PMT 1911 Mar 11 # Paris Mean Time + 0:00Algeria WE%sT 1940 Feb 25 2:00 1:00Algeria CE%sT 1946 Oct 7 0:00- WET 1956 Jan 29 1:00- CET 1963 Apr 14 @@ -105,82 +106,57 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 M 1:00- CET # Angola -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Luanda 0:52:56 - LMT 1892 - 0:52:04 - AOT 1911 May 26 # Angola Time - 1:00- WAT - # Benin -# Whitman says they switched to 1:00 in 1946, not 1934; -# go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Porto-Novo 0:10:28 - LMT 1912 - 0:00- GMT 1934 Feb 26 - 1:00- WAT +# See Africa/Lagos. # Botswana -# From Paul Eggert (2013-02-21): -# Milne says they were regulated by the Cape Town Signal in 1899; -# assume they switched to 2:00 when Cape Town did. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Gaborone 1:43:40 - LMT 1885 - 1:30- SAST1903 Mar - 2:00- CAT 1943 Sep 19 2:00 - 2:001:00CAST1944 Mar 19 2:00 - 2:00- CAT +# See Africa/Maputo. # Burkina Faso # See Africa/Abidjan. # Burundi -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bujumbura 1:57:28 - LMT 1890 - 2:00- CAT +# See Africa/Maputo. # Cameroon -# Whitman says they switched to 1:00 in 1920; go with Shanks Pottenger. -# Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Africa/Douala 0:38:48 - LMT 1912 - 1:00- WAT +# See Africa/Lagos. # Cape Verde +# +# Shanks gives 1907 for the transition to CVT. +# Perhaps the 1911-05-26 Portuguese decree +# http://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf +# merely made it official? +# # Zone NAMEGMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia +Zone Atlantic/Cape_Verde -1:34:04 -LMT 1907# Praia -2:00 -
svn commit: r273725 - in stable/10/sys/dev/ata: . chipsets
Author: mav Date: Mon Oct 27 07:20:39 2014 New Revision: 273725 URL: https://svnweb.freebsd.org/changeset/base/273725 Log: MFC r273328: Add another PCI ID for JMB368 PATA controller. Modified: stable/10/sys/dev/ata/ata-pci.h stable/10/sys/dev/ata/chipsets/ata-jmicron.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/ata/ata-pci.h == --- stable/10/sys/dev/ata/ata-pci.h Mon Oct 27 06:14:13 2014 (r273724) +++ stable/10/sys/dev/ata/ata-pci.h Mon Oct 27 07:20:39 2014 (r273725) @@ -306,6 +306,7 @@ struct ata_pci_controller { #define ATA_JMB365 0x2365197b #define ATA_JMB366 0x2366197b #define ATA_JMB368 0x2368197b +#define ATA_JMB368_20x0368197b #define ATA_MARVELL_ID 0x11ab #define ATA_M88SX5040 0x504011ab Modified: stable/10/sys/dev/ata/chipsets/ata-jmicron.c == --- stable/10/sys/dev/ata/chipsets/ata-jmicron.cMon Oct 27 06:14:13 2014(r273724) +++ stable/10/sys/dev/ata/chipsets/ata-jmicron.cMon Oct 27 07:20:39 2014(r273725) @@ -71,6 +71,7 @@ ata_jmicron_probe(device_t dev) { ATA_JMB365, 0, 1, 2, ATA_UDMA6, JMB365 }, { ATA_JMB366, 0, 2, 2, ATA_UDMA6, JMB366 }, { ATA_JMB368, 0, 0, 1, ATA_UDMA6, JMB368 }, + { ATA_JMB368_2, 0, 0, 1, ATA_UDMA6, JMB368 }, { 0, 0, 0, 0, 0, 0}}; char buffer[64]; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273726 - in stable/9/sys/dev/ata: . chipsets
Author: mav Date: Mon Oct 27 07:21:37 2014 New Revision: 273726 URL: https://svnweb.freebsd.org/changeset/base/273726 Log: MFC r273328: Add another PCI ID for JMB368 PATA controller. Modified: stable/9/sys/dev/ata/ata-pci.h stable/9/sys/dev/ata/chipsets/ata-jmicron.c Directory Properties: stable/9/ (props changed) stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/ata/ata-pci.h == --- stable/9/sys/dev/ata/ata-pci.h Mon Oct 27 07:20:39 2014 (r273725) +++ stable/9/sys/dev/ata/ata-pci.h Mon Oct 27 07:21:37 2014 (r273726) @@ -309,6 +309,7 @@ struct ata_pci_controller { #define ATA_JMB365 0x2365197b #define ATA_JMB366 0x2366197b #define ATA_JMB368 0x2368197b +#define ATA_JMB368_20x0368197b #define ATA_MARVELL_ID 0x11ab #define ATA_M88SX5040 0x504011ab Modified: stable/9/sys/dev/ata/chipsets/ata-jmicron.c == --- stable/9/sys/dev/ata/chipsets/ata-jmicron.c Mon Oct 27 07:20:39 2014 (r273725) +++ stable/9/sys/dev/ata/chipsets/ata-jmicron.c Mon Oct 27 07:21:37 2014 (r273726) @@ -72,6 +72,7 @@ ata_jmicron_probe(device_t dev) { ATA_JMB365, 0, 1, 2, ATA_UDMA6, JMB365 }, { ATA_JMB366, 0, 2, 2, ATA_UDMA6, JMB366 }, { ATA_JMB368, 0, 0, 1, ATA_UDMA6, JMB368 }, + { ATA_JMB368_2, 0, 0, 1, ATA_UDMA6, JMB368 }, { 0, 0, 0, 0, 0, 0}}; char buffer[64]; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273727 - head/sys/fs/nfsserver
Author: kib Date: Mon Oct 27 07:47:13 2014 New Revision: 273727 URL: https://svnweb.freebsd.org/changeset/base/273727 Log: Allow the vfs.nfsd knobs to be set from loader.conf (or using kenv(8)). This is useful when nfsd is loaded as module. Reviewed by: rmacklem Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c Modified: head/sys/fs/nfsserver/nfs_nfsdkrpc.c == --- head/sys/fs/nfsserver/nfs_nfsdkrpc.cMon Oct 27 07:21:37 2014 (r273726) +++ head/sys/fs/nfsserver/nfs_nfsdkrpc.cMon Oct 27 07:47:13 2014 (r273727) @@ -85,16 +85,16 @@ SYSCTL_DECL(_vfs_nfsd); SVCPOOL*nfsrvd_pool; static int nfs_privport = 0; -SYSCTL_INT(_vfs_nfsd, OID_AUTO, nfs_privport, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfsd, OID_AUTO, nfs_privport, CTLFLAG_RWTUN, nfs_privport, 0, Only allow clients using a privileged port for NFSv2 and 3); static int nfs_minvers = NFS_VER2; -SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_min_nfsvers, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_min_nfsvers, CTLFLAG_RWTUN, nfs_minvers, 0, The lowest version of NFS handled by the server); static int nfs_maxvers = NFS_VER4; -SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_max_nfsvers, CTLFLAG_RW, +SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_max_nfsvers, CTLFLAG_RWTUN, nfs_maxvers, 0, The highest version of NFS handled by the server); static int nfs_proc(struct nfsrv_descript *, u_int32_t, SVCXPRT *xprt, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273728 - head/sys/dev/iicbus
Author: kib Date: Mon Oct 27 07:51:26 2014 New Revision: 273728 URL: https://svnweb.freebsd.org/changeset/base/273728 Log: Add a method to iicbus to request IIC_M_NOSTOP behaviour for multibyte transfers to be default. It simplifies porting code which assumes such settings. Discussed with: avg, llos, nwhitehorn Sponsored by: The FreeBSD Foundation MFC after:1 week Modified: head/sys/dev/iicbus/iicbus.h head/sys/dev/iicbus/iiconf.c Modified: head/sys/dev/iicbus/iicbus.h == --- head/sys/dev/iicbus/iicbus.hMon Oct 27 07:47:13 2014 (r273727) +++ head/sys/dev/iicbus/iicbus.hMon Oct 27 07:51:26 2014 (r273728) @@ -49,16 +49,19 @@ struct iicbus_softc struct iicbus_ivar { uint32_taddr; + boolnostop; }; enum { - IICBUS_IVAR_ADDR/* Address or base address */ + IICBUS_IVAR_ADDR, /* Address or base address */ + IICBUS_IVAR_NOSTOP, /* nostop defaults */ }; #define IICBUS_ACCESSOR(A, B, T) \ __BUS_ACCESSOR(iicbus, A, IICBUS, B, T) IICBUS_ACCESSOR(addr, ADDR, uint32_t) +IICBUS_ACCESSOR(nostop,NOSTOP, bool) #defineIICBUS_LOCK(sc) mtx_lock((sc)-lock) #defineIICBUS_UNLOCK(sc) mtx_unlock((sc)-lock) Modified: head/sys/dev/iicbus/iiconf.c == --- head/sys/dev/iicbus/iiconf.cMon Oct 27 07:47:13 2014 (r273727) +++ head/sys/dev/iicbus/iiconf.cMon Oct 27 07:51:26 2014 (r273728) @@ -365,6 +365,7 @@ iicbus_transfer_gen(device_t dev, struct { int i, error, lenread, lenwrote, nkid, rpstart, addr; device_t *children, bus; + bool nostop; if ((error = device_get_children(dev, children, nkid)) != 0) return (error); @@ -375,6 +376,7 @@ iicbus_transfer_gen(device_t dev, struct bus = children[0]; rpstart = 0; free(children, M_TEMP); + nostop = iicbus_get_nostop(dev); for (i = 0, error = 0; i nmsgs error == 0; i++) { addr = msgs[i].slave; if (msgs[i].flags IIC_M_RD) @@ -399,11 +401,12 @@ iicbus_transfer_gen(device_t dev, struct error = iicbus_write(bus, msgs[i].buf, msgs[i].len, lenwrote, 0); - if (!(msgs[i].flags IIC_M_NOSTOP)) { + if ((msgs[i].flags IIC_M_NOSTOP) != 0 || + (nostop i + 1 nmsgs)) { + rpstart = 1;/* Next message gets repeated start */ + } else { rpstart = 0; iicbus_stop(bus); - } else { - rpstart = 1;/* Next message gets repeated start */ } } return (error); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273730 - head/sys/cam/ctl
Author: mav Date: Mon Oct 27 09:26:24 2014 New Revision: 273730 URL: https://svnweb.freebsd.org/changeset/base/273730 Log: Reduce code duplication around Write Exclusive persistent reservation. While there, allow some more commands to pass persistent reservation. MFC after:1 week Modified: head/sys/cam/ctl/ctl.c head/sys/cam/ctl/ctl_cmd_table.c head/sys/cam/ctl/ctl_private.h Modified: head/sys/cam/ctl/ctl.c == --- head/sys/cam/ctl/ctl.c Mon Oct 27 09:07:30 2014(r273729) +++ head/sys/cam/ctl/ctl.c Mon Oct 27 09:26:24 2014(r273730) @@ -5341,8 +5341,7 @@ ctl_scsi_reserve(struct ctl_scsiio *ctsi mtx_lock(lun-lun_lock); if ((lun-flags CTL_LUN_RESERVED) (lun-res_idx != residx)) { - ctsio-scsi_status = SCSI_STATUS_RESERV_CONFLICT; - ctsio-io_hdr.status = CTL_SCSI_ERROR; + ctl_set_reservation_conflict(ctsio); goto bailout; } @@ -5693,24 +5692,6 @@ ctl_read_buffer(struct ctl_scsiio *ctsio lun = (struct ctl_lun *)ctsio-io_hdr.ctl_private[CTL_PRIV_LUN].ptr; cdb = (struct scsi_read_buffer *)ctsio-cdb; - if (lun-flags CTL_LUN_PR_RESERVED) { - uint32_t residx; - - /* -* XXX KDM need a lock here. -*/ - residx = ctl_get_resindex(ctsio-io_hdr.nexus); - if ((lun-res_type == SPR_TYPE_EX_AC - residx != lun-pr_res_idx) -|| ((lun-res_type == SPR_TYPE_EX_AC_RO - || lun-res_type == SPR_TYPE_EX_AC_AR) - lun-pr_keys[residx] == 0)) { - ctl_set_reservation_conflict(ctsio); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); - } - } - if ((cdb-byte2 RWB_MODE) != RWB_MODE_DATA (cdb-byte2 RWB_MODE) != RWB_MODE_ECHO_DESCR (cdb-byte2 RWB_MODE) != RWB_MODE_DESCR) { @@ -6642,24 +6623,6 @@ ctl_mode_sense(struct ctl_scsiio *ctsio) else control_dev = 0; - if (lun-flags CTL_LUN_PR_RESERVED) { - uint32_t residx; - - /* -* XXX KDM need a lock here. -*/ - residx = ctl_get_resindex(ctsio-io_hdr.nexus); - if ((lun-res_type == SPR_TYPE_EX_AC - residx != lun-pr_res_idx) -|| ((lun-res_type == SPR_TYPE_EX_AC_RO - || lun-res_type == SPR_TYPE_EX_AC_AR) - lun-pr_keys[residx] == 0)) { - ctl_set_reservation_conflict(ctsio); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); - } - } - switch (ctsio-cdb[0]) { case MODE_SENSE_6: { struct scsi_mode_sense_6 *cdb; @@ -7196,23 +7159,6 @@ ctl_read_defect(struct ctl_scsiio *ctsio CTL_DEBUG_PRINT((ctl_read_defect\n)); lun = (struct ctl_lun *)ctsio-io_hdr.ctl_private[CTL_PRIV_LUN].ptr; - if (lun-flags CTL_LUN_PR_RESERVED) { - uint32_t residx; - - /* -* XXX KDM need a lock here. -*/ - residx = ctl_get_resindex(ctsio-io_hdr.nexus); - if ((lun-res_type == SPR_TYPE_EX_AC - residx != lun-pr_res_idx) -|| ((lun-res_type == SPR_TYPE_EX_AC_RO - || lun-res_type == SPR_TYPE_EX_AC_AR) - lun-pr_keys[residx] == 0)) { - ctl_set_reservation_conflict(ctsio); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); - } - } if (ctsio-cdb[0] == READ_DEFECT_DATA_10) { ccb10 = (struct scsi_read_defect_data_10 *)ctsio-cdb; @@ -8906,24 +8852,6 @@ ctl_read_write(struct ctl_scsiio *ctsio) isread = ctsio-cdb[0] == READ_6 || ctsio-cdb[0] == READ_10 || ctsio-cdb[0] == READ_12 || ctsio-cdb[0] == READ_16; - if (lun-flags CTL_LUN_PR_RESERVED isread) { - uint32_t residx; - - /* -* XXX KDM need a lock here. -*/ - residx = ctl_get_resindex(ctsio-io_hdr.nexus); - if ((lun-res_type == SPR_TYPE_EX_AC - residx != lun-pr_res_idx) -|| ((lun-res_type == SPR_TYPE_EX_AC_RO - || lun-res_type == SPR_TYPE_EX_AC_AR) - lun-pr_keys[residx] == 0)) { - ctl_set_reservation_conflict(ctsio); - ctl_done((union ctl_io *)ctsio); - return (CTL_RETVAL_COMPLETE); - } - } - switch (ctsio-cdb[0]) { case READ_6: case WRITE_6: { @@ -11225,15 +11153,21 @@
svn commit: r273731 - head/sys/cam/ctl
Author: mav Date: Mon Oct 27 09:30:57 2014 New Revision: 273731 URL: https://svnweb.freebsd.org/changeset/base/273731 Log: Remove comment obsoleted by r273730. MFC after:1 week Modified: head/sys/cam/ctl/ctl.c Modified: head/sys/cam/ctl/ctl.c == --- head/sys/cam/ctl/ctl.c Mon Oct 27 09:26:24 2014(r273730) +++ head/sys/cam/ctl/ctl.c Mon Oct 27 09:30:57 2014(r273731) @@ -11172,9 +11172,6 @@ ctl_scsiio_lun_check(struct ctl_softc *c * if we aren't registered or it's a res holder type * reservation and this isn't the res holder then set a * conflict. -* NOTE: Commands which might be allowed on write exclusive -* type reservations are checked in the particular command -* for a conflict. Read and SSU are the only ones. */ if (lun-pr_keys[residx] == 0 || (residx != lun-pr_res_idx lun-res_type 4)) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273732 - head/sys/netinet6
Author: ae Date: Mon Oct 27 10:34:09 2014 New Revision: 273732 URL: https://svnweb.freebsd.org/changeset/base/273732 Log: Remove unused function. Sponsored by: Yandex LLC Modified: head/sys/netinet6/in6.c head/sys/netinet6/in6_var.h Modified: head/sys/netinet6/in6.c == --- head/sys/netinet6/in6.c Mon Oct 27 09:30:57 2014(r273731) +++ head/sys/netinet6/in6.c Mon Oct 27 10:34:09 2014(r273732) @@ -1584,20 +1584,6 @@ in6_unlink_ifa(struct in6_ifaddr *ia, st ifa_free(ia-ia_ifa); /* in6_ifaddrhead */ } -void -in6_purgeif(struct ifnet *ifp) -{ - struct ifaddr *ifa, *nifa; - - TAILQ_FOREACH_SAFE(ifa, ifp-if_addrhead, ifa_link, nifa) { - if (ifa-ifa_addr-sa_family != AF_INET6) - continue; - in6_purgeaddr(ifa); - } - - in6_ifdetach(ifp); -} - /* * Notifies other other subsystems about address change/arrival: * 1) Notifies device handler on first IPv6 address assignment Modified: head/sys/netinet6/in6_var.h == --- head/sys/netinet6/in6_var.h Mon Oct 27 09:30:57 2014(r273731) +++ head/sys/netinet6/in6_var.h Mon Oct 27 10:34:09 2014(r273732) @@ -804,7 +804,6 @@ voidin6_prepare_ifra(struct in6_aliasre const struct in6_addr *); void in6_purgeaddr(struct ifaddr *); intin6if_do_dad(struct ifnet *); -void in6_purgeif(struct ifnet *); void in6_savemkludge(struct in6_ifaddr *); void *in6_domifattach(struct ifnet *); void in6_domifdetach(struct ifnet *, void *); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273733 - head/sys/netinet/cc
Author: hselasky Date: Mon Oct 27 11:21:47 2014 New Revision: 273733 URL: https://svnweb.freebsd.org/changeset/base/273733 Log: Make assignments to net.inet.tcp.cc.algorithm work by fixing a bad string comparison. MFC after:3 days Reported by: Jukka Ukkonen jau...@gmail.com Sponsored by: Mellanox Technologies Modified: head/sys/netinet/cc/cc.c Modified: head/sys/netinet/cc/cc.c == --- head/sys/netinet/cc/cc.cMon Oct 27 10:34:09 2014(r273732) +++ head/sys/netinet/cc/cc.cMon Oct 27 11:21:47 2014(r273733) @@ -106,11 +106,13 @@ cc_default_algo(SYSCTL_HANDLER_ARGS) /* Find algo with specified name and set it to default. */ CC_LIST_RLOCK(); STAILQ_FOREACH(funcs, cc_list, entries) { - if (strncmp((char *)req-newptr, funcs-name, - TCP_CA_NAME_MAX) == 0) { - found = 1; - V_default_cc_ptr = funcs; - } + /* NOTE: newptr is not zero terminated */ + if (req-newlen != strlen(funcs-name)) + continue; + if (bcmp(req-newptr, funcs-name, req-newlen)) + continue; + found = 1; + V_default_cc_ptr = funcs; } CC_LIST_RUNLOCK(); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273734 - head/bin/dd
Author: pi (ports committer) Date: Mon Oct 27 11:38:17 2014 New Revision: 273734 URL: https://svnweb.freebsd.org/changeset/base/273734 Log: bin/dd: Fix incorrect casting of arguments dd(1) casts many of its numeric arguments from uintmax_t to intmax_t and back again to detect whether or not the original arguments were negative. This caused wrong behaviour in some boundary cases: $ dd if=/dev/zero of=/dev/null count=18446744073709551615 dd: count cannot be negative After the fix: $ dd if=/dev/zero of=/dev/null count=18446744073709551615 dd: count: Result too large PR: 191263 Submitted by: w...@worrbase.com Approved by: cognet@ Modified: head/bin/dd/args.c head/bin/dd/conv.c head/bin/dd/dd.c head/bin/dd/dd.h head/bin/dd/position.c Modified: head/bin/dd/args.c == --- head/bin/dd/args.c Mon Oct 27 11:21:47 2014(r273733) +++ head/bin/dd/args.c Mon Oct 27 11:38:17 2014(r273734) @@ -41,6 +41,7 @@ __FBSDID($FreeBSD$); #include sys/types.h +#include ctype.h #include err.h #include errno.h #include inttypes.h @@ -171,8 +172,7 @@ jcl(char **argv) */ if (in.offset OFF_MAX / (ssize_t)in.dbsz || out.offset OFF_MAX / (ssize_t)out.dbsz) - errx(1, seek offsets cannot be larger than %jd, - (intmax_t)OFF_MAX); + errx(1, seek offsets cannot be larger than %jd, OFF_MAX); } static int @@ -186,37 +186,30 @@ c_arg(const void *a, const void *b) static void f_bs(char *arg) { - uintmax_t res; - res = get_num(arg); - if (res 1 || res SSIZE_MAX) - errx(1, bs must be between 1 and %jd, (intmax_t)SSIZE_MAX); - in.dbsz = out.dbsz = (size_t)res; + in.dbsz = out.dbsz = get_num(arg); + if (out.dbsz 1 || out.dbsz SSIZE_MAX) + errx(1, bs must be between 1 and %jd, SSIZE_MAX); } static void f_cbs(char *arg) { - uintmax_t res; - res = get_num(arg); - if (res 1 || res SSIZE_MAX) - errx(1, cbs must be between 1 and %jd, (intmax_t)SSIZE_MAX); - cbsz = (size_t)res; + cbsz = get_num(arg); + if (cbsz 1 || cbsz SSIZE_MAX) + errx(1, cbs must be between 1 and %jd, SSIZE_MAX); } static void f_count(char *arg) { - intmax_t res; - res = (intmax_t)get_num(arg); - if (res 0) - errx(1, count cannot be negative); - if (res == 0) - cpy_cnt = (uintmax_t)-1; - else - cpy_cnt = (uintmax_t)res; + cpy_cnt = get_num(arg); + if (cpy_cnt == SIZE_MAX) + errc(1, ERANGE, %s, oper); + if (cpy_cnt == 0) + cpy_cnt = -1; } static void @@ -225,7 +218,7 @@ f_files(char *arg) files_cnt = get_num(arg); if (files_cnt 1) - errx(1, files must be between 1 and %jd, (uintmax_t)-1); + errx(1, files must be between 1 and %ju, SIZE_MAX); } static void @@ -241,14 +234,11 @@ f_fillchar(char *arg) static void f_ibs(char *arg) { - uintmax_t res; if (!(ddflags C_BS)) { - res = get_num(arg); - if (res 1 || res SSIZE_MAX) - errx(1, ibs must be between 1 and %jd, - (intmax_t)SSIZE_MAX); - in.dbsz = (size_t)res; + in.dbsz = get_num(arg); + if (in.dbsz 1 || in.dbsz SSIZE_MAX) + errx(1, ibs must be between 1 and %ju, SSIZE_MAX); } } @@ -262,14 +252,11 @@ f_if(char *arg) static void f_obs(char *arg) { - uintmax_t res; if (!(ddflags C_BS)) { - res = get_num(arg); - if (res 1 || res SSIZE_MAX) - errx(1, obs must be between 1 and %jd, - (intmax_t)SSIZE_MAX); - out.dbsz = (size_t)res; + out.dbsz = get_num(arg); + if (out.dbsz 1 || out.dbsz SSIZE_MAX) + errx(1, obs must be between 1 and %jd, SSIZE_MAX); } } @@ -378,11 +365,17 @@ get_num(const char *val) uintmax_t num, mult, prevnum; char *expr; + while (isspace(val[0])) + val++; + + if (val[0] == '-') + errx(1, %s: cannot be negative, oper); + errno = 0; - num = strtouq(val, expr, 0); + num = strtoull(val, expr, 0); if (errno != 0) /* Overflow or underflow. */ err(1, %s, oper); - + if (expr == val)/* No valid digits. */ errx(1, %s: illegal numeric value, oper); Modified: head/bin/dd/conv.c == --- head/bin/dd/conv.c Mon Oct 27 11:21:47 2014(r273733) +++ head/bin/dd/conv.c Mon Oct
svn commit: r273735 - stable/10/sys/arm/ti
Author: loos Date: Mon Oct 27 12:18:07 2014 New Revision: 273735 URL: https://svnweb.freebsd.org/changeset/base/273735 Log: MFC: r266336, r270230 and r273263 r266336: Allow us to compile the Ti iic driver for both OMAP4 and AM335x. r270230: Rewrite of ti_i2c based on gonzo's patch, fix the following bugs/problems: . interrupt storm detected on intr70:; throttling interrupt source; . Added access serialization on iicbus_transfer(), previously there was no such protection and a new transfer could easily confuse the controller; . Add error checkings (i.e. stop the transfer when a error is detected and do _not_ overwrite the previous error); . On command done interrupt do not assume that the transfer was finished sucessfully as we will receive the command done interrupt even after errors; . Simplify the FIFO handling; . Reset the FIFO between the transfers as the FIFO may contain data from the last (failed) transfer; . Fix the iicbus speed for AM335x, which in turn will make better use of the I2C noise filter (set to one internal clock cycle); . Move the read and write handler to ithread instead of notifying the requesting thread with wakeup(9); . Fix the comments based on OMAP4 TRM. The above changes allows me to read the EDID from my HDMI monitor on BBB with gonzo's patches to support TDA19988 (which does 128 bytes reads) and repeatedly scan the iicbus (with a modified i2c(8)) without lock up the bus. r273263: Fix the chan address for mtx_sleep() on bus wait. Without this fix the threads waiting for the bus would never wake. Modified: stable/10/sys/arm/ti/ti_i2c.c stable/10/sys/arm/ti/ti_i2c.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/arm/ti/ti_i2c.c == --- stable/10/sys/arm/ti/ti_i2c.c Mon Oct 27 11:38:17 2014 (r273734) +++ stable/10/sys/arm/ti/ti_i2c.c Mon Oct 27 12:18:07 2014 (r273735) @@ -1,6 +1,6 @@ /*- - * Copyright (c) 2011 - * Ben Gray ben.r.g...@gmail.com. + * Copyright (c) 2011 Ben Gray ben.r.g...@gmail.com. + * Copyright (c) 2014 Luiz Otavio O Souza l...@freebsd.org. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -58,13 +58,14 @@ __FBSDID($FreeBSD$); #include sys/module.h #include sys/mutex.h #include sys/rman.h +#include sys/sysctl.h #include machine/bus.h -#include dev/fdt/fdt_common.h #include dev/ofw/openfirm.h #include dev/ofw/ofw_bus.h #include dev/ofw/ofw_bus_subr.h +#include arm/ti/ti_cpuid.h #include arm/ti/ti_prcm.h #include arm/ti/ti_i2c.h @@ -89,8 +90,13 @@ struct ti_i2c_softc struct mtx sc_mtx; - volatile uint16_t sc_stat_flags; /* contains the status flags last IRQ */ + struct iic_msg* sc_buffer; + int sc_bus_inuse; + int sc_buffer_pos; + int sc_error; + int sc_fifo_trsh; + uint16_tsc_con_reg; uint16_tsc_rev; }; @@ -105,61 +111,54 @@ struct ti_i2c_clock_config uint8_t hssclh; /* High Speed mode SCL high time */ }; -static struct ti_i2c_clock_config ti_i2c_clock_configs[] = { +#if defined(SOC_OMAP3) +#error Unsupported SoC +#endif #if defined(SOC_OMAP4) - { IIC_SLOW, 10, 23, 13, 15, 0, 0}, - { IIC_FAST, 40, 9, 5, 7, 0, 0}, - { IIC_FASTEST, 331, 1, 113, 115, 7, 10}, -#elif defined(SOC_TI_AM335X) - { IIC_SLOW, 10, 3, 53, 55, 0, 0}, - { IIC_FAST, 40, 3, 8, 10, 0, 0}, - { IIC_FASTEST, 40, 3, 8, 10, 0, 0}, /* This might be higher */ -#else -#error TI I2C driver is not supported on this SoC -#endif +static struct ti_i2c_clock_config ti_omap4_i2c_clock_configs[] = { + { IIC_UNKNOWN, 10, 23, 13, 15, 0, 0}, + { IIC_SLOW, 10, 23, 13, 15, 0, 0}, + { IIC_FAST, 40, 9, 5, 7, 0, 0}, + { IIC_FASTEST, 100, 5, 3, 4, 0, 0}, + /* { IIC_FASTEST, 320, 1, 113, 115, 7, 10}, - HS mode */ { -1, 0 } }; +#endif - -#define TI_I2C_REV1 0x003C /* OMAP3 */ -#define TI_I2C_REV2 0x000A /* OMAP4 */ +#if defined(SOC_TI_AM335X) +/* + * AM335X doesn't support HS mode. For 100kHz I2C clock set the internal + * clock to 12Mhz, for 400kHz I2C clock set the internal clock to 24Mhz. + */ +static struct ti_i2c_clock_config ti_am335x_i2c_clock_configs[] = { + { IIC_UNKNOWN, 10, 7, 59, 61, 0, 0}, + { IIC_SLOW, 10, 7, 59, 61, 0, 0}, + { IIC_FAST, 40, 3, 23, 25, 0, 0}, + { IIC_FASTEST, 40, 3, 23, 25, 0, 0}, + { -1, 0 } +}; +#endif /** * Locking macros used throughout the
svn commit: r273736 - in stable/10/sys: amd64/amd64 arm/arm cam/scsi cddl/contrib/opensolaris/uts/common/fs/zfs cddl/dev/dtrace compat/ndis dev/acpi_support dev/bxe dev/cxgb dev/cxgbe dev/e1000 dev...
Author: hselasky Date: Mon Oct 27 14:38:00 2014 New Revision: 273736 URL: https://svnweb.freebsd.org/changeset/base/273736 Log: MFC r263710, r273377, r273378, r273423 and r273455: - De-vnet hash sizes and hash masks. - Fix multiple issues related to arguments passed to SYSCTL macros. Sponsored by: Mellanox Technologies Modified: stable/10/sys/amd64/amd64/fpu.c stable/10/sys/arm/arm/busdma_machdep-v6.c stable/10/sys/arm/arm/busdma_machdep.c stable/10/sys/cam/scsi/scsi_sa.c stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c stable/10/sys/cddl/dev/dtrace/dtrace_sysctl.c stable/10/sys/compat/ndis/kern_ndis.c stable/10/sys/dev/acpi_support/acpi_asus.c stable/10/sys/dev/acpi_support/acpi_asus_wmi.c stable/10/sys/dev/acpi_support/acpi_hp.c stable/10/sys/dev/acpi_support/acpi_ibm.c stable/10/sys/dev/acpi_support/acpi_rapidstart.c stable/10/sys/dev/acpi_support/acpi_sony.c stable/10/sys/dev/bxe/bxe.c stable/10/sys/dev/cxgb/cxgb_sge.c stable/10/sys/dev/cxgbe/t4_main.c stable/10/sys/dev/e1000/if_em.c stable/10/sys/dev/e1000/if_igb.c stable/10/sys/dev/e1000/if_lem.c stable/10/sys/dev/hatm/if_hatm.c stable/10/sys/dev/ixgbe/ixgbe.c stable/10/sys/dev/ixgbe/ixv.c stable/10/sys/dev/ixl/if_ixl.c stable/10/sys/dev/mpr/mpr.c stable/10/sys/dev/mps/mps.c stable/10/sys/dev/mrsas/mrsas.c stable/10/sys/dev/mrsas/mrsas.h stable/10/sys/dev/mxge/if_mxge.c stable/10/sys/dev/oce/oce_sysctl.c stable/10/sys/dev/qlxgb/qla_os.c stable/10/sys/dev/qlxgbe/ql_os.c stable/10/sys/dev/rt/if_rt.c stable/10/sys/dev/sound/pci/hda/hdaa.c stable/10/sys/dev/vxge/vxge.c stable/10/sys/dev/xen/netfront/netfront.c stable/10/sys/fs/devfs/devfs_devs.c stable/10/sys/fs/fuse/fuse_main.c stable/10/sys/fs/fuse/fuse_vfsops.c stable/10/sys/fs/nfsserver/nfs_nfsdkrpc.c stable/10/sys/geom/geom_kern.c stable/10/sys/kern/kern_cpuset.c stable/10/sys/kern/kern_descrip.c stable/10/sys/kern/kern_mib.c stable/10/sys/kern/kern_synch.c stable/10/sys/kern/subr_devstat.c stable/10/sys/kern/subr_kdb.c stable/10/sys/kern/subr_uio.c stable/10/sys/kern/vfs_cache.c stable/10/sys/mips/mips/busdma_machdep.c stable/10/sys/net/if_lagg.c stable/10/sys/net/pfvar.h stable/10/sys/net80211/ieee80211_ht.c stable/10/sys/net80211/ieee80211_hwmp.c stable/10/sys/net80211/ieee80211_mesh.c stable/10/sys/net80211/ieee80211_superg.c stable/10/sys/netgraph/bluetooth/common/ng_bluetooth.c stable/10/sys/netgraph/ng_base.c stable/10/sys/netgraph/ng_socket.c stable/10/sys/netinet/cc/cc_chd.c stable/10/sys/netinet/tcp_reass.c stable/10/sys/netipsec/ipsec.h stable/10/sys/netipx/ipx_proto.c stable/10/sys/netpfil/pf/if_pfsync.c stable/10/sys/netpfil/pf/pf.c stable/10/sys/netpfil/pf/pf_ioctl.c stable/10/sys/ofed/drivers/net/mlx4/mlx4_en.h stable/10/sys/powerpc/powermac/fcu.c stable/10/sys/powerpc/powermac/smu.c stable/10/sys/powerpc/powerpc/busdma_machdep.c stable/10/sys/powerpc/powerpc/cpu.c stable/10/sys/sys/sysctl.h stable/10/sys/vm/memguard.c stable/10/sys/vm/vm_kern.c stable/10/sys/x86/x86/busdma_bounce.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/amd64/amd64/fpu.c == --- stable/10/sys/amd64/amd64/fpu.c Mon Oct 27 12:18:07 2014 (r273735) +++ stable/10/sys/amd64/amd64/fpu.c Mon Oct 27 14:38:00 2014 (r273736) @@ -130,7 +130,7 @@ CTASSERT(sizeof(struct pcb) % XSAVE_AREA static voidfpu_clean_state(void); SYSCTL_INT(_hw, HW_FLOATINGPT, floatingpoint, CTLFLAG_RD, -NULL, 1, Floating point instructions executed in hardware); +SYSCTL_NULL_INT_PTR, 1, Floating point instructions executed in hardware); int use_xsave; /* non-static for cpu_switch.S */ uint64_t xsave_mask; /* the same */ Modified: stable/10/sys/arm/arm/busdma_machdep-v6.c == --- stable/10/sys/arm/arm/busdma_machdep-v6.c Mon Oct 27 12:18:07 2014 (r273735) +++ stable/10/sys/arm/arm/busdma_machdep-v6.c Mon Oct 27 14:38:00 2014 (r273736) @@ -1503,9 +1503,9 @@ alloc_bounce_zone(bus_dma_tag_t dmat) SYSCTL_ADD_STRING(busdma_sysctl_tree(bz), SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, lowaddr, CTLFLAG_RD, bz-lowaddrid, 0, ); - SYSCTL_ADD_INT(busdma_sysctl_tree(bz), + SYSCTL_ADD_ULONG(busdma_sysctl_tree(bz), SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO, - alignment, CTLFLAG_RD, bz-alignment, 0, ); + alignment, CTLFLAG_RD, bz-alignment, ); return (0); } Modified: stable/10/sys/arm/arm/busdma_machdep.c == --- stable/10/sys/arm/arm/busdma_machdep.c Mon Oct 27 12:18:07 2014 (r273735) +++
svn commit: r273737 - head/usr.sbin/pmcstat
Author: bapt Date: Mon Oct 27 15:33:44 2014 New Revision: 273737 URL: https://svnweb.freebsd.org/changeset/base/273737 Log: Clarify the documentation of pmcstat: the -d argument should be passed before -p, -s, -P or -S to be taken in account Differential Revision:https://reviews.freebsd.org/D1011 Reviewed by: adrian, gnn MFC after:1 week Modified: head/usr.sbin/pmcstat/pmcstat.8 Modified: head/usr.sbin/pmcstat/pmcstat.8 == --- head/usr.sbin/pmcstat/pmcstat.8 Mon Oct 27 14:38:00 2014 (r273736) +++ head/usr.sbin/pmcstat/pmcstat.8 Mon Oct 27 15:33:44 2014 (r273737) @@ -25,7 +25,7 @@ .\ .\ $FreeBSD$ .\ -.Dd May 16, 2014 +.Dd Oct 27, 2014 .Dt PMCSTAT 8 .Os .Sh NAME @@ -254,6 +254,13 @@ Toggle between process mode PMCs measuri process' current and future children or only measuring events for the target process. The default is to measure events for the target process alone. +(it has to be passed in the command line prior to +.Fl p , +.Fl s , +.Fl P , +or +.Fl S +). .It Fl f Ar pluginopt Pass option string to the active plugin. .br ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, Oct 27, 2014 at 11:38:17AM +, Kurt Jaeger wrote: Author: pi (ports committer) Date: Mon Oct 27 11:38:17 2014 New Revision: 273734 URL: https://svnweb.freebsd.org/changeset/base/273734 Log: bin/dd: Fix incorrect casting of arguments This causes non-trivial amount of errors like cc1: warnings being treated as errors /scratch/tmp/kib/src/bin/dd/args.c: In function 'f_bs': /scratch/tmp/kib/src/bin/dd/args.c:192: warning: format '%jd' expects type 'intm ax_t', but argument 3 has type 'int' (this is on arm). ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273738 - head/share/man/man3
Author: jhb Date: Mon Oct 27 15:45:37 2014 New Revision: 273738 URL: https://svnweb.freebsd.org/changeset/base/273738 Log: Correct a typo: this is the manpage for pthread_cleanup_pop, not push. Submitted by: ian Modified: head/share/man/man3/pthread_cleanup_pop.3 Modified: head/share/man/man3/pthread_cleanup_pop.3 == --- head/share/man/man3/pthread_cleanup_pop.3 Mon Oct 27 15:33:44 2014 (r273737) +++ head/share/man/man3/pthread_cleanup_pop.3 Mon Oct 27 15:45:37 2014 (r273738) @@ -52,7 +52,7 @@ then does nothing. .Pp The -.Fn pthread_cleanup_push +.Fn pthread_cleanup_pop function is implemented as a macro that closes a block. Invocations of this function must appear as standalone statements that are paired with an earlier call of ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273733 - head/sys/netinet/cc
Can you modify this to preserve the limitation of TCP_CA_NAME_MAX ? Best, George On 27 Oct 2014, at 7:21, Hans Petter Selasky wrote: Author: hselasky Date: Mon Oct 27 11:21:47 2014 New Revision: 273733 URL: https://svnweb.freebsd.org/changeset/base/273733 Log: Make assignments to net.inet.tcp.cc.algorithm work by fixing a bad string comparison. MFC after: 3 days Reported by:Jukka Ukkonen jau...@gmail.com Sponsored by: Mellanox Technologies Modified: head/sys/netinet/cc/cc.c Modified: head/sys/netinet/cc/cc.c == --- head/sys/netinet/cc/cc.cMon Oct 27 10:34:09 2014(r273732) +++ head/sys/netinet/cc/cc.cMon Oct 27 11:21:47 2014(r273733) @@ -106,11 +106,13 @@ cc_default_algo(SYSCTL_HANDLER_ARGS) /* Find algo with specified name and set it to default. */ CC_LIST_RLOCK(); STAILQ_FOREACH(funcs, cc_list, entries) { - if (strncmp((char *)req-newptr, funcs-name, - TCP_CA_NAME_MAX) == 0) { - found = 1; - V_default_cc_ptr = funcs; - } + /* NOTE: newptr is not zero terminated */ + if (req-newlen != strlen(funcs-name)) + continue; + if (bcmp(req-newptr, funcs-name, req-newlen)) + continue; + found = 1; + V_default_cc_ptr = funcs; } CC_LIST_RUNLOCK(); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, Oct 27, 2014 at 11:38:17AM +, Kurt Jaeger wrote: Author: pi (ports committer) Date: Mon Oct 27 11:38:17 2014 New Revision: 273734 URL: https://svnweb.freebsd.org/changeset/base/273734 Log: bin/dd: Fix incorrect casting of arguments This causes non-trivial amount of errors like cc1: warnings being treated as errors /scratch/tmp/kib/src/bin/dd/args.c: In function 'f_bs': /scratch/tmp/kib/src/bin/dd/args.c:192: warning: format '%jd' expects type 'intm ax_t', but argument 3 has type 'int' (this is on arm). Thanks for the pointer. I'll take it up with the submitter. I do not have a working arm setup right now. -- p...@freebsd.org +49 171 31013726 years to go ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273739 - head/usr.sbin/pmcstat
Author: bapt Date: Mon Oct 27 15:50:47 2014 New Revision: 273739 URL: https://svnweb.freebsd.org/changeset/base/273739 Log: Fix rendering Submitted by: brueffer Modified: head/usr.sbin/pmcstat/pmcstat.8 Modified: head/usr.sbin/pmcstat/pmcstat.8 == --- head/usr.sbin/pmcstat/pmcstat.8 Mon Oct 27 15:45:37 2014 (r273738) +++ head/usr.sbin/pmcstat/pmcstat.8 Mon Oct 27 15:50:47 2014 (r273739) @@ -259,8 +259,7 @@ The default is to measure events for the .Fl s , .Fl P , or -.Fl S -). +.Fl S ) . .It Fl f Ar pluginopt Pass option string to the active plugin. .br ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, 27 Oct 2014, Konstantin Belousov wrote: On Mon, Oct 27, 2014 at 11:38:17AM +, Kurt Jaeger wrote: Log: bin/dd: Fix incorrect casting of arguments This causes non-trivial amount of errors like cc1: warnings being treated as errors /scratch/tmp/kib/src/bin/dd/args.c: In function 'f_bs': /scratch/tmp/kib/src/bin/dd/args.c:192: warning: format '%jd' expects type 'intm ax_t', but argument 3 has type 'int' (this is on arm). Sigh. I noticed that half the changes were to break correct casting, but thought that the errors were not detected on any supported arch (since the patch wouldn't have passed review if they were). Actually, they are detected on all 32-bit arches (since 32-bit SSIZE_MAX is incompatible with 64-bit intmax_t). Further examination of the history: in green's big patch that fixed most of the arg checking, or at least in its MFC, there is this breakage: % Index: args.c % === % RCS file: /home/ncvs/src/bin/dd/args.c,v % retrieving revision 1.13.2.2 % retrieving revision 1.13.2.3 % diff -u -2 -r1.13.2.2 -r1.13.2.3 % --- args.c29 Aug 1999 14:12:07 - 1.13.2.2 % +++ args.c12 Dec 1999 01:54:03 - 1.13.2.3 % ... % @@ -207,7 +208,9 @@ % { % % - cpy_cnt = (u_int)get_bsz(arg); % - if (!cpy_cnt) % - terminate(0); % + cpy_cnt = get_num(arg); % + if (cpy_cnt 0) % + errx(1, count cannot be negative); % + if (cpy_cnt == 0) % + cpy_cnt = -1; % } % % @@ -217,5 +220,7 @@ % { % % - files_cnt = (int)get_bsz(arg); % + files_cnt = get_num(arg); % + if (files_cnt 1) % + errx(1, files must be between 1 and %qd, QUAD_MAX); % } % The magic -1 wasn't in previous versions. It is just some hack to recover the previous behaviour. My version doesn't have it, but uses essentially the old code with no range checking but the type expanded to uintmax_t. All uintmax_t values are valid counts. The correct range checking is already in get_num(). I also removed the special case for cpuy_cnt = 0. I think it means no limit in my version. This is more useful than immediate termination. Bruce ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, 27 Oct 2014, Kurt Jaeger wrote: Log: bin/dd: Fix incorrect casting of arguments dd(1) casts many of its numeric arguments from uintmax_t to intmax_t and back again to detect whether or not the original arguments were negative. This caused wrong behaviour in some boundary cases: $ dd if=/dev/zero of=/dev/null count=18446744073709551615 dd: count cannot be negative After the fix: $ dd if=/dev/zero of=/dev/null count=18446744073709551615 dd: count: Result too large Both of these work correctly in my version (with a relatively small patch and no breakage of other cases). (I actually typed large values as -1 and 11. -1 means (uintmax_t)-1 although this is undocumented and now broken). PR:191263 Submitted by: w...@worrbase.com Approved by: cognet@ I couldn't review the PR since I bugzilla doesn't accept mail responses. I didn't fear it was so bad. Modified: head/bin/dd/args.c == --- head/bin/dd/args.c Mon Oct 27 11:21:47 2014(r273733) +++ head/bin/dd/args.c Mon Oct 27 11:38:17 2014(r273734) @@ -41,6 +41,7 @@ __FBSDID($FreeBSD$); #include sys/types.h +#include ctype.h #include err.h #include errno.h #include inttypes.h @@ -171,8 +172,7 @@ jcl(char **argv) */ if (in.offset OFF_MAX / (ssize_t)in.dbsz || out.offset OFF_MAX / (ssize_t)out.dbsz) - errx(1, seek offsets cannot be larger than %jd, - (intmax_t)OFF_MAX); + errx(1, seek offsets cannot be larger than %jd, OFF_MAX); } This used to be correct. Now it assumes that off_t == intmax_t. Both just happen to be int64_t. This will break when intmax_t is expanded (off_t is unlikely to be expanded). The bug would be detected at compile time now if the type of intmax_t had maximal rank (long long) but int64_t and off_t remain as long on 64-bit arches. C99 doesn't seem to require intmax_t to have maximal rank. This seems to be a bug in C99, but FreeBSD exploits it to avoid using the long long abomination on 6 4-bit arches. static int @@ -186,37 +186,30 @@ c_arg(const void *a, const void *b) static void f_bs(char *arg) { - uintmax_t res; - res = get_num(arg); This used to be correct. Though I don't like unsigned types, the API of read() and write() encourages use of size_t instead of ssize_t for buffer sizes. That was done, but a limit of SSIZE_MAX was applied, partly to avoid problems detecting errors from read() and write() and partly to distinguish overflowing cases. get_num() returns an unsigned type (uintmax_t), so it is suitable for handling the size_t args here. It was used. However, size_t might be smaller than uintmax_t, so it cannot always hold the result of get_num(). So a temporary variable was used to hold the value before checking it. - if (res 1 || res SSIZE_MAX) - errx(1, bs must be between 1 and %jd, (intmax_t)SSIZE_MAX); get_num() returns UINTMAX_MAX if the result is too large. This may or may not be an error. But in all arches, UINTMAX_MAX exceeds SSIZE_MAX, so the overflowing case gives the same error as a non-overflowing but too large value. - in.dbsz = out.dbsz = (size_t)res; + in.dbsz = out.dbsz = get_num(arg); This breaks the error checking. Blind assignment may corrupt the value before it can be checked. + if (out.dbsz 1 || out.dbsz SSIZE_MAX) + errx(1, bs must be between 1 and %jd, SSIZE_MAX); } Printf format error, as above. static void f_cbs(char *arg) { - uintmax_t res; - res = get_num(arg); - if (res 1 || res SSIZE_MAX) - errx(1, cbs must be between 1 and %jd, (intmax_t)SSIZE_MAX); - cbsz = (size_t)res; + cbsz = get_num(arg); + if (cbsz 1 || cbsz SSIZE_MAX) + errx(1, cbs must be between 1 and %jd, SSIZE_MAX); } This just breaks the range checking and the printf format, as above. static void f_count(char *arg) { - intmax_t res; - res = (intmax_t)get_num(arg); - if (res 0) - errx(1, count cannot be negative); This was correct too. Though get_num() returns an unsigned type, it is based on strtoul() which handles negative values as correctly as possible. (The multipliers in get_num() don't handle negative values as correctly as possible.) dd also has a get_off_t() function. This is supposed to handle negative values more carefully, but is so badly implemented that it has many more bugs than blindly casting get_num() to off_t. The above cast is safer since it converts to the signed type corresponding to the return type. In 2's complement, the result is predictable and correct except in unrepresentable cases. E.g., an arg of -1 is returned as UINTMAX_MAX and casting it gives -1 again. My version implements get_off_t() using get_num(). Of course it doesn't blindly convert to an off_t.
svn commit: r273740 - head/sys/netinet/cc
Author: hselasky Date: Mon Oct 27 16:08:41 2014 New Revision: 273740 URL: https://svnweb.freebsd.org/changeset/base/273740 Log: Preserve limitation of TCP_CA_NAME_MAX when matching the algorithm name. MFC after:3 days Suggested by: gnn @ Modified: head/sys/netinet/cc/cc.c Modified: head/sys/netinet/cc/cc.c == --- head/sys/netinet/cc/cc.cMon Oct 27 15:50:47 2014(r273739) +++ head/sys/netinet/cc/cc.cMon Oct 27 16:08:41 2014(r273740) @@ -107,7 +107,8 @@ cc_default_algo(SYSCTL_HANDLER_ARGS) CC_LIST_RLOCK(); STAILQ_FOREACH(funcs, cc_list, entries) { /* NOTE: newptr is not zero terminated */ - if (req-newlen != strlen(funcs-name)) + if (req-newlen != strnlen(funcs-name, + TCP_CA_NAME_MAX - 1)) continue; if (bcmp(req-newptr, funcs-name, req-newlen)) continue; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, Oct 27, 2014 at 04:54:27PM +0100, Kurt Jaeger wrote: On Mon, Oct 27, 2014 at 11:38:17AM +, Kurt Jaeger wrote: Author: pi (ports committer) Date: Mon Oct 27 11:38:17 2014 New Revision: 273734 URL: https://svnweb.freebsd.org/changeset/base/273734 Log: bin/dd: Fix incorrect casting of arguments This causes non-trivial amount of errors like cc1: warnings being treated as errors /scratch/tmp/kib/src/bin/dd/args.c: In function 'f_bs': /scratch/tmp/kib/src/bin/dd/args.c:192: warning: format '%jd' expects type 'intm ax_t', but argument 3 has type 'int' (this is on arm). Thanks for the pointer. I'll take it up with the submitter. I do not have a working arm setup right now. I do not have arm setup either. Errors for arm and mips (at least) are reported by make tinderbox. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273733 - head/sys/netinet/cc
On 10/27/14 16:45, George Neville-Neil wrote: Can you modify this to preserve the limitation of TCP_CA_NAME_MAX ? Best, George Can you verify the following change? Subtracted one character from the limit for the terminating zero: https://svnweb.freebsd.org/changeset/base/273740 --HPS ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273733 - head/sys/netinet/cc
On 27 Oct 2014, at 12:09, Hans Petter Selasky wrote: On 10/27/14 16:45, George Neville-Neil wrote: Can you modify this to preserve the limitation of TCP_CA_NAME_MAX ? Best, George Can you verify the following change? Subtracted one character from the limit for the terminating zero: https://svnweb.freebsd.org/changeset/base/273740 That looks right. Also, can you sign up for reviews.freebsd.org ? Besst, George ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273741 - head/sys/sys
Author: glebius Date: Mon Oct 27 16:13:51 2014 New Revision: 273741 URL: https://svnweb.freebsd.org/changeset/base/273741 Log: Tiny comment fixup. Modified: head/sys/sys/mbuf.h Modified: head/sys/sys/mbuf.h == --- head/sys/sys/mbuf.h Mon Oct 27 16:08:41 2014(r273740) +++ head/sys/sys/mbuf.h Mon Oct 27 16:13:51 2014(r273741) @@ -393,7 +393,7 @@ void sf_ext_free(void *, void *); * Outbound flags that are set by upper protocol layers requesting lower * layers, or ideally the hardware, to perform these offloading tasks. * For outbound packets this field and its flags can be directly tested - * against if_data.ifi_hwassist. + * against ifnet if_hwassist. */ #defineCSUM_IP 0x0001 /* IP header checksum offload */ #defineCSUM_IP_UDP 0x0002 /* UDP checksum offload */ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273742 - head/sys/netinet6
Author: ae Date: Mon Oct 27 16:15:15 2014 New Revision: 273742 URL: https://svnweb.freebsd.org/changeset/base/273742 Log: Do not automatically install routes to link-local and interface-local multicast addresses. Obtained from:Yandex LLC Sponsored by: Yandex LLC Modified: head/sys/netinet6/in6.c Modified: head/sys/netinet6/in6.c == --- head/sys/netinet6/in6.c Mon Oct 27 16:13:51 2014(r273741) +++ head/sys/netinet6/in6.c Mon Oct 27 16:15:15 2014(r273742) @@ -782,27 +782,24 @@ in6_update_ifa_join_mc(struct ifnet *ifp struct in6_ifaddr *ia, int flags, struct in6_multi **in6m_sol) { char ip6buf[INET6_ADDRSTRLEN]; - struct sockaddr_in6 mltaddr, mltmask; - struct in6_addr llsol; + struct in6_addr mltaddr; struct in6_multi_mship *imm; - struct rtentry *rt; int delay, error; KASSERT(in6m_sol != NULL, (%s: in6m_sol is NULL, __func__)); /* Join solicited multicast addr for new host id. */ - bzero(llsol, sizeof(struct in6_addr)); - llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL; - llsol.s6_addr32[1] = 0; - llsol.s6_addr32[2] = htonl(1); - llsol.s6_addr32[3] = ifra-ifra_addr.sin6_addr.s6_addr32[3]; - llsol.s6_addr8[12] = 0xff; - if ((error = in6_setscope(llsol, ifp, NULL)) != 0) { + bzero(mltaddr, sizeof(struct in6_addr)); + mltaddr.s6_addr32[0] = IPV6_ADDR_INT32_MLL; + mltaddr.s6_addr32[2] = htonl(1); + mltaddr.s6_addr32[3] = ifra-ifra_addr.sin6_addr.s6_addr32[3]; + mltaddr.s6_addr8[12] = 0xff; + if ((error = in6_setscope(mltaddr, ifp, NULL)) != 0) { /* XXX: should not happen */ log(LOG_ERR, %s: in6_setscope failed\n, __func__); goto cleanup; } - delay = 0; + delay = error = 0; if ((flags IN6_IFAUPDATE_DADDELAY)) { /* * We need a random delay for DAD on the address being @@ -812,62 +809,28 @@ in6_update_ifa_join_mc(struct ifnet *ifp */ delay = arc4random() % (MAX_RTR_SOLICITATION_DELAY * hz); } - imm = in6_joingroup(ifp, llsol, error, delay); + imm = in6_joingroup(ifp, mltaddr, error, delay); if (imm == NULL) { - nd6log((LOG_WARNING, %s: addmulti failed for %s on %s - (errno=%d)\n, __func__, ip6_sprintf(ip6buf, llsol), + nd6log((LOG_WARNING, %s: in6_joingroup failed for %s on %s + (errno=%d)\n, __func__, ip6_sprintf(ip6buf, mltaddr), if_name(ifp), error)); goto cleanup; } LIST_INSERT_HEAD(ia-ia6_memberships, imm, i6mm_chain); *in6m_sol = imm-i6mm_maddr; - bzero(mltmask, sizeof(mltmask)); - mltmask.sin6_len = sizeof(struct sockaddr_in6); - mltmask.sin6_family = AF_INET6; - mltmask.sin6_addr = in6mask32; -#defineMLTMASK_LEN 4 /* mltmask's masklen (=32bit=4octet) */ - /* * Join link-local all-nodes address. */ - bzero(mltaddr, sizeof(mltaddr)); - mltaddr.sin6_len = sizeof(struct sockaddr_in6); - mltaddr.sin6_family = AF_INET6; - mltaddr.sin6_addr = in6addr_linklocal_allnodes; - if ((error = in6_setscope(mltaddr.sin6_addr, ifp, NULL)) != 0) + mltaddr = in6addr_linklocal_allnodes; + if ((error = in6_setscope(mltaddr, ifp, NULL)) != 0) goto cleanup; /* XXX: should not fail */ - /* -* XXX: do we really need this automatic routes? We should probably -* reconsider this stuff. Most applications actually do not need the -* routes, since they usually specify the outgoing interface. -*/ - rt = in6_rtalloc1((struct sockaddr *)mltaddr, 0, 0UL, RT_DEFAULT_FIB); - if (rt != NULL) { - /* XXX: only works in !SCOPEDROUTING case. */ - if (memcmp(mltaddr.sin6_addr, - ((struct sockaddr_in6 *)rt_key(rt))-sin6_addr, - MLTMASK_LEN)) { - RTFREE_LOCKED(rt); - rt = NULL; - } - } - if (rt == NULL) { - error = in6_rtrequest(RTM_ADD, (struct sockaddr *)mltaddr, - (struct sockaddr *)ia-ia_addr, - (struct sockaddr *)mltmask, RTF_UP, - (struct rtentry **)0, RT_DEFAULT_FIB); - if (error) - goto cleanup; - } else - RTFREE_LOCKED(rt); - - imm = in6_joingroup(ifp, mltaddr.sin6_addr, error, 0); + imm = in6_joingroup(ifp, mltaddr, error, 0); if (imm == NULL) { - nd6log((LOG_WARNING, %s: addmulti failed for %s on %s - (errno=%d)\n, __func__, ip6_sprintf(ip6buf, - mltaddr.sin6_addr), if_name(ifp), error)); +
Re: svn commit: r273734 - head/bin/dd
Hi! Log: bin/dd: Fix incorrect casting of arguments [...] Both of these work correctly in my version (with a relatively small patch and no breakage of other cases). (I actually typed large values as -1 and 11. -1 means (uintmax_t)-1 although this is undocumented and now broken). So, given this detailed review, should I revert the change ? -- p...@freebsd.org +49 171 31013726 years to go ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273401 - head/sys/kern
On Sunday, October 26, 2014 02:57:43 AM Mateusz Guzik wrote: On Thu, Oct 23, 2014 at 12:14:03PM -0400, John Baldwin wrote: I specifically added sysctl_lock/unlock so that next folk with similar usecse will not have to. So I'm not going to remove it, but if you really don't like it feel free to do it. However, if there isn't a future use case that needs it then it is just obfuscation. :-/ Given how static the sysctl code is in terms of API changes, etc. I strongly doubt there will be a future use case any time soon. -- John Baldwin ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273214 - in head/sys: amd64/vmm/intel modules/vmm
On Friday, October 17, 2014 01:20:50 PM Warner Losh wrote: Author: imp Date: Fri Oct 17 13:20:49 2014 New Revision: 273214 URL: https://svnweb.freebsd.org/changeset/base/273214 Log: Fix build to not bogusly always rebuild vmm.ko. Rename vmx_assym.s to vmx_assym.h to reflect that file's actual use and update vmx_support.S's include to match. Add vmx_assym.h to the SRCS to that it gets properly added to the dependency list. Add vmx_support.S to SRCS as well, so it gets built and needs fewer special-case goo. Remove now-redundant special-case goo. Finally, vmx_genassym.o doesn't need to depend on a hand expanded ${_ILINKS} explicitly, that's all taken care of by beforedepend. With these items fixed, we no longer build vmm.ko every single time through the modules on a KERNFAST build. So I cheered for this before, but it appears to be broken. :( Namely, I rebuilt world + kernel on my laptop this weekend (it was about a month old). My normal setup builds kernels with NO_KERNELCLEAN=yes. On my next reboot when I started a bhyve VM I promptly got a panic due to a page fault in this assembly code: /* * If 'vmx-eptgen[curcpu]' is not identical to 'pmap-pm_eptgen' * then we must invalidate all mappings associated with this EPTP. */ movqPM_EPTGEN(%r11), %r10 cmpq%r10, VMX_EPTGEN(%rsi, %rax, 8) je guest_restore (The 'cmpq' instruction) This change came to mind, so I blew away the 'vmm' module directory and rebuilt my kernel. Comparing the assembly of this instruction before and after used different values for VMX_EPTGEN. In other words, the NO_KERNELCLEAN=yes build failed to regenerate vmx_assym.h and the build used stale values. In particular, if you examine the generated .depend file, you will find that there are no dependencies recorded for vmx_genassym.o, so it is never rebuilt if any of the headers it includes are changed. In my case the panic happened to be one that was easily diagnosed, but I could imagine stale assym headers causing very odd crashes that would be quite hard to track down. I think these changes should be reverted if we can't fix the dependencies of the associated object files they are generated from. :( -- John Baldwin ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273644 - head/share/man/man3
On Saturday, October 25, 2014 02:11:36 PM Ian Lepore wrote: On Sat, 2014-10-25 at 19:31 +, John Baldwin wrote: +.Pp +The +.Fn pthread_cleanup_push Should be pop? Doh, yes! -- John Baldwin ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273214 - in head/sys: amd64/vmm/intel modules/vmm
On Oct 27, 2014, at 10:54 AM, John Baldwin j...@freebsd.org wrote: On Friday, October 17, 2014 01:20:50 PM Warner Losh wrote: Author: imp Date: Fri Oct 17 13:20:49 2014 New Revision: 273214 URL: https://svnweb.freebsd.org/changeset/base/273214 Log: Fix build to not bogusly always rebuild vmm.ko. Rename vmx_assym.s to vmx_assym.h to reflect that file's actual use and update vmx_support.S's include to match. Add vmx_assym.h to the SRCS to that it gets properly added to the dependency list. Add vmx_support.S to SRCS as well, so it gets built and needs fewer special-case goo. Remove now-redundant special-case goo. Finally, vmx_genassym.o doesn't need to depend on a hand expanded ${_ILINKS} explicitly, that's all taken care of by beforedepend. With these items fixed, we no longer build vmm.ko every single time through the modules on a KERNFAST build. So I cheered for this before, but it appears to be broken. :( Namely, I rebuilt world + kernel on my laptop this weekend (it was about a month old). My normal setup builds kernels with NO_KERNELCLEAN=yes. On my next reboot when I started a bhyve VM I promptly got a panic due to a page fault in this assembly code: /* * If 'vmx-eptgen[curcpu]' is not identical to 'pmap-pm_eptgen' * then we must invalidate all mappings associated with this EPTP. */ movqPM_EPTGEN(%r11), %r10 cmpq%r10, VMX_EPTGEN(%rsi, %rax, 8) je guest_restore (The 'cmpq' instruction) This change came to mind, so I blew away the 'vmm' module directory and rebuilt my kernel. Comparing the assembly of this instruction before and after used different values for VMX_EPTGEN. In other words, the NO_KERNELCLEAN=yes build failed to regenerate vmx_assym.h and the build used stale values. Is there a way to force this condition for testing? In particular, if you examine the generated .depend file, you will find that there are no dependencies recorded for vmx_genassym.o, so it is never rebuilt if any of the headers it includes are changed. In my case the panic happened to be one that was easily diagnosed, but I could imagine stale assym headers causing very odd crashes that would be quite hard to track down. I think these changes should be reverted if we can't fix the dependencies of the associated object files they are generated from. :( Give me a bit and I’ll fix it. There’s a number of implicit dependencies that don’t get recorded in the .depend file, iirc, so that’s not completely conclusive. Not building, though is kinda a big hint that something’s amiss. However, -DNO_CLEAN has always been a very-sharp edged tool that will cut you in a number of ways, so there’s no rush to back this out. Warner signature.asc Description: Message signed with OpenPGP using GPGMail
Re: svn commit: r273742 - head/sys/netinet6
On 27 Oct 2014, at 16:15 , Andrey V. Elsukov a...@freebsd.org wrote: Author: ae Date: Mon Oct 27 16:15:15 2014 New Revision: 273742 URL: https://svnweb.freebsd.org/changeset/base/273742 Log: Do not automatically install routes to link-local and interface-local multicast addresses. Why? Obtained from: Yandex LLC Sponsored by:Yandex LLC Modified: head/sys/netinet6/in6.c Modified: head/sys/netinet6/in6.c == --- head/sys/netinet6/in6.c Mon Oct 27 16:13:51 2014(r273741) +++ head/sys/netinet6/in6.c Mon Oct 27 16:15:15 2014(r273742) @@ -782,27 +782,24 @@ in6_update_ifa_join_mc(struct ifnet *ifp struct in6_ifaddr *ia, int flags, struct in6_multi **in6m_sol) { char ip6buf[INET6_ADDRSTRLEN]; - struct sockaddr_in6 mltaddr, mltmask; - struct in6_addr llsol; + struct in6_addr mltaddr; struct in6_multi_mship *imm; - struct rtentry *rt; int delay, error; KASSERT(in6m_sol != NULL, (%s: in6m_sol is NULL, __func__)); /* Join solicited multicast addr for new host id. */ - bzero(llsol, sizeof(struct in6_addr)); - llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL; - llsol.s6_addr32[1] = 0; - llsol.s6_addr32[2] = htonl(1); - llsol.s6_addr32[3] = ifra-ifra_addr.sin6_addr.s6_addr32[3]; - llsol.s6_addr8[12] = 0xff; - if ((error = in6_setscope(llsol, ifp, NULL)) != 0) { + bzero(mltaddr, sizeof(struct in6_addr)); + mltaddr.s6_addr32[0] = IPV6_ADDR_INT32_MLL; + mltaddr.s6_addr32[2] = htonl(1); + mltaddr.s6_addr32[3] = ifra-ifra_addr.sin6_addr.s6_addr32[3]; + mltaddr.s6_addr8[12] = 0xff; + if ((error = in6_setscope(mltaddr, ifp, NULL)) != 0) { /* XXX: should not happen */ log(LOG_ERR, %s: in6_setscope failed\n, __func__); goto cleanup; } - delay = 0; + delay = error = 0; if ((flags IN6_IFAUPDATE_DADDELAY)) { /* * We need a random delay for DAD on the address being @@ -812,62 +809,28 @@ in6_update_ifa_join_mc(struct ifnet *ifp */ delay = arc4random() % (MAX_RTR_SOLICITATION_DELAY * hz); } - imm = in6_joingroup(ifp, llsol, error, delay); + imm = in6_joingroup(ifp, mltaddr, error, delay); if (imm == NULL) { - nd6log((LOG_WARNING, %s: addmulti failed for %s on %s - (errno=%d)\n, __func__, ip6_sprintf(ip6buf, llsol), + nd6log((LOG_WARNING, %s: in6_joingroup failed for %s on %s + (errno=%d)\n, __func__, ip6_sprintf(ip6buf, mltaddr), if_name(ifp), error)); goto cleanup; } LIST_INSERT_HEAD(ia-ia6_memberships, imm, i6mm_chain); *in6m_sol = imm-i6mm_maddr; - bzero(mltmask, sizeof(mltmask)); - mltmask.sin6_len = sizeof(struct sockaddr_in6); - mltmask.sin6_family = AF_INET6; - mltmask.sin6_addr = in6mask32; -#define MLTMASK_LEN 4 /* mltmask's masklen (=32bit=4octet) */ - /* * Join link-local all-nodes address. */ - bzero(mltaddr, sizeof(mltaddr)); - mltaddr.sin6_len = sizeof(struct sockaddr_in6); - mltaddr.sin6_family = AF_INET6; - mltaddr.sin6_addr = in6addr_linklocal_allnodes; - if ((error = in6_setscope(mltaddr.sin6_addr, ifp, NULL)) != 0) + mltaddr = in6addr_linklocal_allnodes; + if ((error = in6_setscope(mltaddr, ifp, NULL)) != 0) goto cleanup; /* XXX: should not fail */ - /* - * XXX: do we really need this automatic routes? We should probably - * reconsider this stuff. Most applications actually do not need the - * routes, since they usually specify the outgoing interface. - */ - rt = in6_rtalloc1((struct sockaddr *)mltaddr, 0, 0UL, RT_DEFAULT_FIB); - if (rt != NULL) { - /* XXX: only works in !SCOPEDROUTING case. */ - if (memcmp(mltaddr.sin6_addr, - ((struct sockaddr_in6 *)rt_key(rt))-sin6_addr, - MLTMASK_LEN)) { - RTFREE_LOCKED(rt); - rt = NULL; - } - } - if (rt == NULL) { - error = in6_rtrequest(RTM_ADD, (struct sockaddr *)mltaddr, - (struct sockaddr *)ia-ia_addr, - (struct sockaddr *)mltmask, RTF_UP, - (struct rtentry **)0, RT_DEFAULT_FIB); - if (error) - goto cleanup; - } else - RTFREE_LOCKED(rt); - - imm = in6_joingroup(ifp, mltaddr.sin6_addr, error, 0); + imm = in6_joingroup(ifp, mltaddr, error, 0); if (imm == NULL) { - nd6log((LOG_WARNING, %s: addmulti failed for %s on %s - (errno=%d)\n, __func__, ip6_sprintf(ip6buf, - mltaddr.sin6_addr), if_name(ifp),
Re: svn commit: r273742 - head/sys/netinet6
On 27.10.2014 19:43, Bjoern A. Zeeb wrote: On 27 Oct 2014, at 16:15 , Andrey V. Elsukov a...@freebsd.org wrote: Author: ae Date: Mon Oct 27 16:15:15 2014 New Revision: 273742 URL: https://svnweb.freebsd.org/changeset/base/273742 Log: Do not automatically install routes to link-local and interface-local multicast addresses. Why? They are useless. Multicast code maintains needed routing information internally when system does join to multicast groups. -- WBR, Andrey V. Elsukov ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, 27 Oct 2014, Kurt Jaeger wrote: Log: bin/dd: Fix incorrect casting of arguments [...] Both of these work correctly in my version (with a relatively small patch and no breakage of other cases). (I actually typed large values as -1 and 11. -1 means (uintmax_t)-1 although this is undocumented and now broken). So, given this detailed review, should I revert the change ? Yes. You would have to change half of it just to get it to compile on 32-bit arches. Bruce ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273734 - head/bin/dd
On Mon, 2014-10-27 at 17:20 +0100, Kurt Jaeger wrote: Hi! Log: bin/dd: Fix incorrect casting of arguments [...] Both of these work correctly in my version (with a relatively small patch and no breakage of other cases). (I actually typed large values as -1 and 11. -1 means (uintmax_t)-1 although this is undocumented and now broken). So, given this detailed review, should I revert the change ? Given that it breaks the build for 32 bit architectures, it probably should be reverted until a different set of changes is available. -- Ian ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273129 - head/sys/kern
On Wed, 15 Oct 2014, Konstantin Belousov wrote: Log: Implement FIODTYPE for master ptys. Requested and reviewed by: bde Sponsored by: The FreeBSD Foundation MFC after: 1 week Thanks. This allows dd to work on ptys again. dd has the following bad code: % static void % getfdtype(IO *io) % { % struct stat sb; % int type; % % if (fstat(io-fd, sb) == -1) % err(1, %s, io-name); FIODTYPE should only be used as a hint, but dd makes its non-support fatal in some cases. Even fstat() failure for determining the hint shouldn't be fatal. % if (S_ISREG(sb.st_mode)) % io-flags |= ISTRUNC; % if (S_ISCHR(sb.st_mode) || S_ISBLK(sb.st_mode)) { % if (ioctl(io-fd, FIODTYPE, type) == -1) { % err(1, %s, io-name); % } else { dd only uses the dtype hint for devices. Otherwise, it uses defaults. It might as well use the defaults for devices that don't support dtype too. % if (type D_TAPE) % io-flags |= ISTAPE; % else if (type (D_DISK | D_MEM)) % io-flags |= ISSEEK; % if (S_ISCHR(sb.st_mode) (type D_TAPE) == 0) % io-flags |= ISCHR; % } % return; % } % errno = 0; % if (lseek(io-fd, (off_t)0, SEEK_CUR) == -1 errno == ESPIPE) % io-flags |= ISPIPE; % else % io-flags |= ISSEEK; % } Not only the dtype check is bad. dd still has to guess about seekability, and does this not very well. Guessing is not needed for pipes, but dd guesses for them. Pipes are not seekable, but the converse is false. Tapes ar character devices, but ISCHR is not set for them. I use the following fixes (not complete -- at least the spelling change for ISSEEK is mostly in other files). @diff -u2 dd.c~ dd.c @--- dd.c~ Wed Apr 7 20:20:48 2004 @+++ dd.c Wed Apr 7 20:20:49 2004 @@@ -247,21 +245,18 @@ @ io-flags |= ISTRUNC; @ if (S_ISCHR(sb.st_mode) || S_ISBLK(sb.st_mode)) { @- if (ioctl(io-fd, FIODTYPE, type) == -1) { @+ if (ioctl(io-fd, FIODTYPE, type) == -1) @ err(1, %s, io-name); @- } else { @+ else { @ if (type D_TAPE) @ io-flags |= ISTAPE; @ else if (type (D_DISK | D_MEM)) @- io-flags |= ISSEEK; @- if (S_ISCHR(sb.st_mode) (type D_TAPE) == 0) @+ io-flags |= ISSEEKABLE; @+ if (S_ISCHR(sb.st_mode)) @ io-flags |= ISCHR; @ } @- return; @- } @- errno = 0; @- if (lseek(io-fd, (off_t)0, SEEK_CUR) == -1 errno == ESPIPE) @- io-flags |= ISPIPE; @- else @- io-flags |= ISSEEK; @+ } else if (lseek(io-fd, (off_t)0, SEEK_CUR) == 0) @+ io-flags |= ISSEEKABLE; @+ else if (errno == ESPIPE) @+ io-flags |= ISPIPE; /* XXX fixed in 4.4BSD */ @ } @ Bruce ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273743 - head/bin/dd
Author: pi (ports committer) Date: Mon Oct 27 17:39:37 2014 New Revision: 273743 URL: https://svnweb.freebsd.org/changeset/base/273743 Log: bin/dd: revert 273734, as it fails on 32bit platforms Revert: insufficient testing on 32bit platforms PR: 191263 Modified: head/bin/dd/args.c head/bin/dd/conv.c head/bin/dd/dd.c head/bin/dd/dd.h head/bin/dd/position.c Modified: head/bin/dd/args.c == --- head/bin/dd/args.c Mon Oct 27 16:15:15 2014(r273742) +++ head/bin/dd/args.c Mon Oct 27 17:39:37 2014(r273743) @@ -41,7 +41,6 @@ __FBSDID($FreeBSD$); #include sys/types.h -#include ctype.h #include err.h #include errno.h #include inttypes.h @@ -172,7 +171,8 @@ jcl(char **argv) */ if (in.offset OFF_MAX / (ssize_t)in.dbsz || out.offset OFF_MAX / (ssize_t)out.dbsz) - errx(1, seek offsets cannot be larger than %jd, OFF_MAX); + errx(1, seek offsets cannot be larger than %jd, + (intmax_t)OFF_MAX); } static int @@ -186,30 +186,37 @@ c_arg(const void *a, const void *b) static void f_bs(char *arg) { + uintmax_t res; - in.dbsz = out.dbsz = get_num(arg); - if (out.dbsz 1 || out.dbsz SSIZE_MAX) - errx(1, bs must be between 1 and %jd, SSIZE_MAX); + res = get_num(arg); + if (res 1 || res SSIZE_MAX) + errx(1, bs must be between 1 and %jd, (intmax_t)SSIZE_MAX); + in.dbsz = out.dbsz = (size_t)res; } static void f_cbs(char *arg) { + uintmax_t res; - cbsz = get_num(arg); - if (cbsz 1 || cbsz SSIZE_MAX) - errx(1, cbs must be between 1 and %jd, SSIZE_MAX); + res = get_num(arg); + if (res 1 || res SSIZE_MAX) + errx(1, cbs must be between 1 and %jd, (intmax_t)SSIZE_MAX); + cbsz = (size_t)res; } static void f_count(char *arg) { + intmax_t res; - cpy_cnt = get_num(arg); - if (cpy_cnt == SIZE_MAX) - errc(1, ERANGE, %s, oper); - if (cpy_cnt == 0) - cpy_cnt = -1; + res = (intmax_t)get_num(arg); + if (res 0) + errx(1, count cannot be negative); + if (res == 0) + cpy_cnt = (uintmax_t)-1; + else + cpy_cnt = (uintmax_t)res; } static void @@ -218,7 +225,7 @@ f_files(char *arg) files_cnt = get_num(arg); if (files_cnt 1) - errx(1, files must be between 1 and %ju, SIZE_MAX); + errx(1, files must be between 1 and %jd, (uintmax_t)-1); } static void @@ -234,11 +241,14 @@ f_fillchar(char *arg) static void f_ibs(char *arg) { + uintmax_t res; if (!(ddflags C_BS)) { - in.dbsz = get_num(arg); - if (in.dbsz 1 || in.dbsz SSIZE_MAX) - errx(1, ibs must be between 1 and %ju, SSIZE_MAX); + res = get_num(arg); + if (res 1 || res SSIZE_MAX) + errx(1, ibs must be between 1 and %jd, + (intmax_t)SSIZE_MAX); + in.dbsz = (size_t)res; } } @@ -252,11 +262,14 @@ f_if(char *arg) static void f_obs(char *arg) { + uintmax_t res; if (!(ddflags C_BS)) { - out.dbsz = get_num(arg); - if (out.dbsz 1 || out.dbsz SSIZE_MAX) - errx(1, obs must be between 1 and %jd, SSIZE_MAX); + res = get_num(arg); + if (res 1 || res SSIZE_MAX) + errx(1, obs must be between 1 and %jd, + (intmax_t)SSIZE_MAX); + out.dbsz = (size_t)res; } } @@ -365,17 +378,11 @@ get_num(const char *val) uintmax_t num, mult, prevnum; char *expr; - while (isspace(val[0])) - val++; - - if (val[0] == '-') - errx(1, %s: cannot be negative, oper); - errno = 0; - num = strtoull(val, expr, 0); + num = strtouq(val, expr, 0); if (errno != 0) /* Overflow or underflow. */ err(1, %s, oper); - + if (expr == val)/* No valid digits. */ errx(1, %s: illegal numeric value, oper); Modified: head/bin/dd/conv.c == --- head/bin/dd/conv.c Mon Oct 27 16:15:15 2014(r273742) +++ head/bin/dd/conv.c Mon Oct 27 17:39:37 2014(r273743) @@ -133,7 +133,7 @@ block(void) */ ch = 0; for (inp = in.dbp - in.dbcnt, outp = out.dbp; in.dbcnt;) { - maxlen = MIN(cbsz, (size_t)in.dbcnt); + maxlen = MIN(cbsz, in.dbcnt); if ((t = ctab) != NULL) for (cnt = 0; cnt maxlen (ch = *inp++) != '\n'; ++cnt)
Re: svn commit: r273734 - head/bin/dd
Hi! So, given this detailed review, should I revert the change ? Yes. You would have to change half of it just to get it to compile on 32-bit arches. Done. It's clearly my fault, I was sloppy in testing 8-( -- p...@freebsd.org +49 171 31013726 years to go ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273130 - head/sys/fs/deadfs
On Wed, 15 Oct 2014, Konstantin Belousov wrote: Log: Change the deadfs poll VOP to return POLLIN|POLLRDNORM if the caller is interested in i/o state. Return POLLNVAL for invalid bits, similar to poll_no_poll(). Note that POLLOUT must not be returned, since POLLHUP is set. Noted and reviewed by: bde Sponsored by: The FreeBSD Foundation MFC after: 1 week Thanks. This is not a complete fix, but is just bug for bug compatible with poll_no_poll() and less buggy that the previous version. POLLNVAL means that the fd is valid, so it should not be returned for dead fd's (the whole point of deadfs is to keep the fd's alive enough to be valid). POLLIN should only be returned in there is (non-null) data. For some fd's, there may be both hangup and data, but for dead fd's there can only be hangup, so POLLIN is especially useless for deadfs. ttys are one of the few file types that usually set POLLIN correctly for EOF (that is, POLLIN is not set for EOF). 2 unusual broken cases remain for ttys: - when the tty goes away but the fd is still connected to the tty driver, POLLIN is set if it is checked for - but the fd is connected to deadfs (typically after it is revoked), the behaviour is now the same as when the tty goes away, except POLLNVAL is also set. For other file types, the new behaviour matches bugs in the handling for undead fd's better, while fixing some of the bugs in the old behaviour. Bruce ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273214 - in head/sys: amd64/vmm/intel modules/vmm
On Monday, October 27, 2014 11:36:41 AM Warner Losh wrote: On Oct 27, 2014, at 10:54 AM, John Baldwin j...@freebsd.org wrote: On Friday, October 17, 2014 01:20:50 PM Warner Losh wrote: Author: imp Date: Fri Oct 17 13:20:49 2014 New Revision: 273214 URL: https://svnweb.freebsd.org/changeset/base/273214 Log: Fix build to not bogusly always rebuild vmm.ko. Rename vmx_assym.s to vmx_assym.h to reflect that file's actual use and update vmx_support.S's include to match. Add vmx_assym.h to the SRCS to that it gets properly added to the dependency list. Add vmx_support.S to SRCS as well, so it gets built and needs fewer special-case goo. Remove now-redundant special-case goo. Finally, vmx_genassym.o doesn't need to depend on a hand expanded ${_ILINKS} explicitly, that's all taken care of by beforedepend. With these items fixed, we no longer build vmm.ko every single time through the modules on a KERNFAST build. So I cheered for this before, but it appears to be broken. :( Namely, I rebuilt world + kernel on my laptop this weekend (it was about a month old). My normal setup builds kernels with NO_KERNELCLEAN=yes. On my next reboot when I started a bhyve VM I promptly got a panic due to a page fault in this assembly code: /* * If 'vmx-eptgen[curcpu]' is not identical to 'pmap-pm_eptgen' * then we must invalidate all mappings associated with this EPTP. */ movqPM_EPTGEN(%r11), %r10 cmpq%r10, VMX_EPTGEN(%rsi, %rax, 8) je guest_restore (The 'cmpq' instruction) This change came to mind, so I blew away the 'vmm' module directory and rebuilt my kernel. Comparing the assembly of this instruction before and after used different values for VMX_EPTGEN. In other words, the NO_KERNELCLEAN=yes build failed to regenerate vmx_assym.h and the build used stale values. Is there a way to force this condition for testing? You could checkout an older tree (probably before the recent merge of AMD SVM support) and build vmm.ko, then svn update and see if vmx_assym and vmx_support.o are updated. Actually, this was simpler: % cd sys/modules/vmm % make depend % make vmx_assym.h # reports nothing to do % touch machine/vmm.h # vmx_genassym.c includes this % make vmx_assym.h # should rebuild, but doesn't In particular, if you examine the generated .depend file, you will find that there are no dependencies recorded for vmx_genassym.o, so it is never rebuilt if any of the headers it includes are changed. In my case the panic happened to be one that was easily diagnosed, but I could imagine stale assym headers causing very odd crashes that would be quite hard to track down. I think these changes should be reverted if we can't fix the dependencies of the associated object files they are generated from. :( Give me a bit and I’ll fix it. There’s a number of implicit dependencies that don’t get recorded in the .depend file, iirc, so that’s not completely conclusive. Not building, though is kinda a big hint that something’s amiss. I think the thing here is that for the assym files we don't record any dependency info at all. The main kernel build does record dependencies for genassym.o in .depend, so it must be doable. In kern.pre.mk: GEN_CFILES= $S/$M/$M/genassym.c ${MFILES:T:S/.m$/.c/} and those are then explicitly passed to mkdep in kern.post.mk. So this fixes it: Index: Makefile === --- Makefile(revision 273555) +++ Makefile(working copy) @@ -4,6 +4,7 @@ KMOD= vmm SRCS= opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h SRCS+= vmx_assym.h svm_assym.h +DPSRCS=vmx_genassym.c svm_genassym.c CFLAGS+= -DVMM_KEEP_STATS -DSMP CFLAGS+= -I${.CURDIR}/../../amd64/vmm I'll try to track down all the other assym files and fix them as well. However, -DNO_CLEAN has always been a very-sharp edged tool that will cut you in a number of ways, so there’s no rush to back this out. This is the first time in many years that NO_KERNELCLEAN=yes has been a problem for me. (worlds sometimes have issues, but kernels rarely do). Also, usually when it breaks it fails to compile, it doesn't compile and then panic. :( -- John Baldwin ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273744 - in head/sys/modules: linux vmm
Author: jhb Date: Mon Oct 27 18:37:11 2014 New Revision: 273744 URL: https://svnweb.freebsd.org/changeset/base/273744 Log: Add foo_genassym.c files to DPSRCS so dependencies for them are generated. This ensures these objects are rebuilt to generate an updated header of assembly constants if needed. Modified: head/sys/modules/linux/Makefile head/sys/modules/vmm/Makefile Modified: head/sys/modules/linux/Makefile == --- head/sys/modules/linux/Makefile Mon Oct 27 17:39:37 2014 (r273743) +++ head/sys/modules/linux/Makefile Mon Oct 27 18:37:11 2014 (r273744) @@ -17,6 +17,7 @@ SRCS= linux_fork.c linux${SFX}_dummy.c l opt_inet6.h opt_compat.h opt_posix.h opt_usb.h vnode_if.h \ device_if.h bus_if.h assym.s \ linux${SFX}_locore.s linux${SFX}_support.s +DPSRCS=linux${SFX}_genassym.c # XXX: for assym.s SRCS+= opt_kstack_pages.h opt_nfs.h opt_compat.h opt_hwpmc_hooks.h Modified: head/sys/modules/vmm/Makefile == --- head/sys/modules/vmm/Makefile Mon Oct 27 17:39:37 2014 (r273743) +++ head/sys/modules/vmm/Makefile Mon Oct 27 18:37:11 2014 (r273744) @@ -4,6 +4,7 @@ KMOD= vmm SRCS= opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h SRCS+= vmx_assym.h svm_assym.h +DPSRCS=vmx_genassym.c svm_genassym.c CFLAGS+= -DVMM_KEEP_STATS -DSMP CFLAGS+= -I${.CURDIR}/../../amd64/vmm @@ -53,7 +54,7 @@ SRCS+=vmcb.c \ npt.c \ amdv.c \ svm_msr.c - + CLEANFILES=vmx_assym.h vmx_genassym.o svm_assym.h svm_genassym.o vmx_assym.h:vmx_genassym.o ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273745 - head/sys/kern
Author: mjg Date: Mon Oct 27 20:18:30 2014 New Revision: 273745 URL: https://svnweb.freebsd.org/changeset/base/273745 Log: De-kr-ify function definitions in kern/kern_resource.c No functional changes. Modified: head/sys/kern/kern_resource.c Modified: head/sys/kern/kern_resource.c == --- head/sys/kern/kern_resource.c Mon Oct 27 18:37:11 2014 (r273744) +++ head/sys/kern/kern_resource.c Mon Oct 27 20:18:30 2014 (r273745) @@ -92,9 +92,7 @@ struct getpriority_args { }; #endif int -sys_getpriority(td, uap) - struct thread *td; - register struct getpriority_args *uap; +sys_getpriority(struct thread *td, register struct getpriority_args *uap) { struct proc *p; struct pgrp *pg; @@ -177,9 +175,7 @@ struct setpriority_args { }; #endif int -sys_setpriority(td, uap) - struct thread *td; - struct setpriority_args *uap; +sys_setpriority(struct thread *td, struct setpriority_args *uap) { struct proc *curp, *p; struct pgrp *pg; @@ -373,9 +369,7 @@ struct rtprio_args { }; #endif int -sys_rtprio(td, uap) - struct thread *td; /* curthread */ - register struct rtprio_args *uap; +sys_rtprio(struct thread *td, register struct rtprio_args *uap) { struct proc *p; struct thread *tdp; @@ -541,9 +535,7 @@ struct osetrlimit_args { }; #endif int -osetrlimit(td, uap) - struct thread *td; - register struct osetrlimit_args *uap; +osetrlimit(struct thread *td, register struct osetrlimit_args *uap) { struct orlimit olim; struct rlimit lim; @@ -564,9 +556,7 @@ struct ogetrlimit_args { }; #endif int -ogetrlimit(td, uap) - struct thread *td; - register struct ogetrlimit_args *uap; +ogetrlimit(struct thread *td, register struct ogetrlimit_args *uap) { struct orlimit olim; struct rlimit rl; @@ -603,9 +593,7 @@ struct __setrlimit_args { }; #endif int -sys_setrlimit(td, uap) - struct thread *td; - register struct __setrlimit_args *uap; +sys_setrlimit(struct thread *td, register struct __setrlimit_args *uap) { struct rlimit alim; int error; @@ -797,9 +785,7 @@ struct __getrlimit_args { #endif /* ARGSUSED */ int -sys_getrlimit(td, uap) - struct thread *td; - register struct __getrlimit_args *uap; +sys_getrlimit(struct thread *td, register struct __getrlimit_args *uap) { struct rlimit rlim; struct proc *p; @@ -820,10 +806,7 @@ sys_getrlimit(td, uap) * into user and system time usage. */ void -calccru(p, up, sp) - struct proc *p; - struct timeval *up; - struct timeval *sp; +calccru(struct proc *p, struct timeval *up, struct timeval *sp) { PROC_LOCK_ASSERT(p, MA_OWNED); @@ -976,9 +959,7 @@ struct getrusage_args { }; #endif int -sys_getrusage(td, uap) - register struct thread *td; - register struct getrusage_args *uap; +sys_getrusage(register struct thread *td, register struct getrusage_args *uap) { struct rusage ru; int error; @@ -1133,8 +1114,7 @@ lim_alloc() } struct plimit * -lim_hold(limp) - struct plimit *limp; +lim_hold(struct plimit *limp) { refcount_acquire(limp-pl_refcnt); @@ -1142,8 +1122,7 @@ lim_hold(limp) } static __inline int -lim_shared(limp) - struct plimit *limp; +lim_shared(struct plimit *limp) { return (limp-pl_refcnt 1); @@ -1164,8 +1143,7 @@ lim_fork(struct proc *p1, struct proc *p } void -lim_free(limp) - struct plimit *limp; +lim_free(struct plimit *limp) { if (refcount_release(limp-pl_refcnt)) @@ -1177,8 +1155,7 @@ lim_free(limp) * We share these structures copy-on-write after fork. */ void -lim_copy(dst, src) - struct plimit *dst, *src; +lim_copy(struct plimit *dst, struct plimit *src) { KASSERT(!lim_shared(dst), (lim_copy to shared limit)); @@ -1240,8 +1217,7 @@ uihashinit() * uihashtbl_lock must be locked. */ static struct uidinfo * -uilookup(uid) - uid_t uid; +uilookup(uid_t uid) { struct uihashhead *uipp; struct uidinfo *uip; @@ -1261,8 +1237,7 @@ uilookup(uid) * uifree() should be called on a struct uidinfo when released. */ struct uidinfo * -uifind(uid) - uid_t uid; +uifind(uid_t uid) { struct uidinfo *old_uip, *uip; @@ -1300,8 +1275,7 @@ uifind(uid) * Place another refcount on a uidinfo struct. */ void -uihold(uip) - struct uidinfo *uip; +uihold(struct uidinfo *uip) { refcount_acquire(uip-ui_ref); @@ -1323,8 +1297,7 @@ uihold(uip) * order to try again. */ void -uifree(uip) - struct uidinfo *uip; +uifree(struct uidinfo *uip) { int old; @@ -1380,10 +1353,7 @@ ui_racct_foreach(void (*callback)(struct * a given user is using. When 'max' is 0, don't enforce a limit */ int -chgproccnt(uip, diff, max) - struct uidinfo *uip;
svn commit: r273746 - head/sys/kern
Author: mjg Date: Mon Oct 27 20:20:05 2014 New Revision: 273746 URL: https://svnweb.freebsd.org/changeset/base/273746 Log: Tidy up functions related to uidinfo management. - reference found uidinfo in uilookup - reduce nesting by handling shorter cases first Modified: head/sys/kern/kern_resource.c Modified: head/sys/kern/kern_resource.c == --- head/sys/kern/kern_resource.c Mon Oct 27 20:18:30 2014 (r273745) +++ head/sys/kern/kern_resource.c Mon Oct 27 20:20:05 2014 (r273746) @@ -1215,6 +1215,7 @@ uihashinit() /* * Look up a uidinfo struct for the parameter uid. * uihashtbl_lock must be locked. + * Increase refcount on uidinfo struct returned. */ static struct uidinfo * uilookup(uid_t uid) @@ -1225,49 +1226,52 @@ uilookup(uid_t uid) rw_assert(uihashtbl_lock, RA_LOCKED); uipp = UIHASH(uid); LIST_FOREACH(uip, uipp, ui_hash) - if (uip-ui_uid == uid) + if (uip-ui_uid == uid) { + uihold(uip); break; + } return (uip); } /* * Find or allocate a struct uidinfo for a particular uid. - * Increase refcount on uidinfo struct returned. + * Returns with uidinfo struct referenced. * uifree() should be called on a struct uidinfo when released. */ struct uidinfo * uifind(uid_t uid) { - struct uidinfo *old_uip, *uip; + struct uidinfo *new_uip, *uip; rw_rlock(uihashtbl_lock); uip = uilookup(uid); - if (uip == NULL) { - rw_runlock(uihashtbl_lock); - uip = malloc(sizeof(*uip), M_UIDINFO, M_WAITOK | M_ZERO); - racct_create(uip-ui_racct); - rw_wlock(uihashtbl_lock); - /* -* There's a chance someone created our uidinfo while we -* were in malloc and not holding the lock, so we have to -* make sure we don't insert a duplicate uidinfo. -*/ - if ((old_uip = uilookup(uid)) != NULL) { - /* Someone else beat us to it. */ - racct_destroy(uip-ui_racct); - free(uip, M_UIDINFO); - uip = old_uip; - } else { - refcount_init(uip-ui_ref, 0); - uip-ui_uid = uid; - mtx_init(uip-ui_vmsize_mtx, ui_vmsize, NULL, - MTX_DEF); - LIST_INSERT_HEAD(UIHASH(uid), uip, ui_hash); - } + rw_runlock(uihashtbl_lock); + if (uip != NULL) + return (uip); + + new_uip = malloc(sizeof(*new_uip), M_UIDINFO, M_WAITOK | M_ZERO); + racct_create(new_uip-ui_racct); + refcount_init(new_uip-ui_ref, 1); + new_uip-ui_uid = uid; + mtx_init(new_uip-ui_vmsize_mtx, ui_vmsize, NULL, MTX_DEF); + + rw_wlock(uihashtbl_lock); + /* +* There's a chance someone created our uidinfo while we +* were in malloc and not holding the lock, so we have to +* make sure we don't insert a duplicate uidinfo. +*/ + if ((uip = uilookup(uid)) == NULL) { + LIST_INSERT_HEAD(UIHASH(uid), new_uip, ui_hash); + rw_wunlock(uihashtbl_lock); + uip = new_uip; + } else { + rw_wunlock(uihashtbl_lock); + racct_destroy(new_uip-ui_racct); + mtx_destroy(new_uip-ui_vmsize_mtx); + free(new_uip, M_UIDINFO); } - uihold(uip); - rw_unlock(uihashtbl_lock); return (uip); } @@ -1308,28 +1312,26 @@ uifree(struct uidinfo *uip) /* Prepare for suboptimal case. */ rw_wlock(uihashtbl_lock); - if (refcount_release(uip-ui_ref)) { - racct_destroy(uip-ui_racct); - LIST_REMOVE(uip, ui_hash); + if (refcount_release(uip-ui_ref) == 0) { rw_wunlock(uihashtbl_lock); - if (uip-ui_sbsize != 0) - printf(freeing uidinfo: uid = %d, sbsize = %ld\n, - uip-ui_uid, uip-ui_sbsize); - if (uip-ui_proccnt != 0) - printf(freeing uidinfo: uid = %d, proccnt = %ld\n, - uip-ui_uid, uip-ui_proccnt); - if (uip-ui_vmsize != 0) - printf(freeing uidinfo: uid = %d, swapuse = %lld\n, - uip-ui_uid, (unsigned long long)uip-ui_vmsize); - mtx_destroy(uip-ui_vmsize_mtx); - free(uip, M_UIDINFO); return; } - /* -* Someone added a reference between atomic_cmpset_int() and -* rw_wlock(uihashtbl_lock). -*/ + + racct_destroy(uip-ui_racct); + LIST_REMOVE(uip, ui_hash); rw_wunlock(uihashtbl_lock); + + if (uip-ui_sbsize !=
svn commit: r273747 - in head: contrib/hyperv/tools share/man/man8 tools/build/mk
Author: delphij Date: Mon Oct 27 21:29:42 2014 New Revision: 273747 URL: https://svnweb.freebsd.org/changeset/base/273747 Log: Remove an extra copy of hv_kvp_daemon(8) [1]. While I'm there also correct typos in OptionalObsoleteFiles and add information of the command line options for hv_kvp_daemon(8). Reported by: jmg [1] Reviewed by: jmg MFC after:2 weeks Deleted: head/share/man/man8/hv_kvp_daemon.8 Modified: head/contrib/hyperv/tools/hv_kvp_daemon.8 head/share/man/man8/Makefile head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/contrib/hyperv/tools/hv_kvp_daemon.8 == --- head/contrib/hyperv/tools/hv_kvp_daemon.8 Mon Oct 27 20:20:05 2014 (r273746) +++ head/contrib/hyperv/tools/hv_kvp_daemon.8 Mon Oct 27 21:29:42 2014 (r273747) @@ -22,41 +22,71 @@ .\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\ SUCH DAMAGE. .\ -.Dd September 10, 2013 -.Dt HYPER-V 4 +.\ $FreeBSD$ +.Dd October 27, 2014 +.Dt HV_KVP_DAEMON 8 .Os .Sh NAME .Nm hv_kvp_daemon .Nd Hyper-V Key Value Pair Daemon .Sh SYNOPSIS -The \fBhv_kvp_daemon\fP daemon provides the ability to store, retrieve, modify and delete -Key Value pairs for FreeBSD guest partitions running on Hyper-V. +.Nm +.Op Fl dn .Sh DESCRIPTION +The +.Nm +daemon provides the ability to store, retrieve, modify and delete +Key Value pairs for +.Fx +guest partitions running on Hyper-V. +.Pp Hyper-V allows administrators to store custom metadata in the form -of Key Value pairs inside the FreeBSD guest partition. Administrators can +of Key Value pairs inside the +.Fx +guest partition. +Administrators can use Windows Powershell scripts to add, read, modify and delete such Key Value pairs. - -The \fBhv_kvp_daemon\fP accepts Key Value pair management requests from the -\fBhv_utils\fP driver and performs the actual metadata management on the file-system. - +.Pp +The +.Nm +accepts Key Value pair management requests from the +.Xr hv_utils 4 +driver and performs the actual metadata management on the file-system. +.Pp The same daemon and driver combination is also used to set and get -IP addresses from a FreeBSD guest. - +IP addresses from a +.Fx +guest. +.Pp The set functionality is particularly -useful when the FreeBSD guest is assigned a static IP address and is failed -over from one Hyper-V host to another. After failover, Hyper-V uses the set IP +useful when the +.Fx +guest is assigned a static IP address and is failed +over from one Hyper-V host to another. +After failover, Hyper-V uses the set IP functionality to automatically -update the FreeBSD guest's IP address to its original static value. - +update the +.Fx +guest's IP address to its original static value. +.Pp On the other hand, the get IP functionality is used to update the guest IP address in the Hyper-V management console window. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl d +Run as regular process instead of a daemon for debugging purpose. +.It Fl n +Generate debugging output. +.El .Sh SEE ALSO .Xr hv_vmbus 4 , .Xr hv_utils 4 , .Xr hv_netvsc 4 , .Xr hv_storvsc 4 , -.Xr hv_ata_pci_disengage 4 +.Xr hv_ata_pci_disengage 4 , +.Xr hv_kvp 4 .Sh HISTORY Support for Hyper-V in the form of ports was first released in September 2013. The daemon was developed through a joint effort between Citrix Inc., @@ -64,5 +94,7 @@ Microsoft Corp. and Network Appliance In .Sh AUTHORS .An -nosplit .Fx -support for \fBhv_kvp_daemon\fP was first added by -.An Microsoft BSD Integration Services Team Aq bs...@microsoft.com . +support for +.Nm +was first added by +.An Microsoft BSD Integration Services Team Aq Mt bs...@microsoft.com . Modified: head/share/man/man8/Makefile == --- head/share/man/man8/MakefileMon Oct 27 20:20:05 2014 (r273746) +++ head/share/man/man8/MakefileMon Oct 27 21:29:42 2014 (r273747) @@ -3,7 +3,6 @@ MAN= crash.8 \ diskless.8 \ - hv_kvp_daemon.8 \ intro.8 \ nanobsd.8 \ picobsd.8 \ Modified: head/tools/build/mk/OptionalObsoleteFiles.inc == --- head/tools/build/mk/OptionalObsoleteFiles.inc Mon Oct 27 20:20:05 2014(r273746) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Mon Oct 27 21:29:42 2014(r273747) @@ -4779,5 +4779,6 @@ OLD_FILES+=etc/devd/hyperv.conf OLD_FILES+=usr/libexec/hyperv/hv_set_ifconfig OLD_FILES+=usr/libexec/hyperv/hv_get_dns_info OLD_FILES+=usr/libexec/hyperv/hv_get_dhcp_info -OLD_FILES+=usr/sbin/hv_kvpd +OLD_FILES+=usr/sbin/hv_kvp_daemon +OLD_FILES+=usr/share/man/man8/hv_kvp_daemon.8.gz .endif ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To
svn commit: r273748 - head/sys/x86/x86
Author: grehan Date: Mon Oct 27 22:02:35 2014 New Revision: 273748 URL: https://svnweb.freebsd.org/changeset/base/273748 Log: Output a summary of optional SVM features in dmesg similar to CPU features. If bootverbose is enabled, a detailed list is provided; otherwise, a single-line summary is displayed. Differential Revision:https://reviews.freebsd.org/D1008 Reviewed by: jhb, neel MFC after:1 week Modified: head/sys/x86/x86/identcpu.c Modified: head/sys/x86/x86/identcpu.c == --- head/sys/x86/x86/identcpu.c Mon Oct 27 21:29:42 2014(r273747) +++ head/sys/x86/x86/identcpu.c Mon Oct 27 22:02:35 2014(r273748) @@ -76,6 +76,7 @@ static u_int find_cpu_vendor_id(void); static void print_AMD_info(void); static void print_INTEL_info(void); static void print_INTEL_TLB(u_int data); +static void print_svm_info(void); static void print_via_padlock_info(void); static void print_vmx_info(void); @@ -932,6 +933,9 @@ printcpuinfo(void) if (cpu_feature2 CPUID2_VMX) print_vmx_info(); + if (amd_feature2 AMDID2_SVM) + print_svm_info(); + if ((cpu_feature CPUID_HTT) cpu_vendor_id == CPU_VENDOR_AMD) cpu_feature = ~CPUID_HTT; @@ -1735,6 +1739,67 @@ print_INTEL_TLB(u_int data) } } +static void +print_svm_info(void) +{ + u_int features, regs[4]; + uint64_t msr; + int comma; + + printf(\n SVM: ); + do_cpuid(0x800A, regs); + features = regs[3]; + + msr = rdmsr(MSR_VM_CR); + if ((msr VM_CR_SVMDIS) == VM_CR_SVMDIS) + printf((disabled in BIOS) ); + + if (!bootverbose) { + comma = 0; + if (features (1 0)) { + printf(%sNP, comma ? , : ); +comma = 1; + } + if (features (1 3)) { + printf(%sNRIP, comma ? , : ); +comma = 1; + } + if (features (1 5)) { + printf(%sVClean, comma ? , : ); +comma = 1; + } + if (features (1 6)) { + printf(%sAFlush, comma ? , : ); +comma = 1; + } + if (features (1 7)) { + printf(%sDAssist, comma ? , : ); +comma = 1; + } + printf(%sNAsids=%d, comma ? , : , regs[1]); + return; + } + + printf(Features=0x%b, features, + \020 + \001NP /* Nested paging */ + \002LbrVirt/* LBR virtualization */ + \003SVML /* SVM lock */ + \004NRIPS /* NRIP save */ + \005TscRateMsr /* MSR based TSC rate control */ + \006VmcbClean /* VMCB clean bits */ + \007FlushByAsid/* Flush by ASID */ + \010DecodeAssist /* Decode assist */ + \011b8 + \012b9 + \013PauseFilter/* PAUSE intercept filter */ + \014b11 + \015PauseFilterThreshold /* PAUSE filter threshold */ + \016AVIC /* virtual interrupt controller */ +); + printf(\nRevision=%d, ASIDs=%d, regs[0] 0xff, regs[1]); +} + #ifdef __i386__ static void print_transmeta_info(void) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273749 - head/sys/amd64/vmm/amd
Author: grehan Date: Mon Oct 27 22:20:51 2014 New Revision: 273749 URL: https://svnweb.freebsd.org/changeset/base/273749 Log: Remove bhyve SVM feature printf's now that they are available in the general CPU feature detection code. Reviewed by: neel Modified: head/sys/amd64/vmm/amd/svm.c Modified: head/sys/amd64/vmm/amd/svm.c == --- head/sys/amd64/vmm/amd/svm.cMon Oct 27 22:02:35 2014 (r273748) +++ head/sys/amd64/vmm/amd/svm.cMon Oct 27 22:20:51 2014 (r273749) @@ -174,30 +174,9 @@ check_svm_features(void) do_cpuid(0x800A, regs); svm_feature = regs[3]; - printf(SVM: Revision %d\n, regs[0] 0xFF); - printf(SVM: NumASID %u\n, regs[1]); - nasid = regs[1]; KASSERT(nasid 1, (Insufficient ASIDs for guests: %#x, nasid)); - printf(SVM: Features 0x%b\n, svm_feature, - \020 - \001NP/* Nested paging */ - \002LbrVirt /* LBR virtualization */ - \003SVML /* SVM lock */ - \004NRIPS /* NRIP save */ - \005TscRateMsr/* MSR based TSC rate control */ - \006VmcbClean /* VMCB clean bits */ - \007FlushByAsid /* Flush by ASID */ - \010DecodeAssist /* Decode assist */ - \011b8 - \012b9 - \013PauseFilter - \014b11 - \015PauseFilterThreshold - \016AVIC - ); - /* bhyve requires the Nested Paging feature */ if (!(svm_feature AMD_CPUID_SVM_NP)) { printf(SVM: Nested Paging feature not available.\n); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273750 - head/sys/dev/cxgbe/iw_cxgbe
Author: np Date: Mon Oct 27 22:22:46 2014 New Revision: 273750 URL: https://svnweb.freebsd.org/changeset/base/273750 Log: Some cxgbe/iw_cxgbe fixes: - Free rt in c4iw_connect only if it is allocated. - Call soclose instead of so_shutdown if there is an abort from the peer. - Close socket and return failure if TOE is not enabled. Submitted by: Hariprasad at Chelsio dot com Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/iw_cxgbe/cm.c Modified: head/sys/dev/cxgbe/iw_cxgbe/cm.c == --- head/sys/dev/cxgbe/iw_cxgbe/cm.cMon Oct 27 22:20:51 2014 (r273749) +++ head/sys/dev/cxgbe/iw_cxgbe/cm.cMon Oct 27 22:22:46 2014 (r273750) @@ -474,7 +474,7 @@ process_conn_error(struct c4iw_ep *ep) if (state != ABORTING) { CTR2(KTR_IW_CXGBE, %s:pce1 %p, __func__, ep); - close_socket(ep-com, 0); + close_socket(ep-com, 1); state_set(ep-com, DEAD); c4iw_put_ep(ep-com); } @@ -2084,14 +2084,15 @@ int c4iw_connect(struct iw_cm_id *cm_id, CTR2(KTR_IW_CXGBE, %s:cc7 %p, __func__, ep); printk(KERN_ERR MOD %s - cannot find route.\n, __func__); err = -EHOSTUNREACH; - goto fail3; + goto fail2; } - - if (!(rt-rt_ifp-if_flags IFCAP_TOE)) { + if (!(rt-rt_ifp-if_capenable IFCAP_TOE)) { CTR2(KTR_IW_CXGBE, %s:cc8 %p, __func__, ep); printf(%s - interface not TOE capable.\n, __func__); + close_socket(ep-com, 0); + err = -ENOPROTOOPT; goto fail3; } tdev = TOEDEV(rt-rt_ifp); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273751 - head/sys/contrib/rdma/krping
Author: np Date: Mon Oct 27 22:41:55 2014 New Revision: 273751 URL: https://svnweb.freebsd.org/changeset/base/273751 Log: krping: In verbose mode print only first 128 bytes of krping data. Submitted by: Hariprasad at Chelsio dot com. Sponsored by: Chelsio Communications Modified: head/sys/contrib/rdma/krping/krping.c Modified: head/sys/contrib/rdma/krping/krping.c == --- head/sys/contrib/rdma/krping/krping.c Mon Oct 27 22:22:46 2014 (r273750) +++ head/sys/contrib/rdma/krping/krping.c Mon Oct 27 22:41:55 2014 (r273751) @@ -1011,9 +1011,17 @@ static void krping_test_server(struct kr DEBUG_LOG(cb, server received read complete\n); /* Display data in recv buf */ - if (cb-verbose) - PRINTF(cb, server ping data: %s\n, - cb-rdma_buf); + if (cb-verbose) { + if (strlen(cb-rdma_buf) 128) { + char msgbuf[128]; + + strlcpy(msgbuf, cb-rdma_buf, sizeof(msgbuf)); + PRINTF(cb, server ping data stripped: %s\n, + msgbuf); + } else + PRINTF(cb, server ping data: %s\n, + cb-rdma_buf); + } /* Tell client to continue */ if (cb-server cb-server_invalidate) { @@ -1713,8 +1721,16 @@ static void krping_test_client(struct kr break; } - if (cb-verbose) - PRINTF(cb, ping data: %s\n, cb-rdma_buf); + if (cb-verbose) { + if (strlen(cb-rdma_buf) 128) { + char msgbuf[128]; + + strlcpy(msgbuf, cb-rdma_buf, sizeof(msgbuf)); + PRINTF(cb, ping data stripped: %s\n, + msgbuf); + } else + PRINTF(cb, ping data: %s\n, cb-rdma_buf); + } #ifdef SLOW_KRPING wait_event_interruptible_timeout(cb-sem, cb-state == ERROR, HZ); #endif ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273752 - head/lib/libnv
Author: jmg Date: Mon Oct 27 23:03:17 2014 New Revision: 273752 URL: https://svnweb.freebsd.org/changeset/base/273752 Log: fix typo, properly install a link to nv for nvlist_freev... Modified: head/lib/libnv/Makefile Modified: head/lib/libnv/Makefile == --- head/lib/libnv/Makefile Mon Oct 27 22:41:55 2014(r273751) +++ head/lib/libnv/Makefile Mon Oct 27 23:03:17 2014(r273752) @@ -149,7 +149,7 @@ MLINKS+=nv.3 nvlist_existsv.3 \ nv.3 nvlist_takev_nvlist.3 \ nv.3 nvlist_takev_descriptor.3 \ nv.3 nvlist_takev_binary.3 \ - nv.3 nvlist_freef.3 \ + nv.3 nvlist_freev.3 \ nv.3 nvlist_freev_type.3 \ nv.3 nvlist_freev_null.3 \ nv.3 nvlist_freev_bool.3 \ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273753 - head/sys/dev/cxgbe/iw_cxgbe
Author: np Date: Mon Oct 27 23:11:48 2014 New Revision: 273753 URL: https://svnweb.freebsd.org/changeset/base/273753 Log: iwcm_event status needs to be populated for close_complete_upcall Submitted by: Hariprasad at Chelsio dot com Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/iw_cxgbe/cm.c Modified: head/sys/dev/cxgbe/iw_cxgbe/cm.c == --- head/sys/dev/cxgbe/iw_cxgbe/cm.cMon Oct 27 23:03:17 2014 (r273752) +++ head/sys/dev/cxgbe/iw_cxgbe/cm.cMon Oct 27 23:11:48 2014 (r273753) @@ -94,7 +94,7 @@ static void abort_socket(struct c4iw_ep static void send_mpa_req(struct c4iw_ep *ep); static int send_mpa_reject(struct c4iw_ep *ep, const void *pdata, u8 plen); static int send_mpa_reply(struct c4iw_ep *ep, const void *pdata, u8 plen); -static void close_complete_upcall(struct c4iw_ep *ep); +static void close_complete_upcall(struct c4iw_ep *ep, int status); static int abort_connection(struct c4iw_ep *ep); static void peer_close_upcall(struct c4iw_ep *ep); static void peer_abort_upcall(struct c4iw_ep *ep); @@ -366,7 +366,7 @@ process_peer_close(struct c4iw_ep *ep) C4IW_QP_ATTR_NEXT_STATE, attrs, 1); } close_socket(ep-com, 0); - close_complete_upcall(ep); + close_complete_upcall(ep, 0); __state_set(ep-com, DEAD); release = 1; disconnect = 0; @@ -528,7 +528,7 @@ process_close_complete(struct c4iw_ep *e CTR2(KTR_IW_CXGBE, %s:pcc4 %p, __func__, ep); close_socket(ep-com, 0); } - close_complete_upcall(ep); + close_complete_upcall(ep, 0); __state_set(ep-com, DEAD); release = 1; break; @@ -1192,13 +1192,14 @@ static int send_mpa_reply(struct c4iw_ep -static void close_complete_upcall(struct c4iw_ep *ep) +static void close_complete_upcall(struct c4iw_ep *ep, int status) { struct iw_cm_event event; CTR2(KTR_IW_CXGBE, %s:ccuB %p, __func__, ep); memset(event, 0, sizeof(event)); event.event = IW_CM_EVENT_CLOSE; + event.status = status; if (ep-com.cm_id) { @@ -1217,7 +1218,7 @@ static int abort_connection(struct c4iw_ int err; CTR2(KTR_IW_CXGBE, %s:abB %p, __func__, ep); - close_complete_upcall(ep); + close_complete_upcall(ep, -ECONNRESET); state_set(ep-com, ABORTING); abort_socket(ep); err = close_socket(ep-com, 0); @@ -2212,7 +2213,7 @@ int c4iw_ep_disconnect(struct c4iw_ep *e CTR2(KTR_IW_CXGBE, %s:ced1 %p, __func__, ep); fatal = 1; - close_complete_upcall(ep); + close_complete_upcall(ep, -EIO); ep-com.state = DEAD; } CTR3(KTR_IW_CXGBE, %s:ced2 %p %s, __func__, ep, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273754 - head/usr.sbin/pkg
Author: nwhitehorn Date: Mon Oct 27 23:19:51 2014 New Revision: 273754 URL: https://svnweb.freebsd.org/changeset/base/273754 Log: Use pkg-1.4-style platform identifiers based on MACHINE_ARCH (e.g. FreeBSD:11:amd64 instead of freebsd:11:x86:64) when bootstrapping pkg. Thanks to portmgr for providing symlinks so both styles work. Reviewed by: bapt MFC after:3 weeks Deleted: head/usr.sbin/pkg/elf_tables.h Modified: head/usr.sbin/pkg/Makefile head/usr.sbin/pkg/config.c Modified: head/usr.sbin/pkg/Makefile == --- head/usr.sbin/pkg/Makefile Mon Oct 27 23:11:48 2014(r273753) +++ head/usr.sbin/pkg/Makefile Mon Oct 27 23:19:51 2014(r273754) @@ -8,7 +8,7 @@ CFLAGS+=-I${.CURDIR}/../../contrib/libuc .PATH: ${.CURDIR}/../../contrib/libucl/include DPADD= ${LIBARCHIVE} ${LIBELF} ${LIBFETCH} ${LIBUCL} ${LIBSBUF} ${LIBSSL} \ ${LIBCRYPTO} ${LIBM} -LDADD= -larchive -lelf -lfetch ${LDUCL} -lsbuf -lssl -lcrypto -lm +LDADD= -larchive -lfetch ${LDUCL} -lsbuf -lssl -lcrypto -lm USEPRIVATELIB= ucl .include bsd.prog.mk Modified: head/usr.sbin/pkg/config.c == --- head/usr.sbin/pkg/config.c Mon Oct 27 23:11:48 2014(r273753) +++ head/usr.sbin/pkg/config.c Mon Oct 27 23:19:51 2014(r273754) @@ -31,9 +31,9 @@ __FBSDID($FreeBSD$); #include sys/param.h #include sys/queue.h #include sys/sbuf.h -#include sys/elf_common.h -#include sys/endian.h #include sys/types.h +#include sys/utsname.h +#include sys/sysctl.h #include assert.h #include dirent.h @@ -42,14 +42,12 @@ __FBSDID($FreeBSD$); #include err.h #include errno.h #include fcntl.h -#include gelf.h #include inttypes.h #include paths.h #include stdbool.h #include string.h #include unistd.h -#include elf_tables.h #include config.h #define roundup2(x, y) (((x)+((y)-1))(~((y)-1))) /* if y is powers of two */ @@ -135,349 +133,32 @@ static struct config_entry c[] = { }, }; -static const char * -elf_corres_to_string(struct _elf_corres *m, int e) -{ - int i; - - for (i = 0; m[i].string != NULL; i++) - if (m[i].elf_nb == e) - return (m[i].string); - - return (unknown); -} - -static const char * -aeabi_parse_arm_attributes(void *data, size_t length) -{ - uint32_t sect_len; - uint8_t *section = data; - -#defineMOVE(len) do {\ - assert(length = (len)); \ - section += (len); \ - length -= (len); \ -} while (0) - - if (length == 0 || *section != 'A') - return (NULL); - - MOVE(1); - - /* Read the section length */ - if (length sizeof(sect_len)) - return (NULL); - - memcpy(sect_len, section, sizeof(sect_len)); - - /* -* The section length should be no longer than the section it is within -*/ - if (sect_len length) - return (NULL); - - MOVE(sizeof(sect_len)); - - /* Skip the vendor name */ - while (length != 0) { - if (*section == '\0') - break; - MOVE(1); - } - if (length == 0) - return (NULL); - MOVE(1); - - while (length != 0) { - uint32_t tag_length; - - switch(*section) { - case 1: /* Tag_File */ - MOVE(1); - if (length sizeof(tag_length)) - return (NULL); - memcpy(tag_length, section, sizeof(tag_length)); - break; - case 2: /* Tag_Section */ - case 3: /* Tag_Symbol */ - default: - return (NULL); - } - /* At least space for the tag and size */ - if (tag_length = 5) - return (NULL); - tag_length--; - /* Check the tag fits */ - if (tag_length length) - return (NULL); - -#define MOVE_TAG(len) do { \ - assert(tag_length = (len)); \ - MOVE(len);\ - tag_length -= (len); \ -} while(0) - - MOVE(sizeof(tag_length)); - tag_length -= sizeof(tag_length); - - while (tag_length != 0) { - uint8_t tag; - - assert(tag_length = length); - - tag = *section; - MOVE_TAG(1); - - /* -* These tag values come from: -* -* Addenda to, and Errata in, the ABI for the -* ARM Architecture. Release 2.08, section 2.3. -*/ - if (tag == 6) { /* == Tag_CPU_arch */ - uint8_t val; - - val = *section; - /* -
svn commit: r273755 - head
Author: bapt Date: Mon Oct 27 23:31:07 2014 New Revision: 273755 URL: https://svnweb.freebsd.org/changeset/base/273755 Log: Rename XFLAGS to XCFLAGS and XXFLAGS to XCXXFLAGS This is less confusing names and actually more reflexting what they are intended to. Discussed with: brooks Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Mon Oct 27 23:19:51 2014(r273754) +++ head/Makefile.inc1 Mon Oct 27 23:31:07 2014(r273755) @@ -323,9 +323,9 @@ X${BINUTIL}?= ${CROSS_BINUTILS_PREFIX}${ X${BINUTIL}?= ${${BINUTIL}} .endif .endfor -WMAKEENV+= CC=${XCC} ${XFLAGS} CXX=${XCXX} ${XFLAGS} ${XXFLAGS} \ +WMAKEENV+= CC=${XCC} ${XCFLAGS} CXX=${XCXX} ${XCFLAGS} ${XCXXFLAGS} \ DEPFLAGS=${DEPFLAGS} \ - CPP=${XCPP} ${XFLAGS} \ + CPP=${XCPP} ${XCFLAGS} \ AS=${XAS} AR=${XAR} LD=${XLD} NM=${XNM} \ OBJDUMP=${XOBJDUMP} OBJCOPY=${XOBJCOPY} \ RANLIB=${XRANLIB} STRINGS=${XSTRINGS} \ @@ -351,13 +351,13 @@ TARGET_ABI= gnueabi .endif .endif .if defined(X_COMPILER_TYPE) ${X_COMPILER_TYPE} == gcc -XFLAGS+= -isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib -XXFLAGS+= -I${WORLDTMP}/usr/include/c++/v1 -std=gnu++11 -L${WORLDTMP}/../lib/libc++ +XCFLAGS+= -isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib +XCXXFLAGS+=-I${WORLDTMP}/usr/include/c++/v1 -std=gnu++11 -L${WORLDTMP}/../lib/libc++ DEPFLAGS+= -I${WORLDTMP}/usr/include/c++/v1 .else TARGET_ABI?= unknown TARGET_TRIPLE?=${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd11.0 -XFLAGS+= -target ${TARGET_TRIPLE} +XCFLAGS+= -target ${TARGET_TRIPLE} .endif .endif ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273756 - in head/lib: libusb libz
Author: jmg Date: Mon Oct 27 23:43:25 2014 New Revision: 273756 URL: https://svnweb.freebsd.org/changeset/base/273756 Log: only install .pc files when we are not installing 32bit compat libs... This fixes the problem of installing the .pc files multiple times... Modified: head/lib/libusb/Makefile head/lib/libz/Makefile Modified: head/lib/libusb/Makefile == --- head/lib/libusb/MakefileMon Oct 27 23:31:07 2014(r273755) +++ head/lib/libusb/MakefileMon Oct 27 23:43:25 2014(r273756) @@ -38,6 +38,7 @@ SRCS+=libusb10_io.c CFLAGS+= -DCOMPAT_32BIT .endif +.ifndef COMPAT_32BIT beforeinstall: ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${.CURDIR}/libusb-0.1.pc ${DESTDIR}${LIBDATADIR}/pkgconfig @@ -45,6 +46,7 @@ beforeinstall: ${.CURDIR}/libusb-1.0.pc ${DESTDIR}${LIBDATADIR}/pkgconfig ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${.CURDIR}/libusb-2.0.pc ${DESTDIR}${LIBDATADIR}/pkgconfig +.endif # # Cross platform support Modified: head/lib/libz/Makefile == --- head/lib/libz/Makefile Mon Oct 27 23:31:07 2014(r273755) +++ head/lib/libz/Makefile Mon Oct 27 23:43:25 2014(r273756) @@ -68,9 +68,11 @@ test: example minigzip (export LD_LIBRARY_PATH=. ; \ echo hello world | ./minigzip | ./minigzip -d ) +.ifndef COMPAT_32BIT beforeinstall: ${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${.CURDIR}/zlib.pc ${DESTDIR}${LIBDATADIR}/pkgconfig +.endif .include bsd.lib.mk ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273756 - in head/lib: libusb libz
On Mon, Oct 27, 2014 at 11:43:25PM +, John-Mark Gurney wrote: Author: jmg Date: Mon Oct 27 23:43:25 2014 New Revision: 273756 URL: https://svnweb.freebsd.org/changeset/base/273756 Log: only install .pc files when we are not installing 32bit compat libs... This fixes the problem of installing the .pc files multiple times... May be we should start having an infrastructure to work with .pc files because we will add more of them I do have in mind at least libarchive so far regards, Bapt pgpJYSBVkloHV.pgp Description: PGP signature
Re: svn commit: r273755 - head
On Mon, Oct 27, 2014 at 4:31 PM, Baptiste Daroussin b...@freebsd.org wrote: Author: bapt Date: Mon Oct 27 23:31:07 2014 New Revision: 273755 URL: https://svnweb.freebsd.org/changeset/base/273755 Log: Rename XFLAGS to XCFLAGS and XXFLAGS to XCXXFLAGS This is less confusing names and actually more reflexting what they are intended to. Discussed with: brooks Add an UPDATING entry? ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273757 - stable/10/sys/dev/re
Author: yongari Date: Tue Oct 28 00:43:00 2014 New Revision: 273757 URL: https://svnweb.freebsd.org/changeset/base/273757 Log: MFC r273359: It seems multicast filtering of RTL8168F does not work. Workaround the silicon bug by accepting any multicast packets. PR: 193488 Modified: stable/10/sys/dev/re/if_re.c Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/re/if_re.c == --- stable/10/sys/dev/re/if_re.cMon Oct 27 23:43:25 2014 (r273756) +++ stable/10/sys/dev/re/if_re.cTue Oct 28 00:43:00 2014 (r273757) @@ -702,6 +702,12 @@ re_set_rxmode(struct rl_softc *sc) rxfilt |= RL_RXCFG_RX_MULTI; } + if (sc-rl_hwrev-rl_rev == RL_HWREV_8168F) { + /* Disable multicast filtering due to silicon bug. */ + hashes[0] = 0x; + hashes[1] = 0x; + } + done: CSR_WRITE_4(sc, RL_MAR0, hashes[0]); CSR_WRITE_4(sc, RL_MAR4, hashes[1]); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273758 - stable/9/sys/dev/re
Author: yongari Date: Tue Oct 28 00:44:20 2014 New Revision: 273758 URL: https://svnweb.freebsd.org/changeset/base/273758 Log: MFC r273359: It seems multicast filtering of RTL8168F does not work. Workaround the silicon bug by accepting any multicast packets. PR: 193488 Modified: stable/9/sys/dev/re/if_re.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/re/if_re.c == --- stable/9/sys/dev/re/if_re.c Tue Oct 28 00:43:00 2014(r273757) +++ stable/9/sys/dev/re/if_re.c Tue Oct 28 00:44:20 2014(r273758) @@ -702,6 +702,12 @@ re_set_rxmode(struct rl_softc *sc) rxfilt |= RL_RXCFG_RX_MULTI; } + if (sc-rl_hwrev-rl_rev == RL_HWREV_8168F) { + /* Disable multicast filtering due to silicon bug. */ + hashes[0] = 0x; + hashes[1] = 0x; + } + done: CSR_WRITE_4(sc, RL_MAR0, hashes[0]); CSR_WRITE_4(sc, RL_MAR4, hashes[1]); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273759 - head/sys/powerpc/conf
Author: jhibbits Date: Tue Oct 28 01:34:01 2014 New Revision: 273759 URL: https://svnweb.freebsd.org/changeset/base/273759 Log: Add CAPABILITIES and CAPABILITY_MODE to powerpc GENERIC64, missed with the addition to GENERIC MFC after:3 weeks Modified: head/sys/powerpc/conf/GENERIC64 Modified: head/sys/powerpc/conf/GENERIC64 == --- head/sys/powerpc/conf/GENERIC64 Tue Oct 28 00:44:20 2014 (r273758) +++ head/sys/powerpc/conf/GENERIC64 Tue Oct 28 01:34:01 2014 (r273759) @@ -70,6 +70,8 @@ options SYSVSEM #SYSV-style semaphore options_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions optionsHWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) optionsAUDIT # Security event auditing +optionsCAPABILITY_MODE # Capsicum capability mode +optionsCAPABILITIES# Capsicum capabilities optionsMAC # TrustedBSD MAC Framework optionsKDTRACE_HOOKS # Kernel DTrace hooks optionsDDB_CTF # Kernel ELF linker loads CTF data ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273760 - head/lib/libc/stdio
Author: kevlo Date: Tue Oct 28 02:05:57 2014 New Revision: 273760 URL: https://svnweb.freebsd.org/changeset/base/273760 Log: Fix prototypes. Modified: head/lib/libc/stdio/open_memstream.3 Modified: head/lib/libc/stdio/open_memstream.3 == --- head/lib/libc/stdio/open_memstream.3Tue Oct 28 01:34:01 2014 (r273759) +++ head/lib/libc/stdio/open_memstream.3Tue Oct 28 02:05:57 2014 (r273760) @@ -25,7 +25,7 @@ .\ .\ $FreeBSD$ .\ -.Dd February 27, 2013 +.Dd October 28, 2014 .Dt OPEN_MEMSTREAM 3 .Os .Sh NAME @@ -37,10 +37,10 @@ .Sh SYNOPSIS .In stdio.h .Ft FILE * -.Fn open_memstream char **bufp size_t **sizep +.Fn open_memstream char **bufp size_t *sizep .In wchar.h .Ft FILE * -.Fn open_wmemstream wchar_t **bufp size_t **sizep +.Fn open_wmemstream wchar_t **bufp size_t *sizep .Sh DESCRIPTION The .Fn open_memstream ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273214 - in head/sys: amd64/vmm/intel modules/vmm
On Oct 27, 2014, at 1:18 PM, John Baldwin j...@freebsd.org wrote: On Monday, October 27, 2014 11:36:41 AM Warner Losh wrote: On Oct 27, 2014, at 10:54 AM, John Baldwin j...@freebsd.org wrote: On Friday, October 17, 2014 01:20:50 PM Warner Losh wrote: Author: imp Date: Fri Oct 17 13:20:49 2014 New Revision: 273214 URL: https://svnweb.freebsd.org/changeset/base/273214 Log: Fix build to not bogusly always rebuild vmm.ko. Rename vmx_assym.s to vmx_assym.h to reflect that file's actual use and update vmx_support.S's include to match. Add vmx_assym.h to the SRCS to that it gets properly added to the dependency list. Add vmx_support.S to SRCS as well, so it gets built and needs fewer special-case goo. Remove now-redundant special-case goo. Finally, vmx_genassym.o doesn't need to depend on a hand expanded ${_ILINKS} explicitly, that's all taken care of by beforedepend. With these items fixed, we no longer build vmm.ko every single time through the modules on a KERNFAST build. So I cheered for this before, but it appears to be broken. :( Namely, I rebuilt world + kernel on my laptop this weekend (it was about a month old). My normal setup builds kernels with NO_KERNELCLEAN=yes. On my next reboot when I started a bhyve VM I promptly got a panic due to a page fault in this assembly code: /* * If 'vmx-eptgen[curcpu]' is not identical to 'pmap-pm_eptgen' * then we must invalidate all mappings associated with this EPTP. */ movqPM_EPTGEN(%r11), %r10 cmpq%r10, VMX_EPTGEN(%rsi, %rax, 8) je guest_restore (The 'cmpq' instruction) This change came to mind, so I blew away the 'vmm' module directory and rebuilt my kernel. Comparing the assembly of this instruction before and after used different values for VMX_EPTGEN. In other words, the NO_KERNELCLEAN=yes build failed to regenerate vmx_assym.h and the build used stale values. Is there a way to force this condition for testing? You could checkout an older tree (probably before the recent merge of AMD SVM support) and build vmm.ko, then svn update and see if vmx_assym and vmx_support.o are updated. Actually, this was simpler: % cd sys/modules/vmm % make depend % make vmx_assym.h # reports nothing to do % touch machine/vmm.h # vmx_genassym.c includes this % make vmx_assym.h # should rebuild, but doesn’t Thanks! In particular, if you examine the generated .depend file, you will find that there are no dependencies recorded for vmx_genassym.o, so it is never rebuilt if any of the headers it includes are changed. In my case the panic happened to be one that was easily diagnosed, but I could imagine stale assym headers causing very odd crashes that would be quite hard to track down. I think these changes should be reverted if we can't fix the dependencies of the associated object files they are generated from. :( Give me a bit and I’ll fix it. There’s a number of implicit dependencies that don’t get recorded in the .depend file, iirc, so that’s not completely conclusive. Not building, though is kinda a big hint that something’s amiss. I think the thing here is that for the assym files we don't record any dependency info at all. The main kernel build does record dependencies for genassym.o in .depend, so it must be doable. True. In kern.pre.mk: GEN_CFILES= $S/$M/$M/genassym.c ${MFILES:T:S/.m$/.c/} and those are then explicitly passed to mkdep in kern.post.mk. So this fixes it: Index: Makefile === --- Makefile (revision 273555) +++ Makefile (working copy) @@ -4,6 +4,7 @@ KMOD= vmm SRCS= opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h SRCS+=vmx_assym.h svm_assym.h +DPSRCS= vmx_genassym.c svm_genassym.c That’s the magic I was looking for... CFLAGS+= -DVMM_KEEP_STATS -DSMP CFLAGS+= -I${.CURDIR}/../../amd64/vmm I'll try to track down all the other assym files and fix them as well. Cool. There’s three more (but I had only fixed two of them, since I didn’t have a i386 build handy). However, -DNO_CLEAN has always been a very-sharp edged tool that will cut you in a number of ways, so there’s no rush to back this out. This is the first time in many years that NO_KERNELCLEAN=yes has been a problem for me. (worlds sometimes have issues, but kernels rarely do). Also, usually when it breaks it fails to compile, it doesn't compile and then panic. :( But it is current… :) Warner signature.asc Description: Message signed with OpenPGP using GPGMail
svn commit: r273761 - head/sys/dev/uart
Author: araujo (ports committer) Date: Tue Oct 28 03:42:09 2014 New Revision: 273761 URL: https://svnweb.freebsd.org/changeset/base/273761 Log: Drop __DECONST as well as few fixes of style(9). Phabric: D1012 Suggested by: mjg, jhb Reviewed by: mjg, jhb Sponsored by: QNAP Systems Inc. Modified: head/sys/dev/uart/uart_subr.c Modified: head/sys/dev/uart/uart_subr.c == --- head/sys/dev/uart/uart_subr.c Tue Oct 28 02:05:57 2014 (r273760) +++ head/sys/dev/uart/uart_subr.c Tue Oct 28 03:42:09 2014 (r273761) @@ -196,7 +196,8 @@ out: int uart_getenv(int devtype, struct uart_devinfo *di, struct uart_class *class) { - const char *cp, *spec; + const char *spec; + char *cp; bus_addr_t addr = ~0U; int error; @@ -213,12 +214,18 @@ uart_getenv(int devtype, struct uart_dev * which UART port is to be used as serial console or debug * port (resp). */ - if (devtype == UART_DEV_CONSOLE) + switch (devtype) { + case UART_DEV_CONSOLE: cp = kern_getenv(hw.uart.console); - else if (devtype == UART_DEV_DBGPORT) + break; + case UART_DEV_DBGPORT: cp = kern_getenv(hw.uart.dbgport); - else + break; + default: cp = NULL; + break; + } + if (cp == NULL) return (ENXIO); @@ -233,7 +240,7 @@ uart_getenv(int devtype, struct uart_dev /* Parse the attributes. */ spec = cp; - while (1) { + for (;;) { switch (uart_parse_tag(spec)) { case UART_TAG_BR: di-baudrate = uart_parse_long(spec); @@ -268,18 +275,18 @@ uart_getenv(int devtype, struct uart_dev di-bas.rclk = uart_parse_long(spec); break; default: - freeenv(__DECONST(char *, cp)); + freeenv(cp); return (EINVAL); } if (*spec == '\0') break; if (*spec != ',') { - freeenv(__DECONST(char *, cp)); + freeenv(cp); return (EINVAL); } spec++; } - freeenv(__DECONST(char *, cp)); + freeenv(cp); /* * If we still have an invalid address, the specification must be ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r273576 - head/sys/dev/uart
Done: https://svnweb.freebsd.org/base?view=revisionrevision=273761 Thank you guys 2014-10-25 0:14 GMT+08:00 John Baldwin j...@freebsd.org: On Friday, October 24, 2014 05:39:32 AM Marcelo Araujo wrote: Author: araujo (ports committer) Date: Fri Oct 24 05:39:32 2014 New Revision: 273576 URL: https://svnweb.freebsd.org/changeset/base/273576 Log: Fix a leaked Storage Variable. Phabric:D981 Submitted by: myself Reported by:Coverity CID:1248848 Reworked by:kevlo Reviewed by:marcel, davide, ray, kevlo Approved by:marcel, kevlo Modified: head/sys/dev/uart/uart_subr.c Modified: head/sys/dev/uart/uart_subr.c == --- head/sys/dev/uart/uart_subr.c Fri Oct 24 04:01:14 2014 (r273575) +++ head/sys/dev/uart/uart_subr.c Fri Oct 24 05:39:32 2014 (r273576) @@ -196,7 +196,7 @@ out: int uart_getenv(int devtype, struct uart_devinfo *di, struct uart_class *class) { - const char *spec; + const char *cp, *spec; Dropping const here is preferable to using __DECONST() for the freeenv() calls. -- John Baldwin -- -- Marcelo Araujo(__)ara...@freebsd.org \\\'',)http://www.FreeBSD.org http://www.freebsd.org/ \/ \ ^ Power To Server. .\. /_) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273762 - head/sys/modules/dtrace/dtraceall
Author: julian Date: Tue Oct 28 04:18:09 2014 New Revision: 273762 URL: https://svnweb.freebsd.org/changeset/base/273762 Log: Allow loading of dtraceall without nfscl if what you really wnat is nfsclient Obtained from:Panzura tree MFC after:1 week Modified: head/sys/modules/dtrace/dtraceall/dtraceall.c Modified: head/sys/modules/dtrace/dtraceall/dtraceall.c == --- head/sys/modules/dtrace/dtraceall/dtraceall.c Tue Oct 28 03:42:09 2014(r273761) +++ head/sys/modules/dtrace/dtraceall/dtraceall.c Tue Oct 28 04:18:09 2014(r273762) @@ -67,7 +67,9 @@ MODULE_DEPEND(dtraceall, cyclic, 1, 1, 1 MODULE_DEPEND(dtraceall, opensolaris, 1, 1, 1); MODULE_DEPEND(dtraceall, dtrace, 1, 1, 1); MODULE_DEPEND(dtraceall, dtmalloc, 1, 1, 1); +#if defined(NFSCLIENT) MODULE_DEPEND(dtraceall, dtnfscl, 1, 1, 1); +#endif #if defined(NFSCLIENT) MODULE_DEPEND(dtraceall, dtnfsclient, 1, 1, 1); #endif ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r273763 - head/sys/kern
Author: mjg Date: Tue Oct 28 04:33:57 2014 New Revision: 273763 URL: https://svnweb.freebsd.org/changeset/base/273763 Log: Change loginclass mutex to an rwlock. While here reduce nesting in loginclass_free. Submitted by: Tiwei Bie btw mail.ustc.edu.cn X-Additional: JuniorJobs project MFC after:2 weeks Modified: head/sys/kern/kern_loginclass.c Modified: head/sys/kern/kern_loginclass.c == --- head/sys/kern/kern_loginclass.c Tue Oct 28 04:18:09 2014 (r273762) +++ head/sys/kern/kern_loginclass.c Tue Oct 28 04:33:57 2014 (r273763) @@ -51,13 +51,13 @@ __FBSDID($FreeBSD$); #include sys/lock.h #include sys/loginclass.h #include sys/malloc.h -#include sys/mutex.h #include sys/types.h #include sys/priv.h #include sys/proc.h #include sys/queue.h #include sys/racct.h #include sys/refcount.h +#include sys/rwlock.h #include sys/sysproto.h #include sys/systm.h @@ -68,8 +68,8 @@ LIST_HEAD(, loginclass) loginclasses; /* * Lock protecting loginclasses list. */ -static struct mtx loginclasses_lock; -MTX_SYSINIT(loginclasses_init, loginclasses_lock, loginclasses lock, MTX_DEF); +static struct rwlock loginclasses_lock; +RW_SYSINIT(loginclasses_init, loginclasses_lock, loginclasses lock); void loginclass_hold(struct loginclass *lc) @@ -87,16 +87,37 @@ loginclass_free(struct loginclass *lc) if (old 1 atomic_cmpset_int(lc-lc_refcount, old, old - 1)) return; - mtx_lock(loginclasses_lock); - if (refcount_release(lc-lc_refcount)) { - racct_destroy(lc-lc_racct); - LIST_REMOVE(lc, lc_next); - mtx_unlock(loginclasses_lock); - free(lc, M_LOGINCLASS); - + rw_wlock(loginclasses_lock); + if (!refcount_release(lc-lc_refcount)) { + rw_wunlock(loginclasses_lock); return; } - mtx_unlock(loginclasses_lock); + + racct_destroy(lc-lc_racct); + LIST_REMOVE(lc, lc_next); + rw_wunlock(loginclasses_lock); + + free(lc, M_LOGINCLASS); +} + +/* + * Look up a loginclass struct for the parameter name. + * loginclasses_lock must be locked. + * Increase refcount on loginclass struct returned. + */ +static struct loginclass * +loginclass_lookup(const char *name) +{ + struct loginclass *lc; + + rw_assert(loginclasses_lock, RA_LOCKED); + LIST_FOREACH(lc, loginclasses, lc_next) + if (strcmp(name, lc-lc_name) == 0) { + loginclass_hold(lc); + break; + } + + return (lc); } /* @@ -109,34 +130,39 @@ loginclass_free(struct loginclass *lc) struct loginclass * loginclass_find(const char *name) { - struct loginclass *lc, *newlc; + struct loginclass *lc, *new_lc; if (name[0] == '\0' || strlen(name) = MAXLOGNAME) return (NULL); - newlc = malloc(sizeof(*newlc), M_LOGINCLASS, M_ZERO | M_WAITOK); - racct_create(newlc-lc_racct); - - mtx_lock(loginclasses_lock); - LIST_FOREACH(lc, loginclasses, lc_next) { - if (strcmp(name, lc-lc_name) != 0) - continue; - - /* Found loginclass with a matching name? */ - loginclass_hold(lc); - mtx_unlock(loginclasses_lock); - racct_destroy(newlc-lc_racct); - free(newlc, M_LOGINCLASS); + rw_rlock(loginclasses_lock); + lc = loginclass_lookup(name); + rw_runlock(loginclasses_lock); + if (lc != NULL) return (lc); - } - /* Add new loginclass. */ - strcpy(newlc-lc_name, name); - refcount_init(newlc-lc_refcount, 1); - LIST_INSERT_HEAD(loginclasses, newlc, lc_next); - mtx_unlock(loginclasses_lock); + new_lc = malloc(sizeof(*new_lc), M_LOGINCLASS, M_ZERO | M_WAITOK); + racct_create(new_lc-lc_racct); + refcount_init(new_lc-lc_refcount, 1); + strcpy(new_lc-lc_name, name); + + rw_wlock(loginclasses_lock); + /* +* There's a chance someone created our loginclass while we +* were in malloc and not holding the lock, so we have to +* make sure we don't insert a duplicate loginclass. +*/ + if ((lc = loginclass_lookup(name)) == NULL) { + LIST_INSERT_HEAD(loginclasses, new_lc, lc_next); + rw_wunlock(loginclasses_lock); + lc = new_lc; + } else { + rw_wunlock(loginclasses_lock); + racct_destroy(new_lc-lc_racct); + free(new_lc, M_LOGINCLASS); + } - return (newlc); + return (lc); } /* @@ -222,8 +248,8 @@ loginclass_racct_foreach(void (*callback { struct loginclass *lc; - mtx_lock(loginclasses_lock); + rw_rlock(loginclasses_lock); LIST_FOREACH(lc, loginclasses, lc_next)
svn commit: r273764 - head/sys/kern
Author: mjg Date: Tue Oct 28 04:59:33 2014 New Revision: 273764 URL: https://svnweb.freebsd.org/changeset/base/273764 Log: Simplify sys_getloginclass. Just use current thread credentials as they have the same accuracy as the ones obtained from proc.. Modified: head/sys/kern/kern_loginclass.c Modified: head/sys/kern/kern_loginclass.c == --- head/sys/kern/kern_loginclass.c Tue Oct 28 04:33:57 2014 (r273763) +++ head/sys/kern/kern_loginclass.c Tue Oct 28 04:59:33 2014 (r273764) @@ -178,24 +178,14 @@ struct getloginclass_args { int sys_getloginclass(struct thread *td, struct getloginclass_args *uap) { - int error = 0; - size_t lcnamelen; - struct proc *p; struct loginclass *lc; + size_t lcnamelen; - p = td-td_proc; - PROC_LOCK(p); - lc = p-p_ucred-cr_loginclass; - loginclass_hold(lc); - PROC_UNLOCK(p); - + lc = td-td_ucred-cr_loginclass; lcnamelen = strlen(lc-lc_name) + 1; if (lcnamelen uap-namelen) - error = ERANGE; - if (error == 0) - error = copyout(lc-lc_name, uap-namebuf, lcnamelen); - loginclass_free(lc); - return (error); + return (ERANGE); + return (copyout(lc-lc_name, uap-namebuf, lcnamelen)); } /* ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org