PERFORCE change 141483 for review
John Birrell
jb at FreeBSD.org
Sun May 11 22:47:55 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=141483
Change 141483 by jb at freebsd3 on 2008/05/11 22:46:54
IFC
Affected files ...
.. //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#19 integrate
.. //depot/projects/dtrace/ports/MOVED#84 integrate
.. //depot/projects/dtrace/src/ObsoleteFiles.inc#44 integrate
.. //depot/projects/dtrace/src/contrib/netcat/nc.1#7 integrate
.. //depot/projects/dtrace/src/contrib/netcat/netcat.c#6 integrate
.. //depot/projects/dtrace/src/kerberos5/lib/libkrb5/Makefile#5 integrate
.. //depot/projects/dtrace/src/lib/libc/stdio/fdopen.c#6 integrate
.. //depot/projects/dtrace/src/lib/libthr/arch/mips/include/pthread_md.h#1 branch
.. //depot/projects/dtrace/src/lib/libthr/arch/mips/mips/pthread_md.c#1 branch
.. //depot/projects/dtrace/src/release/pc98/fixit_crunch.conf#5 integrate
.. //depot/projects/dtrace/src/share/man/man4/snd_hda.4#8 integrate
.. //depot/projects/dtrace/src/share/man/man9/vm_map_find.9#4 integrate
.. //depot/projects/dtrace/src/sys/amd64/amd64/pmap.c#43 integrate
.. //depot/projects/dtrace/src/sys/conf/kern.mk#11 integrate
.. //depot/projects/dtrace/src/sys/dev/if_ndis/if_ndis.c#16 integrate
.. //depot/projects/dtrace/src/sys/dev/if_ndis/if_ndisvar.h#8 integrate
.. //depot/projects/dtrace/src/sys/dev/ipw/if_ipw.c#13 integrate
.. //depot/projects/dtrace/src/sys/dev/ral/rt2560.c#14 integrate
.. //depot/projects/dtrace/src/sys/dev/ral/rt2661.c#13 integrate
.. //depot/projects/dtrace/src/sys/dev/wi/if_wi.c#12 integrate
.. //depot/projects/dtrace/src/sys/i386/i386/pmap.c#39 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_malloc.c#10 integrate
.. //depot/projects/dtrace/src/sys/vm/memguard.c#4 integrate
.. //depot/projects/dtrace/src/sys/vm/vm_extern.h#5 integrate
.. //depot/projects/dtrace/src/sys/vm/vm_init.c#6 integrate
.. //depot/projects/dtrace/src/sys/vm/vm_kern.c#13 integrate
.. //depot/projects/dtrace/src/sys/vm/vm_map.c#18 integrate
.. //depot/projects/dtrace/src/sys/vm/vm_map.h#8 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/config.c#4 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/label.c#5 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/main.c#5 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/sade.h#4 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/system.c#4 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/termcap.c#5 integrate
.. //depot/projects/dtrace/src/usr.sbin/sade/variable.c#5 integrate
.. //depot/projects/dtrace/src/usr.sbin/sysinstall/config.c#9 integrate
.. //depot/projects/dtrace/src/usr.sbin/sysinstall/label.c#5 integrate
.. //depot/projects/dtrace/src/usr.sbin/sysinstall/main.c#8 integrate
.. //depot/projects/dtrace/src/usr.sbin/sysinstall/sysinstall.h#9 integrate
.. //depot/projects/dtrace/src/usr.sbin/sysinstall/system.c#6 integrate
.. //depot/projects/dtrace/src/usr.sbin/sysinstall/variable.c#5 integrate
.. //depot/projects/dtrace/www/share/sgml/events.xml#26 integrate
Differences ...
==== //depot/projects/dtrace/doc/en_US.ISO8859-1/articles/committers-guide/article.sgml#19 (text+ko) ====
@@ -13,7 +13,7 @@
</author>
</authorgroup>
- <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/committers-guide/article.sgml,v 1.273 2008/04/27 12:01:34 gabor Exp $</pubdate>
+ <pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/committers-guide/article.sgml,v 1.274 2008/05/11 19:24:40 pav Exp $</pubdate>
<copyright>
<year>1999</year>
@@ -2692,11 +2692,9 @@
<para>File a PR in <application>GNATS</application>, listing the
reasons for the repository copy request. Assign it to
<literal>portmgr</literal> and set <varname>state</varname> to
- <literal>repocopy</literal>. If &a.portmgr; approves it,
- it will be reassigned to <literal>pcvs</literal>.
- If so inclined, <literal>portmgr</literal> may do
- the copy directly; otherwise, &a.pcvs; will
- do a repository copy from the old to the new location, and
+ <literal>repocopy</literal>. In a few days,
+ <literal>portmgr</literal> will do
+ a repository copy from the old to the new location, and
reassign the PR back to you. Once everything is done, perform the
following:</para>
==== //depot/projects/dtrace/ports/MOVED#84 (text+ko) ====
@@ -1,7 +1,7 @@
#
# MOVED - a list of (recently) moved or removed ports
#
-# $FreeBSD: ports/MOVED,v 1.1591 2008/05/07 22:57:52 edwin Exp $
+# $FreeBSD: ports/MOVED,v 1.1592 2008/05/11 07:52:17 rafan Exp $
#
# Each entry consists of a single line containing the following four
# fields in the order named, separated with the pipe (`|') character:
@@ -3472,3 +3472,4 @@
www/neon|www/neon26|2008-05-05|Moved to be able to integrate www/neon26
ports-mgmt/instant-tinderbox||2008-05-07|No longer functional in the current infrastructure
x11-toolkits/gtkdatabox|x11-toolkits/gtkdatabox2|2008-05-08|This old version has been superseeded by x11-toolkits/gtkdatabox2
+devel/swigruby||2008-05-11|Has expired: use devel/swig13 instead, last release was 8 years ago
==== //depot/projects/dtrace/src/ObsoleteFiles.inc#44 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.137 2008/04/20 16:03:19 antoine Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.138 2008/05/10 18:43:22 antoine Exp $
#
# This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
# directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,11 @@
# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
#
+# 20080420: Symbol card support dropped
+OLD_FILES+=usr/include/dev/wi/spectrum24t_cf.h
+# 20080420: awi removal
+OLD_FILES+=usr/share/man/man4/awi.4.gz
+OLD_FILES+=usr/share/man/man4/if_awi.4.gz
# 20080331: pkg_sign has been removed
OLD_FILES+=usr/sbin/pkg_check
OLD_FILES+=usr/sbin/pkg_sign
@@ -35,6 +40,10 @@
OLD_FILES+=usr/share/man/man2/kse_switchin.2.gz
OLD_FILES+=usr/share/man/man2/kse_thr_interrupt.2.gz
OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz
+.if ${TARGET_ARCH} == "amd64"
+OLD_FILES+=usr/lib32/libkse.so
+OLD_LIBS+=usr/lib32/libkse.so.3
+.endif
# 20080220: geom_lvm rename to geom_linux_lvm
OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz
# 20080126: oldcard.4 removal
==== //depot/projects/dtrace/src/contrib/netcat/nc.1#7 (text+ko) ====
@@ -25,7 +25,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/contrib/netcat/nc.1,v 1.9 2008/04/21 18:31:50 delphij Exp $
+.\" $FreeBSD: src/contrib/netcat/nc.1,v 1.10 2008/05/10 18:50:45 antoine Exp $
.\"
.Dd $Mdocdate$
.Dt NC 1
@@ -36,7 +36,7 @@
.Sh SYNOPSIS
.Nm nc
.Bk -words
-.Op Fl 46DEdhklnoOrStUuvz
+.Op Fl 46DdEhklnOorStUuvz
.Op Fl e Ar IPsec_policy
.Op Fl i Ar interval
.Op Fl P Ar proxy_username
@@ -100,10 +100,6 @@
Enable debugging on the socket.
.It Fl d
Do not attempt to read from stdin.
-.It Fl h
-Prints out
-.Nm
-help.
.It Fl E
Shortcut for
.Qo
@@ -118,6 +114,10 @@
.Xr ipsec_set_policy 3 .
This flag can be specified up to two times, as typically one policy for
each direction is needed.
+.It Fl h
+Prints out
+.Nm
+help.
.It Fl i Ar interval
Specifies a delay time interval between lines of text sent and received.
Also causes a delay time between connections to multiple ports.
@@ -146,7 +146,10 @@
.It Fl n
Do not do any DNS or service lookups on any specified addresses,
hostnames or ports.
-.\"
+.It Fl O
+Disables the use of TCP options on the socket, by setting the boolean
+TCP_NOOPT
+socket option.
.It Fl o
.Dq Once-only mode .
By default,
@@ -156,10 +159,6 @@
Specifying
.Fl o
will make it terminate on EOF as well.
-.It Fl o
-Disables the use of TCP options on the socket, by setting the boolean
-TCP_NOOPT
-socket option.
.It Fl P Ar proxy_username
Specifies a username to present to a proxy server that requires authentication.
If no username is specified then authentication will not be attempted.
==== //depot/projects/dtrace/src/contrib/netcat/netcat.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/contrib/netcat/netcat.c,v 1.7 2008/04/01 13:54:24 bms Exp $
+ * $FreeBSD: src/contrib/netcat/netcat.c,v 1.8 2008/05/10 18:50:45 antoine Exp $
*/
/*
@@ -868,21 +868,22 @@
usage(0);
fprintf(stderr, "\tCommand Summary:\n\
\t-4 Use IPv4\n\
- \t-6 Use IPv6\n");
+ \t-6 Use IPv6\n\
+ \t-D Enable the debug socket option\n\
+ \t-d Detach from stdin\n");
#ifdef IPSEC
fprintf(stderr, "\
- \t-e policy Use specified IPsec policy\n\
- \t-E Use IPsec ESP\n");
+ \t-E Use IPsec ESP\n\
+ \t-e policy Use specified IPsec policy\n");
#endif
fprintf(stderr, "\
- \t-D Enable the debug socket option\n\
- \t-d Detach from stdin\n\
\t-h This help text\n\
\t-i secs\t Delay interval for lines sent, ports scanned\n\
\t-k Keep inbound sockets open for multiple connects\n\
\t-l Listen mode, for inbound connects\n\
\t-n Suppress name/port resolutions\n\
\t-O Disable TCP options\n\
+ \t-o Terminate on EOF on input\n\
\t-P proxyuser\tUsername for proxy authentication\n\
\t-p port\t Specify local port for remote connects\n\
\t-r Randomize remote ports\n\
@@ -930,9 +931,9 @@
usage(int ret)
{
#ifdef IPSEC
- fprintf(stderr, "usage: nc [-46DEdhklnorStUuvz] [-e policy] [-i interval] [-P proxy_username] [-p source_port]\n");
+ fprintf(stderr, "usage: nc [-46DdEhklnOorStUuvz] [-e policy] [-i interval] [-P proxy_username] [-p source_port]\n");
#else
- fprintf(stderr, "usage: nc [-46DdhklnorStUuvz] [-i interval] [-P proxy_username] [-p source_port]\n");
+ fprintf(stderr, "usage: nc [-46DdhklnOorStUuvz] [-i interval] [-P proxy_username] [-p source_port]\n");
#endif
fprintf(stderr, "\t [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]\n");
fprintf(stderr, "\t [-x proxy_address[:port]] [hostname] [port[s]]\n");
==== //depot/projects/dtrace/src/kerberos5/lib/libkrb5/Makefile#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/kerberos5/lib/libkrb5/Makefile,v 1.18 2008/05/07 13:53:05 dfr Exp $
+# $FreeBSD: src/kerberos5/lib/libkrb5/Makefile,v 1.20 2008/05/11 10:32:37 dfr Exp $
LIB= krb5
VERSION_MAP= ${KRB5DIR}/lib/krb5/version-script.map
@@ -128,10 +128,6 @@
krb5_auth_context.3 krb5_auth_setkeytype.3 \
krb5_auth_context.3 krb5_auth_setlocalseqnumber.3 \
krb5_auth_context.3 krb5_auth_setremoteseqnumber.3 \
- krb5_build_principal.3 krb5_build_principal_ext.3 \
- krb5_build_principal.3 krb5_build_principal_va.3 \
- krb5_build_principal.3 krb5_build_principal_va_ext.3 \
- krb5_build_principal.3 krb5_make_principal.3 \
krb5_ccache.3 krb5_cc_close.3 \
krb5_ccache.3 krb5_cc_copy_cache.3 \
krb5_ccache.3 krb5_cc_cursor.3 \
@@ -217,12 +213,39 @@
krb5_openlog.3 krb5_log_msg.3 \
krb5_openlog.3 krb5_vlog.3 \
krb5_openlog.3 krb5_vlog_msg.3 \
- krb5_principal_get_realm.3 krb5_principal_get_comp_string.3 \
+ krb5_principal.3 krb5_get_default_principal.3 \
+ krb5_principal.3 krb5_build_principal.3 \
+ krb5_principal.3 krb5_build_principal_ext.3 \
+ krb5_principal.3 krb5_build_principal_va.3 \
+ krb5_principal.3 krb5_build_principal_va_ext.3 \
+ krb5_principal.3 krb5_copy_principal.3 \
+ krb5_principal.3 krb5_free_principal.3 \
+ krb5_principal.3 krb5_make_principal.3 \
+ krb5_principal.3 krb5_parse_name.3 \
+ krb5_principal.3 krb5_parse_name_flags.3 \
+ krb5_principal.3 krb5_parse_nametype.3 \
+ krb5_principal.3 krb5_princ_realm.3 \
+ krb5_principal.3 krb5_princ_set_realm.3 \
+ krb5_principal.3 krb5_principal_compare.3 \
+ krb5_principal.3 krb5_principal_compare_any_realm.3 \
+ krb5_principal.3 krb5_principal_get_comp_string.3 \
+ krb5_principal.3 krb5_principal_get_realm.3 \
+ krb5_principal.3 krb5_principal_get_type.3 \
+ krb5_principal.3 krb5_principal_match.3 \
+ krb5_principal.3 krb5_principal_set_type.3 \
+ krb5_principal.3 krb5_realm_compare.3 \
+ krb5_principal.3 krb5_sname_to_principal.3 \
+ krb5_principal.3 krb5_sock_to_principal.3 \
+ krb5_principal.3 krb5_unparse_name.3 \
+ krb5_principal.3 krb5_unparse_name_flags.3 \
+ krb5_principal.3 krb5_unparse_name_fixed.3 \
+ krb5_principal.3 krb5_unparse_name_fixed_flags.3 \
+ krb5_principal.3 krb5_unparse_name_fixed_short.3 \
+ krb5_principal.3 krb5_unparse_name_short.3 \
krb5_set_default_realm.3 krb5_free_host_realm.3 \
krb5_set_default_realm.3 krb5_get_default_realm.3 \
krb5_set_default_realm.3 krb5_get_default_realms.3 \
krb5_set_default_realm.3 krb5_get_host_realm.3 \
- krb5_sname_to_principal.3 krb5_sock_to_principal.3 \
krb5_timeofday.3 krb5_us_timeofday.3 \
krb5_verify_user.3 krb5_verify_opt_init.3 \
krb5_verify_user.3 krb5_verify_opt_set_flags.3 \
==== //depot/projects/dtrace/src/lib/libc/stdio/fdopen.c#6 (text+ko) ====
@@ -34,7 +34,7 @@
static char sccsid[] = "@(#)fdopen.c 8.1 (Berkeley) 6/4/93";
#endif /* LIBC_SCCS and not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/stdio/fdopen.c,v 1.10 2008/02/27 21:25:19 jhb Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/stdio/fdopen.c,v 1.11 2008/05/10 18:39:20 antoine Exp $");
#include "namespace.h"
#include <sys/types.h>
@@ -52,12 +52,8 @@
const char *mode;
{
FILE *fp;
- static int nofile;
int flags, oflags, fdflags, tmp;
- if (nofile == 0)
- nofile = getdtablesize();
-
/*
* File descriptors are a full int, but _file is only a short.
* If we get a valid file descriptor that is greater than
==== //depot/projects/dtrace/src/release/pc98/fixit_crunch.conf#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/release/pc98/fixit_crunch.conf,v 1.15 2007/05/22 11:32:55 nyan Exp $
+# $FreeBSD: src/release/pc98/fixit_crunch.conf,v 1.16 2008/05/11 14:25:24 nyan Exp $
buildopts -DRELEASE_CRUNCH
@@ -9,6 +9,7 @@
progs dd
progs df
progs echo
+progs ed
progs expr
progs kill
progs ln
@@ -39,9 +40,6 @@
srcdirs /usr/src/usr.bin
progs ftp
progs telnet
-progs vi
-ln vi view
-ln vi ex
srcdirs /usr/src/usr.sbin
progs chown
==== //depot/projects/dtrace/src/share/man/man4/snd_hda.4#8 (text+ko) ====
@@ -22,9 +22,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/snd_hda.4,v 1.13 2008/01/04 12:57:06 gabor Exp $
+.\" $FreeBSD: src/share/man/man4/snd_hda.4,v 1.14 2008/05/11 06:40:04 joel Exp $
.\"
-.Dd July 14, 2007
+.Dd May 11, 2008
.Dt SND_HDA 4
.Os
.Sh NAME
@@ -160,6 +160,10 @@
.It
nVidia MCP65B
.It
+nVidia MCP67A
+.It
+nVidia MCP67B
+.It
SiS 966
.It
VIA VT8251/8237A
@@ -175,6 +179,8 @@
.It
Analog Devices AD1983
.It
+Analog Devices AD1984
+.It
Analog Devices AD1986A
.It
Analog Devices AD1988
@@ -209,6 +215,8 @@
.It
Realtek ALC888
.It
+Sigmatel STAC9205
+.It
Sigmatel STAC9220
.It
Sigmatel STAC9220D/9223D
==== //depot/projects/dtrace/src/share/man/man9/vm_map_find.9#4 (text+ko) ====
@@ -23,9 +23,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/vm_map_find.9,v 1.4 2005/06/28 20:15:18 hmp Exp $
+.\" $FreeBSD: src/share/man/man9/vm_map_find.9,v 1.5 2008/05/10 18:55:35 alc Exp $
.\"
-.Dd July 19, 2003
+.Dd May 10, 2008
.Dt VM_MAP_FIND 9
.Os
.Sh NAME
@@ -38,7 +38,7 @@
.Ft int
.Fo vm_map_find
.Fa "vm_map_t map" "vm_object_t object" "vm_ooffset_t offset"
-.Fa "vm_offset_t *addr" "vm_size_t length" "boolean_t find_space"
+.Fa "vm_offset_t *addr" "vm_size_t length" "int find_space"
.Fa "vm_prot_t prot" "vm_prot_t max" "int cow"
.Fc
.Sh DESCRIPTION
@@ -70,11 +70,25 @@
.Pp
If
.Fa find_space
-is
-.Dv TRUE ,
+is either
+.Dv VMFS_ALIGNED_SPACE
+or
+.Dv VMFS_ANY_SPACE ,
the function will call
.Xr vm_map_findspace 9
to discover a free region.
+Moreover, if
+.Fa find_space
+is
+.Dv VMFS_ALIGNED_SPACE ,
+the address of the free region will be optimized for the use of superpages.
+Otherwise, if
+.Fa find_space
+is
+.Dv VMFS_NO_SPACE ,
+.Xr vm_map_insert 9
+is called with the given address,
+.Fa addr .
.Sh IMPLEMENTATION NOTES
This function acquires a lock on
.Fa map
@@ -90,9 +104,14 @@
.Fn vm_map_find
function returns
.Dv KERN_SUCCESS
-if space for the mapping could be found and
-the mapping was successfully created.
-If space could not be found in the map,
+if the mapping was successfully created.
+If space could not be found or
+.Fa find_space
+was
+.Dv VMFS_NO_SPACE
+and the given address,
+.Fa addr ,
+was already mapped,
.Dv KERN_NO_SPACE
will be returned.
If the discovered range turned out to be bogus,
==== //depot/projects/dtrace/src/sys/amd64/amd64/pmap.c#43 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.616 2008/05/09 16:48:06 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.617 2008/05/11 20:33:46 alc Exp $");
/*
* Manages physical address maps.
@@ -4480,11 +4480,12 @@
{
vm_offset_t superpage_offset;
+ if (size < NBPDR)
+ return;
if (object != NULL && (object->flags & OBJ_COLORED) != 0)
offset += ptoa(object->pg_color);
superpage_offset = offset & PDRMASK;
- if (size < superpage_offset ||
- size - superpage_offset < NBPDR ||
+ if (size - ((NBPDR - superpage_offset) & PDRMASK) < NBPDR ||
(*addr & PDRMASK) == superpage_offset)
return;
if ((*addr & PDRMASK) < superpage_offset)
==== //depot/projects/dtrace/src/sys/conf/kern.mk#11 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.mk,v 1.53 2008/04/29 11:28:10 gonzo Exp $
+# $FreeBSD: src/sys/conf/kern.mk,v 1.54 2008/05/10 20:46:07 ache Exp $
#
# Warning flags for compiling the kernel and components of the kernel.
@@ -70,7 +70,7 @@
#
.if ${MACHINE_ARCH} == "amd64"
CFLAGS+= -mcmodel=kernel -mno-red-zone \
- -mfpmath=387 -mno-sse -mno-sse2 -mno-mmx -mno-3dnow \
+ -mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow \
-msoft-float -fno-asynchronous-unwind-tables
INLINE_LIMIT?= 8000
.endif
==== //depot/projects/dtrace/src/sys/dev/if_ndis/if_ndis.c#16 (text+ko) ====
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.136 2008/05/01 05:11:33 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.138 2008/05/10 20:12:43 thompsa Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -164,11 +164,14 @@
static void ndis_watchdog (struct ifnet *);
static int ndis_ifmedia_upd (struct ifnet *);
static void ndis_ifmedia_sts (struct ifnet *, struct ifmediareq *);
+static void ndis_auth (void *, int);
+static void ndis_assoc (void *, int);
static int ndis_get_assoc (struct ndis_softc *, ndis_wlan_bssid_ex **);
static int ndis_probe_offload (struct ndis_softc *);
static int ndis_set_offload (struct ndis_softc *);
static void ndis_getstate_80211 (struct ndis_softc *);
static void ndis_setstate_80211 (struct ndis_softc *);
+static void ndis_auth_and_assoc (struct ndis_softc *, struct ieee80211vap *);
static int ndis_set_cipher (struct ndis_softc *, int);
static int ndis_set_wpa (struct ndis_softc *, void *, int);
static int ndis_add_key (struct ieee80211vap *,
@@ -714,6 +717,8 @@
taskqueue_start_threads(&sc->ndis_tq, 1, PI_NET, "%s taskq",
device_get_nameunit(dev));
TASK_INIT(&sc->ndis_scantask, 0, ndis_scan, sc);
+ TASK_INIT(&sc->ndis_authtask, 0, ndis_auth, sc);
+ TASK_INIT(&sc->ndis_assoctask, 0, ndis_assoc, sc);
ifp->if_ioctl = ndis_ioctl_80211;
ic->ic_ifp = ifp;
@@ -1003,8 +1008,11 @@
} else
NDIS_UNLOCK(sc);
- if (sc->ndis_80211)
+ if (sc->ndis_80211) {
taskqueue_drain(sc->ndis_tq, &sc->ndis_scantask);
+ taskqueue_drain(sc->ndis_tq, &sc->ndis_authtask);
+ taskqueue_drain(sc->ndis_tq, &sc->ndis_assoctask);
+ }
if (sc->ndis_tickitem != NULL)
IoFreeWorkItem(sc->ndis_tickitem);
@@ -1960,6 +1968,10 @@
/* Setup task offload. */
ndis_set_offload(sc);
+
+ if (sc->ndis_80211)
+ ndis_setstate_80211(sc);
+
NDIS_LOCK(sc);
sc->ndis_txidx = 0;
@@ -2200,20 +2212,14 @@
struct ndis_softc *sc;
{
struct ieee80211com *ic;
- struct ieee80211vap *vap;
- struct ieee80211_node *ni;
- ndis_80211_ssid ssid;
ndis_80211_macaddr bssid;
ndis_80211_config config;
- ndis_80211_wep wep;
- int i, rval = 0, len, error;
+ int rval = 0, len;
uint32_t arg;
struct ifnet *ifp;
ifp = sc->ifp;
ic = ifp->if_l2com;
- vap = TAILQ_FIRST(&ic->ic_vaps);
- ni = vap->iv_bss;
if (!NDIS_INITIALIZED(sc)) {
DPRINTF(("%s: NDIS not initialized\n", __func__));
@@ -2229,7 +2235,7 @@
/* Set network infrastructure mode. */
len = sizeof(arg);
- if (vap->iv_opmode == IEEE80211_M_IBSS)
+ if (ic->ic_opmode == IEEE80211_M_IBSS)
arg = NDIS_80211_NET_INFRA_IBSS;
else
arg = NDIS_80211_NET_INFRA_BSS;
@@ -2239,18 +2245,6 @@
if (rval)
device_printf (sc->ndis_dev, "set infra failed: %d\n", rval);
- /* Set RTS threshold */
-
- len = sizeof(arg);
- arg = vap->iv_rtsthreshold;
- ndis_set_info(sc, OID_802_11_RTS_THRESHOLD, &arg, &len);
-
- /* Set fragmentation threshold */
-
- len = sizeof(arg);
- arg = vap->iv_fragthreshold;
- ndis_set_info(sc, OID_802_11_FRAGMENTATION_THRESHOLD, &arg, &len);
-
/* Set power management */
len = sizeof(arg);
@@ -2281,6 +2275,134 @@
arg = NDIS_80211_PRIVFILT_8021XWEP;
ndis_set_info(sc, OID_802_11_PRIVACY_FILTER, &arg, &len);
+ len = sizeof(config);
+ bzero((char *)&config, len);
+ config.nc_length = len;
+ config.nc_fhconfig.ncf_length = sizeof(ndis_80211_config_fh);
+ rval = ndis_get_info(sc, OID_802_11_CONFIGURATION, &config, &len);
+
+ /*
+ * Some drivers expect us to initialize these values, so
+ * provide some defaults.
+ */
+
+ if (config.nc_beaconperiod == 0)
+ config.nc_beaconperiod = 100;
+ if (config.nc_atimwin == 0)
+ config.nc_atimwin = 100;
+ if (config.nc_fhconfig.ncf_dwelltime == 0)
+ config.nc_fhconfig.ncf_dwelltime = 200;
+ if (rval == 0 && ic->ic_bsschan != IEEE80211_CHAN_ANYC) {
+ int chan, chanflag;
+
+ chan = ieee80211_chan2ieee(ic, ic->ic_bsschan);
+ chanflag = config.nc_dsconfig > 2500000 ? IEEE80211_CHAN_2GHZ :
+ IEEE80211_CHAN_5GHZ;
+ if (chan != ieee80211_mhz2ieee(config.nc_dsconfig / 1000, 0)) {
+ config.nc_dsconfig =
+ ic->ic_bsschan->ic_freq * 1000;
+ len = sizeof(config);
+ config.nc_length = len;
+ config.nc_fhconfig.ncf_length =
+ sizeof(ndis_80211_config_fh);
+ DPRINTF(("Setting channel to %ukHz\n", config.nc_dsconfig));
+ rval = ndis_set_info(sc, OID_802_11_CONFIGURATION,
+ &config, &len);
+ if (rval)
+ device_printf(sc->ndis_dev, "couldn't change "
+ "DS config to %ukHz: %d\n",
+ config.nc_dsconfig, rval);
+ }
+ } else if (rval)
+ device_printf(sc->ndis_dev, "couldn't retrieve "
+ "channel info: %d\n", rval);
+
+ /* Set the BSSID to our value so the driver doesn't associate */
+ len = IEEE80211_ADDR_LEN;
+ bcopy(ic->ic_myaddr, bssid, len);
+ DPRINTF(("Setting BSSID to %6D\n", (uint8_t *)&bssid, ":"));
+ rval = ndis_set_info(sc, OID_802_11_BSSID, &bssid, &len);
+ if (rval)
+ device_printf(sc->ndis_dev,
+ "setting BSSID failed: %d\n", rval);
+
+}
+
+static void
+ndis_auth(void *arg, int npending)
+{
+ struct ndis_softc *sc = arg;
+ struct ifnet *ifp = sc->ifp;
+ struct ieee80211com *ic = ifp->if_l2com;
+ struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
+
+ vap->iv_state = IEEE80211_S_AUTH;
+ ndis_auth_and_assoc(sc, vap);
+}
+
+static void
+ndis_assoc(void *arg, int npending)
+{
+ struct ndis_softc *sc = arg;
+ struct ifnet *ifp = sc->ifp;
+ struct ieee80211com *ic = ifp->if_l2com;
+ struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
+
+ vap->iv_state = IEEE80211_S_ASSOC;
+ ndis_auth_and_assoc(sc, vap);
+}
+
+static void
+ndis_auth_and_assoc(sc, vap)
+ struct ndis_softc *sc;
+ struct ieee80211vap *vap;
+{
+ struct ieee80211com *ic;
+ struct ieee80211_node *ni;
+ ndis_80211_ssid ssid;
+ ndis_80211_macaddr bssid;
+ ndis_80211_wep wep;
+ int i, rval = 0, len, error;
+ uint32_t arg;
+ struct ifnet *ifp;
+
+ ifp = sc->ifp;
+ ic = ifp->if_l2com;
+ ni = vap->iv_bss;
+
+ if (!NDIS_INITIALIZED(sc)) {
+ DPRINTF(("%s: NDIS not initialized\n", __func__));
+ return;
+ }
+
+ /* Initial setup */
+ ndis_setstate_80211(sc);
+
+ /* Set network infrastructure mode. */
+
+ len = sizeof(arg);
+ if (vap->iv_opmode == IEEE80211_M_IBSS)
+ arg = NDIS_80211_NET_INFRA_IBSS;
+ else
+ arg = NDIS_80211_NET_INFRA_BSS;
+
+ rval = ndis_set_info(sc, OID_802_11_INFRASTRUCTURE_MODE, &arg, &len);
+
+ if (rval)
+ device_printf (sc->ndis_dev, "set infra failed: %d\n", rval);
+
+ /* Set RTS threshold */
+
+ len = sizeof(arg);
+ arg = vap->iv_rtsthreshold;
+ ndis_set_info(sc, OID_802_11_RTS_THRESHOLD, &arg, &len);
+
+ /* Set fragmentation threshold */
+
+ len = sizeof(arg);
+ arg = vap->iv_fragthreshold;
+ ndis_set_info(sc, OID_802_11_FRAGMENTATION_THRESHOLD, &arg, &len);
+
/* Set WEP */
if (vap->iv_flags & IEEE80211_F_PRIVACY &&
@@ -2394,50 +2516,7 @@
}
#endif
- len = sizeof(config);
- bzero((char *)&config, len);
- config.nc_length = len;
- config.nc_fhconfig.ncf_length = sizeof(ndis_80211_config_fh);
- rval = ndis_get_info(sc, OID_802_11_CONFIGURATION, &config, &len);
-
/*
- * Some drivers expect us to initialize these values, so
- * provide some defaults.
- */
-
- if (config.nc_beaconperiod == 0)
- config.nc_beaconperiod = 100;
- if (config.nc_atimwin == 0)
- config.nc_atimwin = 100;
- if (config.nc_fhconfig.ncf_dwelltime == 0)
- config.nc_fhconfig.ncf_dwelltime = 200;
- if (rval == 0 && ic->ic_bsschan != IEEE80211_CHAN_ANYC) {
- int chan, chanflag;
-
- chan = ieee80211_chan2ieee(ic, ic->ic_bsschan);
- chanflag = config.nc_dsconfig > 2500000 ? IEEE80211_CHAN_2GHZ :
- IEEE80211_CHAN_5GHZ;
- if (chan != ieee80211_mhz2ieee(config.nc_dsconfig / 1000, 0)) {
- config.nc_dsconfig =
- ic->ic_bsschan->ic_freq * 1000;
- ni->ni_chan = ic->ic_bsschan;
- len = sizeof(config);
- config.nc_length = len;
- config.nc_fhconfig.ncf_length =
- sizeof(ndis_80211_config_fh);
- DPRINTF(("Setting channel to %ukHz\n", config.nc_dsconfig));
- rval = ndis_set_info(sc, OID_802_11_CONFIGURATION,
- &config, &len);
- if (rval)
- device_printf(sc->ndis_dev, "couldn't change "
- "DS config to %ukHz: %d\n",
- config.nc_dsconfig, rval);
- }
- } else if (rval)
- device_printf(sc->ndis_dev, "couldn't retrieve "
- "channel info: %d\n", rval);
-
- /*
* If the user selected a specific BSSID, try
* to use that one. This is useful in the case where
* there are several APs in range with the same network
@@ -2783,10 +2862,8 @@
case SIOCSIFFLAGS:
/*NDIS_LOCK(sc);*/
if (ifp->if_flags & IFF_UP) {
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
ndis_init(sc);
- ieee80211_start_all(ic);
- }
} else {
if (ifp->if_drv_flags & IFF_DRV_RUNNING)
ndis_stop(sc);
@@ -3131,16 +3208,15 @@
case IEEE80211_S_INIT:
case IEEE80211_S_SCAN:
return nvp->newstate(vap, nstate, arg);
-
case IEEE80211_S_ASSOC:
- if (ostate != IEEE80211_S_AUTH)
- ndis_setstate_80211(sc);
+ if (ostate != IEEE80211_S_AUTH) {
+ taskqueue_enqueue(sc->ndis_tq, &sc->ndis_assoctask);
+ return EINPROGRESS;
+ }
break;
-
case IEEE80211_S_AUTH:
- ndis_setstate_80211(sc);
- break;
-
+ taskqueue_enqueue(sc->ndis_tq, &sc->ndis_authtask);
+ return EINPROGRESS;
default:
break;
}
@@ -3208,6 +3284,7 @@
ndis_wlan_bssid_ex *wb;
struct ieee80211_scanparams sp;
struct ieee80211_frame wh;
+ struct ieee80211_channel *saved_chan;
int i, j;
int error, len, rssi, noise, freq, chanflag;
static long rstamp;
@@ -3217,6 +3294,7 @@
ic = sc->ifp->if_l2com;
vap = TAILQ_FIRST(&ic->ic_vaps);
+ saved_chan = ic->ic_curchan;
noise = -96;
len = sizeof(uint32_t) + (sizeof(ndis_wlan_bssid_ex) * 16);
@@ -3277,6 +3355,10 @@
chanflag = ndis_nettype_chan(wb->nwbx_nettype);
freq = wb->nwbx_config.nc_dsconfig / 1000;
sp.chan = sp.bchan = ieee80211_mhz2ieee(freq, chanflag);
+ /* Hack ic->ic_curchan to be in sync with the scan result */
+ ic->ic_curchan = ieee80211_find_channel(ic, freq, chanflag);
+ if (ic->ic_curchan == NULL)
+ ic->ic_curchan = &ic->ic_channels[0];
/* Process extended info from AP */
if (wb->nwbx_len > sizeof(ndis_wlan_bssid)) {
@@ -3311,6 +3393,8 @@
wb = (ndis_wlan_bssid_ex *)((char *)wb + wb->nwbx_len);
}
free(bl, M_DEVBUF);
+ /* Restore the channel after messing with it */
+ ic->ic_curchan = saved_chan;
}
static void
==== //depot/projects/dtrace/src/sys/dev/if_ndis/if_ndisvar.h#8 (text+ko) ====
@@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/if_ndis/if_ndisvar.h,v 1.30 2008/04/20 20:35:36 sam Exp $
+ * $FreeBSD: src/sys/dev/if_ndis/if_ndisvar.h,v 1.31 2008/05/10 20:12:43 thompsa Exp $
*/
#define NDIS_DEFAULT_NODENAME "FreeBSD NDIS node"
@@ -177,6 +177,8 @@
struct taskqueue *ndis_tq; /* private task queue */
struct task ndis_scantask;
+ struct task ndis_authtask;
+ struct task ndis_assoctask;
int (*ndis_newstate)(struct ieee80211com *,
enum ieee80211_state, int);
};
==== //depot/projects/dtrace/src/sys/dev/ipw/if_ipw.c#13 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.36 2008/05/01 04:54:59 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.37 2008/05/10 20:25:58 thompsa Exp $ */
/*-
* Copyright (c) 2004-2006
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.36 2008/05/01 04:54:59 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ipw/if_ipw.c,v 1.37 2008/05/10 20:25:58 thompsa Exp $");
/*-
* Intel(R) PRO/Wireless 2100 MiniPCI driver
@@ -2404,7 +2404,8 @@
ipw_init_locked(sc);
IPW_UNLOCK(sc);
- ieee80211_start_all(ic);
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ ieee80211_start_all(ic); /* start all vap's */
}
static void
==== //depot/projects/dtrace/src/sys/dev/ral/rt2560.c#14 (text) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/ral/rt2560.c,v 1.21 2008/05/01 04:55:00 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/ral/rt2560.c,v 1.23 2008/05/11 22:11:01 sam Exp $ */
/*-
* Copyright (c) 2005, 2006
@@ -18,7 +18,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ral/rt2560.c,v 1.21 2008/05/01 04:55:00 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ral/rt2560.c,v 1.23 2008/05/11 22:11:01 sam Exp $");
/*-
* Ralink Technology RT2560 chipset driver
@@ -1654,7 +1654,7 @@
ackrate = ieee80211_ack_rate(sc->sc_rates, rate);
isshort = (ic->ic_flags & IEEE80211_F_SHPREAMBLE) != 0;
- dur = ieee80211_compute_duration(sc->sc_rates, pktlen, rate, isshort);
+ dur = ieee80211_compute_duration(sc->sc_rates, pktlen, rate, isshort)
+ ieee80211_ack_duration(sc->sc_rates, rate, isshort);
flags = RT2560_TX_MORE_FRAG;
if (prot == IEEE80211_PROT_RTSCTS) {
@@ -2726,7 +2726,8 @@
rt2560_init_locked(sc);
RAL_UNLOCK(sc);
- ieee80211_start_all(ic);
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ ieee80211_start_all(ic); /* start all vap's */
}
static void
==== //depot/projects/dtrace/src/sys/dev/ral/rt2661.c#13 (text) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/dev/ral/rt2661.c,v 1.21 2008/05/01 04:55:00 thompsa Exp $ */
+/* $FreeBSD: src/sys/dev/ral/rt2661.c,v 1.23 2008/05/11 22:11:01 sam Exp $ */
/*-
* Copyright (c) 2006
@@ -18,7 +18,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ral/rt2661.c,v 1.21 2008/05/01 04:55:00 thompsa Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ral/rt2661.c,v 1.23 2008/05/11 22:11:01 sam Exp $");
/*-
* Ralink Technology RT2561, RT2561S and RT2661 chipset driver
@@ -1420,7 +1420,7 @@
ackrate = ieee80211_ack_rate(sc->sc_rates, rate);
isshort = (ic->ic_flags & IEEE80211_F_SHPREAMBLE) != 0;
- dur = ieee80211_compute_duration(sc->sc_rates, pktlen, rate, isshort);
+ dur = ieee80211_compute_duration(sc->sc_rates, pktlen, rate, isshort)
+ ieee80211_ack_duration(sc->sc_rates, rate, isshort);
flags = RT2661_TX_MORE_FRAG;
if (prot == IEEE80211_PROT_RTSCTS) {
@@ -2471,7 +2471,8 @@
rt2661_init_locked(sc);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list