svn commit: r212588 - in user/imp/tbemd: . contrib/top etc
etc/defaults etc/rc.d share/man/man5
sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/cxgb
sys/dev/fb sys/kern sys/powerpc/powerpc s...
Warner Losh
imp at FreeBSD.org
Tue Sep 14 01:10:30 UTC 2010
Author: imp
Date: Tue Sep 14 01:10:30 2010
New Revision: 212588
URL: http://svn.freebsd.org/changeset/base/212588
Log:
merge from head @r212587
Modified:
user/imp/tbemd/UPDATING
user/imp/tbemd/etc/defaults/rc.conf
user/imp/tbemd/etc/network.subr
user/imp/tbemd/etc/rc.d/ip6addrctl
user/imp/tbemd/etc/rc.d/netif
user/imp/tbemd/share/man/man5/rc.conf.5
user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c
user/imp/tbemd/sys/dev/fb/vesa.c
user/imp/tbemd/sys/kern/kern_malloc.c
user/imp/tbemd/sys/kern/kern_sysctl.c
user/imp/tbemd/sys/kern/subr_lock.c
user/imp/tbemd/sys/kern/subr_sbuf.c
user/imp/tbemd/sys/kern/subr_sleepqueue.c
user/imp/tbemd/sys/kern/subr_witness.c
user/imp/tbemd/sys/powerpc/powerpc/exec_machdep.c
user/imp/tbemd/sys/sys/param.h
user/imp/tbemd/sys/sys/sysctl.h
user/imp/tbemd/sys/vm/uma_core.c
user/imp/tbemd/sys/vm/vm_phys.c
user/imp/tbemd/sys/vm/vm_reserv.c
user/imp/tbemd/usr.sbin/config/config.y
Directory Properties:
user/imp/tbemd/ (props changed)
user/imp/tbemd/cddl/contrib/opensolaris/ (props changed)
user/imp/tbemd/contrib/bind9/ (props changed)
user/imp/tbemd/contrib/ee/ (props changed)
user/imp/tbemd/contrib/expat/ (props changed)
user/imp/tbemd/contrib/file/ (props changed)
user/imp/tbemd/contrib/gdb/ (props changed)
user/imp/tbemd/contrib/gdtoa/ (props changed)
user/imp/tbemd/contrib/gnu-sort/ (props changed)
user/imp/tbemd/contrib/groff/ (props changed)
user/imp/tbemd/contrib/less/ (props changed)
user/imp/tbemd/contrib/libpcap/ (props changed)
user/imp/tbemd/contrib/llvm/ (props changed)
user/imp/tbemd/contrib/llvm/tools/clang/ (props changed)
user/imp/tbemd/contrib/ncurses/ (props changed)
user/imp/tbemd/contrib/netcat/ (props changed)
user/imp/tbemd/contrib/ntp/ (props changed)
user/imp/tbemd/contrib/one-true-awk/ (props changed)
user/imp/tbemd/contrib/openbsm/ (props changed)
user/imp/tbemd/contrib/openpam/ (props changed)
user/imp/tbemd/contrib/pf/ (props changed)
user/imp/tbemd/contrib/sendmail/ (props changed)
user/imp/tbemd/contrib/tcpdump/ (props changed)
user/imp/tbemd/contrib/tcsh/ (props changed)
user/imp/tbemd/contrib/top/ (props changed)
user/imp/tbemd/contrib/top/install-sh (props changed)
user/imp/tbemd/contrib/tzcode/stdtime/ (props changed)
user/imp/tbemd/contrib/tzcode/zic/ (props changed)
user/imp/tbemd/contrib/tzdata/ (props changed)
user/imp/tbemd/contrib/wpa/ (props changed)
user/imp/tbemd/crypto/openssh/ (props changed)
user/imp/tbemd/crypto/openssl/ (props changed)
user/imp/tbemd/lib/libc/ (props changed)
user/imp/tbemd/lib/libc/stdtime/ (props changed)
user/imp/tbemd/lib/libutil/ (props changed)
user/imp/tbemd/lib/libz/ (props changed)
user/imp/tbemd/sbin/ (props changed)
user/imp/tbemd/sbin/ipfw/ (props changed)
user/imp/tbemd/share/zoneinfo/ (props changed)
user/imp/tbemd/sys/ (props changed)
user/imp/tbemd/sys/amd64/include/xen/ (props changed)
user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed)
user/imp/tbemd/sys/contrib/dev/acpica/ (props changed)
user/imp/tbemd/sys/contrib/pf/ (props changed)
user/imp/tbemd/sys/contrib/x86emu/ (props changed)
user/imp/tbemd/sys/dev/xen/xenpci/ (props changed)
user/imp/tbemd/usr.bin/calendar/ (props changed)
user/imp/tbemd/usr.bin/csup/ (props changed)
user/imp/tbemd/usr.bin/procstat/ (props changed)
user/imp/tbemd/usr.sbin/zic/ (props changed)
Modified: user/imp/tbemd/UPDATING
==============================================================================
--- user/imp/tbemd/UPDATING Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/UPDATING Tue Sep 14 01:10:30 2010 (r212588)
@@ -22,6 +22,35 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
machines to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20100913:
+ The $ipv6_prefer variable in rc.conf(5) has been split into
+ $ip6addrctl_policy and $ipv6_activate_all_interfaces.
+
+ The $ip6addrctl_policy is a variable to choose a pre-defined
+ address selection policy set by ip6addrctl(8). A value
+ "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The
+ default is "AUTO".
+
+ The $ipv6_activate_all_interfaces specifies whether IFDISABLED
+ flag (see an entry of 20090926) is set on an interface with no
+ corresponding $ifconfig_IF_ipv6 line. The default is "NO" for
+ security reason. If you want IPv6 link-local address on all
+ interfaces by default, set this to "YES".
+
+ The old ipv6_prefer="YES" is equivalent to
+ ipv6_activate_all_interfaces="YES" and
+ ip6addrctl_policy="ipv6_prefer".
+
+20100913:
+ DTrace has grown support for userland tracing. Due to this, DTrace is
+ now i386 and amd64 only.
+ dtruss(1) is now installed by default on those systems and a new
+ kernel module is needed for userland tracing: fasttrap.
+ No changes to your kernel config file are necessary to enable
+ userland tracing, but you might consider adding 'STRIP=' and
+ 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want
+ to have informative userland stack traces in DTrace (ustack).
+
20100725:
The acpi_aiboost(4) driver has been removed in favor of the new
aibs(4) driver. You should update your kernel configuration file.
Modified: user/imp/tbemd/etc/defaults/rc.conf
==============================================================================
--- user/imp/tbemd/etc/defaults/rc.conf Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/etc/defaults/rc.conf Tue Sep 14 01:10:30 2010 (r212588)
@@ -210,8 +210,6 @@ cloned_interfaces="" # List of cloned n
ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry.
#ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry.
-#ifconfig_ed0_ipv6="RTADV" # Sample IPv6 entry for RA/rtsol(8)
-#ifconfig_ed0_ipv6="inet6 auto_linklocal" # To configure only link-local
#ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" # Sample IPv6 addr entry
#ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" # Sample IPv6 alias
#ifconfig_fxp0_name="net0" # Change interface name from fxp0 to net0.
@@ -446,9 +444,12 @@ ubthidhci_enable="NO" # Switch an USB B
icmp_bmcastecho="NO" # respond to broadcast ping packets
### IPv6 options: ###
-ipv6_network_interfaces="AUTO" # List of IPv6 network interfaces
-ipv6_prefer="YES" # Use IPv6 when both IPv4 and IPv6 can be used
-ipv6_privacy="NO" # Use privacy addresses with RTADV (RFC 4193)
+ipv6_network_interfaces="auto" # List of IPv6 network interfaces
+ # (or "auto" or "none").
+ipv6_activate_all_interfaces="NO" # If NO, interfaces which have no
+ # corresponding $ifconfig_IF_ipv6 is
+ # marked as IFDISABLED for security
+ # reason.
ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO).
#ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068)
ipv6_static_routes="" # Set to static route list (or leave empty).
@@ -456,6 +457,8 @@ ipv6_static_routes="" # Set to static r
# route toward loopback interface.
#ipv6_route_xxx="fec0:0000:0000:0006:: -prefixlen 64 ::1"
ipv6_gateway_enable="NO" # Set to YES if this host will be a gateway.
+ipv6_privacy="NO" # Use privacy address on RA-receiving IFs
+ # (RFC 4193)
route6d_enable="NO" # Set to YES to enable an IPv6 routing daemon.
route6d_program="/usr/sbin/route6d" # Name of IPv6 routing daemon.
@@ -507,6 +510,8 @@ ipv6_ipfilter_rules="/etc/ipf6.rules" #
# for examples
ip6addrctl_enable="YES" # Set to YES to enable default address selection
ip6addrctl_verbose="NO" # Set to YES to enable verbose configuration messages
+ip6addrctl_policy="AUTO" # A pre-defined address selection policy
+ # (ipv4_prefer, ipv6_prefer, or AUTO)
##############################################################
### System console options #################################
Modified: user/imp/tbemd/etc/network.subr
==============================================================================
--- user/imp/tbemd/etc/network.subr Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/etc/network.subr Tue Sep 14 01:10:30 2010 (r212588)
@@ -96,32 +96,44 @@ ifconfig_up()
# inet6 specific
if afexists inet6; then
if ipv6if $1; then
- # Implicitly handles ipv6_gateway_enable
- _ipv6_opts='-ifdisabled -accept_rtadv'
-
- if ipv6_autoconfif $1; then
- _ipv6_opts='-ifdisabled accept_rtadv'
- fi
-
- ifconfig $1 inet6 $_ipv6_opts
-
- # ifconfig_IF_ipv6
- ifconfig_args=`ifconfig_getargs $1 ipv6`
-
- if [ -n "$ifconfig_args" ]; then
- ifconfig $1 $ifconfig_args
- _cfg=0
+ if checkyesno ipv6_gateway_enable; then
+ _ipv6_opts="-accept_rtadv"
fi
else
- # Remove in FreeBSD 10.x
- # Explicit test is necessary here to avoid nonexistence error
- case "$ipv6_enable" in
+ if checkyesno ipv6_activate_all_interfaces; then
+ _ipv6_opts="-ifdisabled"
+ else
+ _ipv6_opts="ifdisabled"
+ fi
+
+ # backward compatibility: $ipv6_enable
+ case $ipv6_enable in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
- warn "Interface $1 will NOT be configured for IPv6"
+ _ipv6_opts="${_ipv6_opts} accept_rtadv"
;;
esac
+ fi
- ifconfig $1 inet6 ifdisabled
+ if [ -n "${_ipv6_opts}" ]; then
+ ifconfig $1 inet6 ${_ipv6_opts}
+ fi
+
+ # ifconfig_IF_ipv6
+ ifconfig_args=`ifconfig_getargs $1 ipv6`
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig $1 inet6 -ifdisabled
+ ifconfig $1 ${ifconfig_args}
+ _cfg=0
+ fi
+
+ # backward compatiblity: $ipv6_ifconfig_IF
+ ifconfig_args=`get_if_var $1 ipv6_ifconfig_IF`
+ if [ -n "${ifconfig_args}" ]; then
+ warn "\$ipv6_ifconfig_$1 is obsolete." \
+ " Use ifconfig_$1_ipv6 instead."
+ ifconfig $1 inet6 -ifdisabled
+ ifconfig $1 inet6 ${ifconfig_args}
+ _cfg=0
fi
fi
@@ -207,7 +219,7 @@ get_if_var()
# outside this file.
_ifconfig_getargs()
{
- local _ifn _af value
+ local _ifn _af
_ifn=$1
_af=${2+_$2}
@@ -215,18 +227,7 @@ _ifconfig_getargs()
return 1
fi
- value=`get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT"`
-
- # Remove in FreeBSD 10.x
- if [ "$_af" = _ipv6 -a -z "$value" ]; then
- value=`get_if_var $_ifn ipv6_ifconfig_IF "$ifconfig_DEFAULT"`
- if [ -n "$value" ]; then
- warn "\$ipv6_ifconfig_$1 is obsolete." \
- " Use ifconfig_$1_ipv6 instead."
- fi
- fi
-
- echo $value
+ get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT"
}
# ifconfig_getargs if [af]
@@ -248,8 +249,6 @@ ifconfig_getargs()
[Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;;
[Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;;
[Ww][Pp][Aa]) ;;
- [Rr][Tt][Aa][Dd][Vv]) ;;
- [Nn][Oo][Rr][Tt][Aa][Dd][Vv]) ;;
*)
_args="$_args $_arg"
;;
@@ -373,48 +372,68 @@ afexists()
esac
}
+# noafif if
+# Returns 0 if the interface has no af configuration and 1 otherwise.
+noafif()
+{
+ local _if
+ _if=$1
+
+ case $_if in
+ pflog[0-9]*|\
+ pfsync[0-9]*|\
+ an[0-9]*|\
+ ath[0-9]*|\
+ ipw[0-9]*|\
+ ipfw[0-9]*|\
+ iwi[0-9]*|\
+ iwn[0-9]*|\
+ ral[0-9]*|\
+ wi[0-9]*|\
+ wl[0-9]*|\
+ wpi[0-9]*)
+ return 0
+ ;;
+ esac
+
+ return 1
+}
+
# ipv6if if
# Returns 0 if the interface should be configured for IPv6 and
# 1 otherwise.
ipv6if()
{
+ local _if _tmpargs i
+ _if=$1
+
if ! afexists inet6; then
return 1
fi
# lo0 is always IPv6-enabled
- case $1 in
+ case $_if in
lo0)
return 0
;;
esac
- local _if _tmpargs i
- _if=$1
-
- case "$ipv6_network_interfaces" in
- ''|[Nn][Oo][Nn][Ee])
- return 1
- ;;
+ case "${ipv6_network_interfaces}" in
$_if|"$_if "*|*" $_if"|*" $_if "*|[Aa][Uu][Tt][Oo])
# True if $ifconfig_IF_ipv6 is defined.
_tmpargs=`_ifconfig_getargs $_if ipv6`
- # Also true if ipv6_prefix_IF is defined
- [ -n "$_tmpargs" ] || _tmpargs=`get_if_var $_if ipv6_prefix_IF`
+ if [ -n "${_tmpargs}" ]; then
+ return 0
+ fi
+
+ # backward compatibility: True if $ipv6_ifconfig_IF is defined.
+ _tmpargs=`get_if_var $_if ipv6_ifconfig_IF`
+ if [ -n "${_tmpargs}" ]; then
+ return 0
+ fi
;;
esac
- if [ -n "$_tmpargs" ]; then
- # Remove in FreeBSD 10.x
- # Explicit test is necessary here to avoid nonexistence error
- case "$ipv6_enable" in
- [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
- ;;
- *) return 0
- ;;
- esac
- fi
-
return 1
}
@@ -423,21 +442,21 @@ ipv6if()
# Stateless Address Configuration, 1 otherwise.
ipv6_autoconfif()
{
- case $1 in
+ local _if _tmpargs _arg
+ _if=$1
+
+ case $_if in
lo0|\
stf[0-9]*|\
faith[0-9]*|\
lp[0-9]*|\
- sl[0-9]*|\
- pflog[0-9]*|\
- pfsync[0-9]*)
+ sl[0-9]*)
return 1
;;
esac
-
- local _if _tmpargs _arg
- _if=$1
-
+ if noafif $_if; then
+ return 1
+ fi
if ! ipv6if $_if; then
return 1
fi
@@ -448,23 +467,31 @@ ipv6_autoconfif()
if [ -n "${_tmpargs}" ]; then
return 1
fi
- if ! is_wired_interface $_if; then
- case $_if in
- wlan[0-9]*) ;; # Allow test to continue
- *) return 1
+ # backward compatibility: $ipv6_enable
+ case $ipv6_enable in
+ [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
+ return 0
+ ;;
+ esac
+
+ _tmpargs=`_ifconfig_getargs $_if ipv6`
+ for _arg in $_tmpargs; do
+ case $_arg in
+ accept_rtadv)
+ return 0
;;
esac
- fi
+ done
- _tmpargs=`_ifconfig_getargs $_if ipv6`
- case "$_tmpargs" in
- *inet6\ *|*[Nn][Oo][Rr][Tt][Aa][Dd][Vv]*|*-accept_rtadv*)
- return 1
- ;;
- *[Rr][Tt][Aa][Dd][Vv]*|*accept_rtadv*)
- return 0
- ;;
- esac
+ # backward compatibility: $ipv6_ifconfig_IF
+ _tmpargs=`get_if_var $_if ipv6_ifconfig_IF`
+ for _arg in $_tmpargs; do
+ case $_arg in
+ accept_rtadv)
+ return 0
+ ;;
+ esac
+ done
return 1
}
Modified: user/imp/tbemd/etc/rc.d/ip6addrctl
==============================================================================
--- user/imp/tbemd/etc/rc.d/ip6addrctl Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/etc/rc.d/ip6addrctl Tue Sep 14 01:10:30 2010 (r212588)
@@ -19,6 +19,10 @@ extra_commands="status prefer_ipv6 prefe
status_cmd="ip6addrctl"
prefer_ipv6_cmd="ip6addrctl_prefer_ipv6"
prefer_ipv4_cmd="ip6addrctl_prefer_ipv4"
+config_file="/etc/ip6addrctl.conf"
+
+set_rcvar_obsolete ipv6_enable ipv6_activate_all_interfaces
+set_rcvar_obsolete ipv6_prefer ip6addrctl_policy
ip6addrctl_prefer_ipv6()
{
@@ -51,17 +55,40 @@ ip6addrctl_start()
afexists inet6 || return 0
# install the policy of the address selection algorithm.
- if [ -f /etc/ip6addrctl.conf ]; then
- ip6addrctl flush >/dev/null 2>&1
- ip6addrctl install /etc/ip6addrctl.conf
- checkyesno ip6addrctl_verbose && ip6addrctl
- else
- if checkyesno ipv6_prefer; then
- ip6addrctl_prefer_ipv6
+ case "${ip6addrctl_policy}" in
+ [Aa][Uu][Tt][Oo])
+ if [ -r "${config_file}" -a -s "${config_file}" ]; then
+ ip6addrctl flush >/dev/null 2>&1
+ ip6addrctl install "${config_file}"
+ checkyesno ip6addrctl_verbose && ip6addrctl
else
- ip6addrctl_prefer_ipv4
+ if checkyesno ipv6_activate_all_interfaces; then
+ ip6addrctl_prefer_ipv6
+ else
+ ip6addrctl_prefer_ipv4
+ fi
fi
- fi
+ ;;
+ ipv4_prefer)
+ ip6addrctl_prefer_ipv4
+ ;;
+ ipv6_prefer)
+ ip6addrctl_prefer_ipv6
+ ;;
+ [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
+ # Backward compatibility when ipv6_prefer=YES
+ ip6addrctl_prefer_ipv6
+ ;;
+ [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
+ # Backward compatibility when ipv6_prefer=NO
+ ip6addrctl_prefer_ipv4
+ ;;
+ *)
+ warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \
+ " \"ipv4_prefer\" is used instead."
+ ip6addrctl_prefer_ipv4
+ ;;
+ esac
}
ip6addrctl_stop()
Modified: user/imp/tbemd/etc/rc.d/netif
==============================================================================
--- user/imp/tbemd/etc/rc.d/netif Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/etc/rc.d/netif Tue Sep 14 01:10:30 2010 (r212588)
@@ -34,7 +34,6 @@
. /etc/network.subr
name="network"
-start_precmd="network_prestart"
start_cmd="network_start"
stop_cmd="network_stop"
cloneup_cmd="clone_up"
@@ -42,13 +41,8 @@ clonedown_cmd="clone_down"
extra_commands="cloneup clonedown"
cmdifn=
-network_prestart()
-{
- if [ -n "$ipv6_enable" ]; then
- warn 'The ipv6_enable option is deprecated.'
- warn 'See rc.conf(5) for information on disabling IPv6.'
- fi
-}
+set_rcvar_obsolete ipv6_enable ipv6_activate_all_interfaces
+set_rcvar_obsolete ipv6_prefer
network_start()
{
Modified: user/imp/tbemd/share/man/man5/rc.conf.5
==============================================================================
--- user/imp/tbemd/share/man/man5/rc.conf.5 Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/share/man/man5/rc.conf.5 Tue Sep 14 01:10:30 2010 (r212588)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 4, 2010
+.Dd September 13, 2010
.Dt RC.CONF 5
.Os
.Sh NAME
@@ -1261,105 +1261,95 @@ It is also possible to rename an interfa
ifconfig_ed0_name="net0"
ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00"
.Ed
-.\" Remove in FreeBSD 10.x
.It Va ipv6_enable
.Pq Vt bool
-.Pp
-This option is deprecated.
-.Pp
-If the variable is
-.Dq Li YES
-it has no effect.
-To configure IPv6 for an interface see
-.Va ipv6_network_interfaces
-below.
-.Pp
If the variable is
-.Dq Li NO
-then other than
-.Dq Li lo0
-IPv6 will be disabled for each interface,
-however the same effect can be achieved by
-not configuring the interface.
-.It Va ipv6_network_interfaces
-.Pq Vt str
-This is the IPv6 equivalent of
-.Va network_interfaces .
-Normally configuration of this variable is not needed,
-the value should be left as
-.Dq Li AUTO .
-.Pp
-If
-.Dq Li INET6
-is configured in the kernel configuration for the
-.Dq Li lo0
-interface will always be performed.
-It is not necessary to list it in
-.Va ipv6_network_interfaces .
-.Pp
-Example configuration to accept Router Advertisements (RA) for the
-.Dq Li ed0
-interface:
-.Bd -literal
-ifconfig_ed0_ipv6="RTADV"
-.Ed
-.Pp
-To configure only a link-local address on the
-.Dq Li ed0
-interface:
-.Bd -literal
-ifconfig_ed0_ipv6="inet6 auto_linklocal"
-.Ed
-.Pp
-To disable RA the
-.Dq Li NORTADV
-option is available, although not required if manual
-configuration is performed as described below.
-.Pp
-An IPv6 interface can be configured manually with
-.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 .
-For example:
-.Bd -literal
-ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64"
-.Ed
-.Pp
-Manual configuration of an IPv6 address will also
-require configuration of the
-.Va ipv6_defaultrouter
-option.
-.Pp
-Aliases should be set by
-.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n
-with the
-.Dq Li inet6
-keyword.
-For example:
-.Pp
-.Bd -literal
-ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64"
-.Ed
+.Dq Li YES ,
+.Dq Li inet6 accept_rtadv
+is added to all of
+.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6
+and the
+.Va ipv6_activate_all_interfaces
+is defined as
+.Dq Li YES .
.Pp
+This variable is deprecated. Use
+.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6
+and
+.Va ipv6_activate_all_interfaces
+if necessary.
.It Va ipv6_prefer
.Pq Vt bool
If the variable is
.Dq Li YES ,
-the default policy of the source address selection set by
+the default address selection policy table set by
.Xr ip6addrctl 8
will be IPv6-preferred.
.Pp
If the variable is
.Dq Li NO ,
-the default policy of the source address selection set by
+the default address selection policy table set by
.Xr ip6addrctl 8
will be IPv4-preferred.
.Pp
+This variable is deprecated. Use
+.Va ip6addtctl_policy
+instead.
+.It Va ipv6_activate_all_interfaces
+If the variable is
+.Dq Li NO ,
+all of interfaces which do not have the corrsponding
+.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6
+variable will be marked as
+.Dq Li IFDISABLED
+for security reason. This means only IPv6 functionality on that interface
+is completely disabled. For more details of
+.Dq Li IFDISABLED
+flag and keywords
+.Dq Li inet6 ifdisabled ,
+see
+.Xr ifconfig 8 .
+.Pp
+Default is
+.Dq Li NO .
.It Va ipv6_privacy
.Pq Vt bool
If the variable is
.Dq Li YES
privacy addresses will be generated for each IPv6
interface as described in RFC 4193.
+.It Va ipv6_network_interfaces
+.Pq Vt str
+This is the IPv6 equivalent of
+.Va network_interfaces .
+Normally manual configuration of this variable is not needed.
+.Pp
+.It Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6
+.Pq Vt str
+IPv6 functionality on an interface should be configured by
+.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 ,
+instead of setting ifconfig parameters in
+.Va ifconfig_ Ns Aq Ar interface .
+Aliases should be set by
+.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n
+with
+.Dq Li inet6
+keyword. For example:
+.Bd -literal
+ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64"
+ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64"
+.Ed
.Pp
+Interfaces that have an
+.Dq Li inet6 accept_rtadv
+keyword in
+.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6
+setting will be automatically configured by
+.Xr rtsol 8 .
+Note that this automatic configuration is disabled if the
+.Va ipv6_gateway_enable
+is set to
+.Dq Li YES .
.It Va ipv6_prefix_ Ns Aq Ar interface
.Pq Vt str
If one or more prefixes are defined in
@@ -1374,22 +1364,52 @@ this is the default output interface for
This works only with ipv6_gateway_enable="NO".
.It Va ip6addrctl_enable
.Pq Vt bool
-If set to
-.Dq Li YES ,
-install default address selection policy table
+This variable is to enable configuring default address selection policy table
.Pq RFC 3484 .
-If a file
+The table can be specified in another variable
+.Va ip6addrctl_policy .
+For
+.Va ip6addrctl_policy
+the following keywords can be specified:
+.Dq Li ipv4_prefer ,
+.Dq Li ipv6_prefer ,
+or
+.Dq Li AUTO .
+.Pp
+If
+.Dq Li ipv4_prefer
+or
+.Dq Li ipv6_prefer
+is specified,
+.Xr ip6addrctl 8
+installs a pre-defined policy table described in Section 2.1
+.Pq IPv6-preferred
+or 10.3
+.Pq IPv4-preferred
+of RFC 3484.
+.Pp
+If
+.Dq Li AUTO
+is specified, it attempts to read a file
.Pa /etc/ip6addrctl.conf
-is found the
+first. If this file is found,
.Xr ip6addrctl 8
-reads and installs it.
-If not, a pre-defined policy table will be installed.
-There are two pre-defined ones; IPv4-preferred and IPv6-preferred.
-If set
-.Va ipv6_prefer
-variable to
+reads and installs it. If not found, a policy is automatically set
+according to
+.Va ipv6_activate_all_interfaces
+variable; if the variable is set to
.Dq Li YES
-the IPv6-preferred one is used. Default is IPv4-preferred.
+the IPv6-preferred one is used. Otherwise IPv4-preferred.
+.Pp
+The default value of
+.Va ip6addrctl_enable
+and
+.Va ip6addrctl_policy
+are
+.Dq Li YES
+and
+.Dq Li AUTO ,
+respectively.
.It Va cloned_interfaces
.Pq Vt str
Set to the list of clonable network interfaces to create on this host.
Modified: user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Sep 14 01:10:30 2010 (r212588)
@@ -326,9 +326,7 @@ page_lookup(vnode_t *vp, int64_t start,
if (vm_page_sleep_if_busy(pp, FALSE, "zfsmwb"))
continue;
vm_page_busy(pp);
- vm_page_lock_queues();
vm_page_undirty(pp);
- vm_page_unlock_queues();
} else {
if (__predict_false(obj->cache != NULL)) {
vm_page_cache_free(obj, OFF_TO_IDX(start),
Modified: user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c Tue Sep 14 01:10:30 2010 (r212588)
@@ -3227,6 +3227,7 @@ t3_dump_rspq(SYSCTL_HANDLER_ARGS)
struct sge_rspq *rspq;
struct sge_qset *qs;
int i, err, dump_end, idx;
+ static int multiplier = 1;
struct sbuf *sb;
struct rsp_desc *rspd;
uint32_t data[4];
@@ -3251,8 +3252,8 @@ t3_dump_rspq(SYSCTL_HANDLER_ARGS)
err = t3_sge_read_rspq(qs->port->adapter, rspq->cntxt_id, data);
if (err)
return (err);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, QDUMP_SBUF_SIZE, req);
+retry_sbufops:
+ sb = sbuf_new(NULL, NULL, QDUMP_SBUF_SIZE*multiplier, SBUF_FIXEDLEN);
sbuf_printf(sb, " \n index=%u size=%u MSI-X/RspQ=%u intr enable=%u intr armed=%u\n",
(data[0] & 0xffff), data[0] >> 16, ((data[2] >> 20) & 0x3f),
@@ -3275,11 +3276,13 @@ t3_dump_rspq(SYSCTL_HANDLER_ARGS)
rspd->rss_hdr.rss_hash_val, be32toh(rspd->flags),
be32toh(rspd->len_cq), rspd->intr_gen);
}
-
- err = sbuf_finish(sb);
- /* Output a trailing NUL. */
- if (err == 0)
- err = SYSCTL_OUT(req, "", 1);
+ if (sbuf_error(sb) != 0) {
+ sbuf_delete(sb);
+ multiplier++;
+ goto retry_sbufops;
+ }
+ sbuf_finish(sb);
+ err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return (err);
}
@@ -3290,6 +3293,7 @@ t3_dump_txq_eth(SYSCTL_HANDLER_ARGS)
struct sge_txq *txq;
struct sge_qset *qs;
int i, j, err, dump_end;
+ static int multiplier = 1;
struct sbuf *sb;
struct tx_desc *txd;
uint32_t *WR, wr_hi, wr_lo, gen;
@@ -3317,7 +3321,9 @@ t3_dump_txq_eth(SYSCTL_HANDLER_ARGS)
if (err)
return (err);
- sb = sbuf_new_for_sysctl(NULL, NULL, QDUMP_SBUF_SIZE, req);
+
+retry_sbufops:
+ sb = sbuf_new(NULL, NULL, QDUMP_SBUF_SIZE*multiplier, SBUF_FIXEDLEN);
sbuf_printf(sb, " \n credits=%u GTS=%u index=%u size=%u rspq#=%u cmdq#=%u\n",
(data[0] & 0x7fff), ((data[0] >> 15) & 1), (data[0] >> 16),
@@ -3344,10 +3350,13 @@ t3_dump_txq_eth(SYSCTL_HANDLER_ARGS)
WR[j], WR[j + 1], WR[j + 2], WR[j + 3]);
}
- err = sbuf_finish(sb);
- /* Output a trailing NUL. */
- if (err == 0)
- err = SYSCTL_OUT(req, "", 1);
+ if (sbuf_error(sb) != 0) {
+ sbuf_delete(sb);
+ multiplier++;
+ goto retry_sbufops;
+ }
+ sbuf_finish(sb);
+ err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return (err);
}
@@ -3358,6 +3367,7 @@ t3_dump_txq_ctrl(SYSCTL_HANDLER_ARGS)
struct sge_txq *txq;
struct sge_qset *qs;
int i, j, err, dump_end;
+ static int multiplier = 1;
struct sbuf *sb;
struct tx_desc *txd;
uint32_t *WR, wr_hi, wr_lo, gen;
@@ -3381,7 +3391,8 @@ t3_dump_txq_ctrl(SYSCTL_HANDLER_ARGS)
return (EINVAL);
}
- sb = sbuf_new_for_sysctl(NULL, NULL, QDUMP_SBUF_SIZE, req);
+retry_sbufops:
+ sb = sbuf_new(NULL, NULL, QDUMP_SBUF_SIZE*multiplier, SBUF_FIXEDLEN);
sbuf_printf(sb, " qid=%d start=%d -> end=%d\n", qs->idx,
txq->txq_dump_start,
(txq->txq_dump_start + txq->txq_dump_count) & 255);
@@ -3401,10 +3412,13 @@ t3_dump_txq_ctrl(SYSCTL_HANDLER_ARGS)
WR[j], WR[j + 1], WR[j + 2], WR[j + 3]);
}
- err = sbuf_finish(sb);
- /* Output a trailing NUL. */
- if (err == 0)
- err = SYSCTL_OUT(req, "", 1);
+ if (sbuf_error(sb) != 0) {
+ sbuf_delete(sb);
+ multiplier++;
+ goto retry_sbufops;
+ }
+ sbuf_finish(sb);
+ err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return (err);
}
Modified: user/imp/tbemd/sys/dev/fb/vesa.c
==============================================================================
--- user/imp/tbemd/sys/dev/fb/vesa.c Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/sys/dev/fb/vesa.c Tue Sep 14 01:10:30 2010 (r212588)
@@ -804,18 +804,16 @@ vesa_bios_init(void)
vbios = x86bios_get_orm(vesa_bios_offs);
if (vbios != NULL) {
vesa_bios_size = vbios[2] * 512;
- offs = BIOS_SADDRTOLADDR(vesa_bios_int10);
- if (offs > vesa_bios_offs &&
- offs < vesa_bios_offs + vesa_bios_size) {
+ if (((VESA_BIOS_OFFSET << 12) & 0xffff0000) ==
+ (vesa_bios_int10 & 0xffff0000) &&
+ vesa_bios_size > (vesa_bios_int10 & 0xffff)) {
vesa_bios = x86bios_alloc(&vesa_bios_offs,
vesa_bios_size, M_WAITOK);
memcpy(vesa_bios, vbios, vesa_bios_size);
- offs = offs - VESA_BIOS_OFFSET + vesa_bios_offs;
- offs = (X86BIOS_PHYSTOSEG(offs) << 16) +
- X86BIOS_PHYSTOOFF(offs);
+ offs = ((vesa_bios_offs << 12) & 0xffff0000) +
+ (vesa_bios_int10 & 0xffff);
x86bios_set_intr(0x10, offs);
- } else
- offs = vesa_bios_int10;
+ }
}
if (vesa_bios == NULL)
printf("VESA: failed to shadow video ROM\n");
Modified: user/imp/tbemd/sys/kern/kern_malloc.c
==============================================================================
--- user/imp/tbemd/sys/kern/kern_malloc.c Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/sys/kern/kern_malloc.c Tue Sep 14 01:10:30 2010 (r212588)
@@ -828,11 +828,25 @@ sysctl_kern_malloc_stats(SYSCTL_HANDLER_
struct malloc_type_internal *mtip;
struct malloc_type_header mth;
struct malloc_type *mtp;
- int error, i;
+ int buflen, count, error, i;
struct sbuf sbuf;
+ char *buffer;
- sbuf_new_for_sysctl(&sbuf, NULL, 128, req);
mtx_lock(&malloc_mtx);
+restart:
+ mtx_assert(&malloc_mtx, MA_OWNED);
+ count = kmemcount;
+ mtx_unlock(&malloc_mtx);
+ buflen = sizeof(mtsh) + count * (sizeof(mth) +
+ sizeof(struct malloc_type_stats) * MAXCPU) + 1;
+ buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO);
+ mtx_lock(&malloc_mtx);
+ if (count < kmemcount) {
+ free(buffer, M_TEMP);
+ goto restart;
+ }
+
+ sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN);
/*
* Insert stream header.
@@ -841,7 +855,11 @@ sysctl_kern_malloc_stats(SYSCTL_HANDLER_
mtsh.mtsh_version = MALLOC_TYPE_STREAM_VERSION;
mtsh.mtsh_maxcpus = MAXCPU;
mtsh.mtsh_count = kmemcount;
- (void)sbuf_bcat(&sbuf, &mtsh, sizeof(mtsh));
+ if (sbuf_bcat(&sbuf, &mtsh, sizeof(mtsh)) < 0) {
+ mtx_unlock(&malloc_mtx);
+ error = ENOMEM;
+ goto out;
+ }
/*
* Insert alternating sequence of type headers and type statistics.
@@ -854,19 +872,30 @@ sysctl_kern_malloc_stats(SYSCTL_HANDLER_
*/
bzero(&mth, sizeof(mth));
strlcpy(mth.mth_name, mtp->ks_shortdesc, MALLOC_MAX_NAME);
- (void)sbuf_bcat(&sbuf, &mth, sizeof(mth));
+ if (sbuf_bcat(&sbuf, &mth, sizeof(mth)) < 0) {
+ mtx_unlock(&malloc_mtx);
+ error = ENOMEM;
+ goto out;
+ }
/*
* Insert type statistics for each CPU.
*/
for (i = 0; i < MAXCPU; i++) {
- (void)sbuf_bcat(&sbuf, &mtip->mti_stats[i],
- sizeof(mtip->mti_stats[i]));
+ if (sbuf_bcat(&sbuf, &mtip->mti_stats[i],
+ sizeof(mtip->mti_stats[i])) < 0) {
+ mtx_unlock(&malloc_mtx);
+ error = ENOMEM;
+ goto out;
+ }
}
}
mtx_unlock(&malloc_mtx);
- error = sbuf_finish(&sbuf);
+ sbuf_finish(&sbuf);
+ error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf));
+out:
sbuf_delete(&sbuf);
+ free(buffer, M_TEMP);
return (error);
}
@@ -976,19 +1005,26 @@ DB_SHOW_COMMAND(multizone_matches, db_sh
static int
sysctl_kern_mprof(SYSCTL_HANDLER_ARGS)
{
+ int linesize = 64;
struct sbuf sbuf;
uint64_t count;
uint64_t waste;
uint64_t mem;
+ int bufsize;
int error;
+ char *buf;
int rsize;
int size;
int i;
+ bufsize = linesize * (KMEM_ZSIZE + 1);
+ bufsize += 128; /* For the stats line */
+ bufsize += 128; /* For the banner line */
waste = 0;
mem = 0;
- sbuf_new_for_sysctl(&sbuf, NULL, 128, req);
+ buf = malloc(bufsize, M_TEMP, M_WAITOK|M_ZERO);
+ sbuf_new(&sbuf, buf, bufsize, SBUF_FIXEDLEN);
sbuf_printf(&sbuf,
"\n Size Requests Real Size\n");
for (i = 0; i < KMEM_ZSIZE; i++) {
@@ -1006,8 +1042,12 @@ sysctl_kern_mprof(SYSCTL_HANDLER_ARGS)
sbuf_printf(&sbuf,
"\nTotal memory used:\t%30llu\nTotal Memory wasted:\t%30llu\n",
(unsigned long long)mem, (unsigned long long)waste);
- error = sbuf_finish(&sbuf);
+ sbuf_finish(&sbuf);
+
+ error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf));
+
sbuf_delete(&sbuf);
+ free(buf, M_TEMP);
return (error);
}
Modified: user/imp/tbemd/sys/kern/kern_sysctl.c
==============================================================================
--- user/imp/tbemd/sys/kern/kern_sysctl.c Tue Sep 14 00:32:29 2010 (r212587)
+++ user/imp/tbemd/sys/kern/kern_sysctl.c Tue Sep 14 01:10:30 2010 (r212588)
@@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
#include <sys/jail.h>
#include <sys/lock.h>
#include <sys/mutex.h>
-#include <sys/sbuf.h>
#include <sys/sx.h>
#include <sys/sysproto.h>
#include <sys/uio.h>
@@ -1545,30 +1544,3 @@ userland_sysctl(struct thread *td, int *
}
return (error);
}
-
-/*
- * Drain into a sysctl struct. The user buffer must be wired.
- */
-static int
-sbuf_sysctl_drain(void *arg, const char *data, int len)
-{
- struct sysctl_req *req = arg;
- int error;
-
- error = SYSCTL_OUT(req, data, len);
- KASSERT(error >= 0, ("Got unexpected negative value %d", error));
- return (error == 0 ? len : -error);
-}
-
-struct sbuf *
-sbuf_new_for_sysctl(struct sbuf *s, char *buf, int length,
- struct sysctl_req *req)
-{
-
- /* Wire the user buffer, so we can write without blocking. */
- sysctl_wire_old_buffer(req, 0);
-
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list