svn commit: r187971 - in user/thompsa/usb: . bin/dd contrib/opie
contrib/wpa_supplicant etc etc/rc.d gnu/usr.bin/grep include
lib/libc/db/man libexec/ftpd sbin/fsck sbin/fsck_ffs
sbin/ifconfig sbin...
Andrew Thompson
thompsa at FreeBSD.org
Sat Jan 31 17:04:33 PST 2009
Author: thompsa
Date: Sun Feb 1 01:04:31 2009
New Revision: 187971
URL: http://svn.freebsd.org/changeset/base/187971
Log:
MFH r187836-187970
Added:
user/thompsa/usb/usr.sbin/bluetooth/btpand/
- copied from r187970, head/usr.sbin/bluetooth/btpand/
Deleted:
user/thompsa/usb/share/man/man8/adding_user.8
Modified:
user/thompsa/usb/ (props changed)
user/thompsa/usb/bin/dd/dd.1
user/thompsa/usb/contrib/opie/opiekey.1
user/thompsa/usb/contrib/wpa_supplicant/ (props changed)
user/thompsa/usb/etc/rc.d/defaultroute
user/thompsa/usb/etc/rc.d/ntpd
user/thompsa/usb/etc/regdomain.xml
user/thompsa/usb/gnu/usr.bin/grep/savedir.c
user/thompsa/usb/include/paths.h
user/thompsa/usb/include/stdlib.h
user/thompsa/usb/include/string.h
user/thompsa/usb/include/wchar.h
user/thompsa/usb/lib/libc/db/man/dbm.3
user/thompsa/usb/libexec/ftpd/ftpd.8
user/thompsa/usb/sbin/fsck/fsck.8
user/thompsa/usb/sbin/fsck/fsck.c
user/thompsa/usb/sbin/fsck/fsutil.h
user/thompsa/usb/sbin/fsck_ffs/fsck.h
user/thompsa/usb/sbin/fsck_ffs/fsck_ffs.8
user/thompsa/usb/sbin/fsck_ffs/main.c
user/thompsa/usb/sbin/fsck_ffs/setup.c
user/thompsa/usb/sbin/ifconfig/ifieee80211.c
user/thompsa/usb/sbin/reboot/reboot.c
user/thompsa/usb/share/man/man4/ng_bpf.4
user/thompsa/usb/share/man/man5/rc.conf.5
user/thompsa/usb/share/man/man7/Makefile
user/thompsa/usb/share/man/man8/Makefile
user/thompsa/usb/share/misc/committers-src.dot
user/thompsa/usb/sys/ (props changed)
user/thompsa/usb/sys/amd64/amd64/cpu_switch.S
user/thompsa/usb/sys/amd64/amd64/fpu.c
user/thompsa/usb/sys/amd64/amd64/io_apic.c
user/thompsa/usb/sys/amd64/amd64/local_apic.c
user/thompsa/usb/sys/amd64/amd64/mp_machdep.c
user/thompsa/usb/sys/amd64/amd64/msi.c
user/thompsa/usb/sys/amd64/ia32/ia32_signal.c
user/thompsa/usb/sys/amd64/ia32/ia32_sigtramp.S
user/thompsa/usb/sys/amd64/include/apicvar.h
user/thompsa/usb/sys/amd64/include/cpufunc.h
user/thompsa/usb/sys/amd64/include/fpu.h
user/thompsa/usb/sys/amd64/include/intr_machdep.h
user/thompsa/usb/sys/amd64/linux32/linux32_locore.s
user/thompsa/usb/sys/amd64/linux32/linux32_sysvec.c
user/thompsa/usb/sys/arm/arm/busdma_machdep.c
user/thompsa/usb/sys/arm/arm/cpufunc_asm_sheeva.S (props changed)
user/thompsa/usb/sys/boot/i386/pxeldr/pxeboot.8
user/thompsa/usb/sys/cam/scsi/scsi_pass.c
user/thompsa/usb/sys/compat/ndis/winx32_wrap.S
user/thompsa/usb/sys/contrib/pf/ (props changed)
user/thompsa/usb/sys/dev/adb/adb_mouse.c
user/thompsa/usb/sys/dev/mmc/mmc.c
user/thompsa/usb/sys/dev/sdhci/sdhci.c
user/thompsa/usb/sys/dev/sound/pci/hda/hdac.c
user/thompsa/usb/sys/dev/usb/ehci_ixp4xx.c (props changed)
user/thompsa/usb/sys/dev/usb2/bluetooth/ng_ubt2.c
user/thompsa/usb/sys/dev/usb2/bluetooth/ubtbcmfw2.c
user/thompsa/usb/sys/fs/cd9660/cd9660_lookup.c
user/thompsa/usb/sys/fs/cd9660/cd9660_node.c
user/thompsa/usb/sys/fs/cd9660/cd9660_node.h
user/thompsa/usb/sys/fs/cd9660/cd9660_vfsops.c
user/thompsa/usb/sys/fs/cd9660/cd9660_vnops.c
user/thompsa/usb/sys/fs/coda/coda_vfsops.c
user/thompsa/usb/sys/fs/devfs/devfs_devs.c
user/thompsa/usb/sys/fs/devfs/devfs_vnops.c
user/thompsa/usb/sys/fs/hpfs/hpfs_vfsops.c
user/thompsa/usb/sys/fs/nullfs/null_vnops.c
user/thompsa/usb/sys/fs/nwfs/nwfs_subr.c
user/thompsa/usb/sys/fs/nwfs/nwfs_vnops.c
user/thompsa/usb/sys/fs/smbfs/smbfs_vnops.c
user/thompsa/usb/sys/fs/tmpfs/tmpfs_subr.c
user/thompsa/usb/sys/fs/udf/udf_vnops.c
user/thompsa/usb/sys/i386/i386/io_apic.c
user/thompsa/usb/sys/i386/i386/local_apic.c
user/thompsa/usb/sys/i386/i386/locore.s
user/thompsa/usb/sys/i386/i386/mp_machdep.c
user/thompsa/usb/sys/i386/i386/msi.c
user/thompsa/usb/sys/i386/i386/swtch.s
user/thompsa/usb/sys/i386/include/apicvar.h
user/thompsa/usb/sys/i386/include/cpufunc.h
user/thompsa/usb/sys/i386/include/intr_machdep.h
user/thompsa/usb/sys/i386/linux/linux_locore.s
user/thompsa/usb/sys/i386/svr4/svr4_locore.s
user/thompsa/usb/sys/i386/xen/mp_machdep.c
user/thompsa/usb/sys/kern/kern_jail.c
user/thompsa/usb/sys/kern/kern_mib.c
user/thompsa/usb/sys/kern/kern_sysctl.c
user/thompsa/usb/sys/kern/tty_info.c
user/thompsa/usb/sys/kern/vfs_cache.c
user/thompsa/usb/sys/mips/mips/elf64_machdep.c (props changed)
user/thompsa/usb/sys/modules/usb2/controller_atmegadci/ (props changed)
user/thompsa/usb/sys/net/if_llatbl.c
user/thompsa/usb/sys/net80211/ieee80211.c
user/thompsa/usb/sys/net80211/ieee80211_node.c
user/thompsa/usb/sys/net80211/ieee80211_tdma.c
user/thompsa/usb/sys/netinet6/frag6.c
user/thompsa/usb/sys/netinet6/in6.c
user/thompsa/usb/sys/netinet6/in6_gif.c
user/thompsa/usb/sys/netinet6/in6_ifattach.c
user/thompsa/usb/sys/netinet6/ip6_forward.c
user/thompsa/usb/sys/netinet6/ip6_input.c
user/thompsa/usb/sys/netinet6/ip6_var.h
user/thompsa/usb/sys/netinet6/nd6.c
user/thompsa/usb/sys/netinet6/nd6_nbr.c
user/thompsa/usb/sys/netinet6/nd6_rtr.c
user/thompsa/usb/sys/netinet6/vinet6.h
user/thompsa/usb/sys/netipsec/ipsec_output.c
user/thompsa/usb/sys/sys/_null.h
user/thompsa/usb/sys/sys/cdefs.h
user/thompsa/usb/sys/sys/malloc.h
user/thompsa/usb/sys/sys/unistd.h
user/thompsa/usb/sys/ufs/ffs/ffs_vfsops.c
user/thompsa/usb/tools/regression/lib/libc/stdio/test-printfloat.c
user/thompsa/usb/tools/regression/lib/msun/Makefile
user/thompsa/usb/tools/tools/ath/athrd/athrd.1
user/thompsa/usb/tools/tools/ath/athrd/athrd.c
user/thompsa/usb/tools/tools/ath/athstats/Makefile
user/thompsa/usb/usr.bin/sockstat/sockstat.c
user/thompsa/usb/usr.sbin/crunch/crunchgen/crunchgen.c
user/thompsa/usb/usr.sbin/gssd/gssd.8
user/thompsa/usb/usr.sbin/makefs/ffs/ffs_bswap.c (props changed)
user/thompsa/usb/usr.sbin/makefs/ffs/ffs_subr.c (props changed)
user/thompsa/usb/usr.sbin/makefs/ffs/ufs_bswap.h (props changed)
user/thompsa/usb/usr.sbin/makefs/getid.c (props changed)
user/thompsa/usb/usr.sbin/mtree/create.c
user/thompsa/usb/usr.sbin/mtree/mtree.5
user/thompsa/usb/usr.sbin/mtree/mtree.8
user/thompsa/usb/usr.sbin/mtree/spec.c
Modified: user/thompsa/usb/bin/dd/dd.1
==============================================================================
--- user/thompsa/usb/bin/dd/dd.1 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/bin/dd/dd.1 Sun Feb 1 01:04:31 2009 (r187971)
@@ -32,7 +32,7 @@
.\" @(#)dd.1 8.2 (Berkeley) 1/13/94
.\" $FreeBSD$
.\"
-.Dd August 15, 2004
+.Dd January 23, 2009
.Dt DD 1
.Os
.Sh NAME
Modified: user/thompsa/usb/contrib/opie/opiekey.1
==============================================================================
--- user/thompsa/usb/contrib/opie/opiekey.1 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/contrib/opie/opiekey.1 Sun Feb 1 01:04:31 2009 (r187971)
@@ -157,8 +157,7 @@ this mistake. Better checks are needed.
.BR opieinfo (1),
.BR opiekeys (5),
.BR opieaccess (5),
-.BR opiegen (1)
-.BR su (1),
+.BR su (1)
.SH AUTHOR
Bellcore's S/Key was written by Phil Karn, Neil M. Haller, and John S. Walden
Modified: user/thompsa/usb/etc/rc.d/defaultroute
==============================================================================
--- user/thompsa/usb/etc/rc.d/defaultroute Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/etc/rc.d/defaultroute Sun Feb 1 01:04:31 2009 (r187971)
@@ -21,7 +21,6 @@ defaultroute_start()
# Return without waiting if we don't have dhcp interfaces.
# Once we can test that the link is actually up, we should
# remove this test and always wait.
- dhcp_interfaces=`list_net_interfaces dhcp`
[ -z "`list_net_interfaces dhcp`" ] && return
# Wait for a default route
Modified: user/thompsa/usb/etc/rc.d/ntpd
==============================================================================
--- user/thompsa/usb/etc/rc.d/ntpd Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/etc/rc.d/ntpd Sun Feb 1 01:04:31 2009 (r187971)
@@ -23,7 +23,7 @@ ntpd_precmd()
rc_flags="-c ${ntpd_config} ${ntpd_flags}"
if checkyesno ntpd_sync_on_start; then
- rc_flags="-q -g $rc_flags"
+ rc_flags="-g $rc_flags"
fi
if [ -z "$ntpd_chrootdir" ]; then
Modified: user/thompsa/usb/etc/regdomain.xml
==============================================================================
--- user/thompsa/usb/etc/regdomain.xml Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/etc/regdomain.xml Sun Feb 1 01:04:31 2009 (r187971)
@@ -1133,7 +1133,6 @@
<rd id="sr9">
<name>SR9</name>
<sku>0x0298</sku>
- <defcc ref="SR9"/>
<netband mode="11g">
<band>
<freqband ref="S1_907_922_5"/>
@@ -1156,20 +1155,19 @@
<rd id="xr9">
<name>XR9</name>
<sku>0x299</sku>
- <defcc ref="XR9"/>
<netband mode="11g">
<band>
- <freqband ref="S2_907_922_5"/>
+ <freqband ref="S1_907_922_5"/>
<maxpower>30</maxpower>
<flags>IEEE80211_CHAN_G</flags>
</band>
<band>
- <freqband ref="S2_907_922_10"/>
+ <freqband ref="S1_907_922_10"/>
<maxpower>30</maxpower>
<flags>IEEE80211_CHAN_G</flags>
</band>
<band>
- <freqband ref="S2_912_917"/>
+ <freqband ref="S1_912_917"/>
<maxpower>30</maxpower>
<flags>IEEE80211_CHAN_G</flags>
</band>
@@ -1179,7 +1177,6 @@
<rd id="gz901">
<name>GZ901</name>
<sku>0x29a</sku>
- <defcc ref="GZ901"/>
<netband mode="11g">
<band>
<freqband ref="S1_908_923_5"/>
@@ -1319,9 +1316,6 @@
<country id="GT">
<isocc>320</isocc> <name>Guatemala</name> <rd ref="none"/>
</country>
-<country id="GZ901">
- <isocc>5002</isocc> <name>ZComax GZ-901</name> <rd ref="gz901"/>
-</country>
<country id="HN">
<isocc>340</isocc> <name>Honduras</name> <rd ref="none"/>
</country>
@@ -1517,12 +1511,6 @@
<country id="TR">
<isocc>792</isocc> <name>Turkey</name> <rd ref="etsi"/>
</country>
-<country id="SR9">
- <isocc>5000</isocc> <name>Ubiquiti SR9</name> <rd ref="sr9"/>
-</country>
-<country id="XR9">
- <isocc>5001</isocc> <name>Ubiquiti XR9</name> <rd ref="xr9"/>
-</country>
<country id="UA">
<isocc>804</isocc> <name>Ukraine</name> <rd ref="none"/>
</country>
@@ -1725,55 +1713,37 @@
</freqband>
<freqband id="S1_907_922_5">
- <freqstart>2422</freqstart> <freqend>2437</freqend>
+ <freqstart>907</freqstart> <freqend>922</freqend>
<chanwidth>5</chanwidth> <chansep>5</chansep>
<flags>IEEE80211_CHAN_GSM</flags>
<flags>IEEE80211_CHAN_QUARTER</flags>
</freqband>
<freqband id="S1_907_922_10">
- <freqstart>2422</freqstart> <freqend>2437</freqend>
+ <freqstart>907</freqstart> <freqend>922</freqend>
<chanwidth>10</chanwidth> <chansep>5</chansep>
<flags>IEEE80211_CHAN_GSM</flags>
<flags>IEEE80211_CHAN_HALF</flags>
</freqband>
<freqband id="S1_912_917">
- <freqstart>2427</freqstart> <freqend>2432</freqend>
- <chanwidth>20</chanwidth> <chansep>5</chansep>
- <flags>IEEE80211_CHAN_GSM</flags>
-</freqband>
-
-<freqband id="S2_907_922_5">
- <freqstart>2427</freqstart> <freqend>2442</freqend>
- <chanwidth>5</chanwidth> <chansep>5</chansep>
- <flags>IEEE80211_CHAN_GSM</flags>
- <flags>IEEE80211_CHAN_QUARTER</flags>
-</freqband>
-<freqband id="S2_907_922_10">
- <freqstart>2427</freqstart> <freqend>2442</freqend>
- <chanwidth>10</chanwidth> <chansep>5</chansep>
- <flags>IEEE80211_CHAN_GSM</flags>
- <flags>IEEE80211_CHAN_HALF</flags>
-</freqband>
-<freqband id="S2_912_917">
- <freqstart>2432</freqstart> <freqend>2437</freqend>
+ <freqstart>912</freqstart> <freqend>917</freqend>
<chanwidth>20</chanwidth> <chansep>5</chansep>
<flags>IEEE80211_CHAN_GSM</flags>
</freqband>
<freqband id="S1_908_923_5">
- <freqstart>2447</freqstart> <freqend>2467</freqend>
+ <freqstart>908</freqstart> <freqend>923</freqend>
<chanwidth>5</chanwidth> <chansep>5</chansep>
<flags>IEEE80211_CHAN_GSM</flags>
<flags>IEEE80211_CHAN_QUARTER</flags>
</freqband>
<freqband id="S1_913_918_10">
- <freqstart>2457</freqstart> <freqend>2462</freqend>
+ <freqstart>913</freqstart> <freqend>918</freqend>
<chanwidth>10</chanwidth> <chansep>5</chansep>
<flags>IEEE80211_CHAN_GSM</flags>
<flags>IEEE80211_CHAN_HALF</flags>
</freqband>
<freqband id="S1_913_918">
- <freqstart>2457</freqstart> <freqend>2462</freqend>
+ <freqstart>913</freqstart> <freqend>918</freqend>
<chanwidth>20</chanwidth> <chansep>5</chansep>
<flags>IEEE80211_CHAN_GSM</flags>
</freqband>
Modified: user/thompsa/usb/gnu/usr.bin/grep/savedir.c
==============================================================================
--- user/thompsa/usb/gnu/usr.bin/grep/savedir.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/gnu/usr.bin/grep/savedir.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -17,6 +17,9 @@
/* Written by David MacKenzie <djm at gnu.ai.mit.edu>. */
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#if HAVE_CONFIG_H
# include <config.h>
#endif
@@ -137,10 +140,10 @@ savedir (const char *dir, off_t name_siz
&& !isdir1 (dir, dp->d_name))
{
if (included_patterns
- && !excluded_filename (included_patterns, dp->d_name, 0))
+ && !excluded_filename (included_patterns, path, 0))
continue;
if (excluded_patterns
- && excluded_filename (excluded_patterns, dp->d_name, 0))
+ && excluded_filename (excluded_patterns, path, 0))
continue;
}
Modified: user/thompsa/usb/include/paths.h
==============================================================================
--- user/thompsa/usb/include/paths.h Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/include/paths.h Sun Feb 1 01:04:31 2009 (r187971)
@@ -42,10 +42,9 @@
/* Default search path. */
#define _PATH_DEFPATH "/usr/bin:/bin"
/* All standard utilities path. */
-#define _PATH_STDPATH \
- "/usr/bin:/bin:/usr/sbin:/sbin:"
-/* Locate system binaries */
-#define _PATH_SYSPATH "/sbin:/usr/sbin"
+#define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin:"
+/* Locate system binaries. */
+#define _PATH_SYSPATH "/sbin:/usr/sbin"
#define _PATH_AUTHCONF "/etc/auth.conf"
#define _PATH_BSHELL "/bin/sh"
Modified: user/thompsa/usb/include/stdlib.h
==============================================================================
--- user/thompsa/usb/include/stdlib.h Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/include/stdlib.h Sun Feb 1 01:04:31 2009 (r187971)
@@ -88,14 +88,14 @@ int atoi(const char *);
long atol(const char *);
void *bsearch(const void *, const void *, size_t,
size_t, int (*)(const void *, const void *));
-void *calloc(size_t, size_t);
+void *calloc(size_t, size_t) __malloc_like;
div_t div(int, int) __pure2;
void exit(int) __dead2;
void free(void *);
char *getenv(const char *);
long labs(long) __pure2;
ldiv_t ldiv(long, long) __pure2;
-void *malloc(size_t);
+void *malloc(size_t) __malloc_like;
int mblen(const char *, size_t);
size_t mbstowcs(wchar_t * __restrict , const char * __restrict, size_t);
int mbtowc(wchar_t * __restrict, const char * __restrict, size_t);
Modified: user/thompsa/usb/include/string.h
==============================================================================
--- user/thompsa/usb/include/string.h Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/include/string.h Sun Feb 1 01:04:31 2009 (r187971)
@@ -78,7 +78,7 @@ int strcoll(const char *, const char *)
char *strcpy(char * __restrict, const char * __restrict);
size_t strcspn(const char *, const char *) __pure;
#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
-char *strdup(const char *);
+char *strdup(const char *) __malloc_like;
#endif
char *strerror(int);
#if __POSIX_VISIBLE >= 200112
@@ -96,7 +96,7 @@ char *strncat(char * __restrict, const c
int strncmp(const char *, const char *, size_t) __pure;
char *strncpy(char * __restrict, const char * __restrict, size_t);
#if __BSD_VISIBLE
-char *strndup(const char *, size_t);
+char *strndup(const char *, size_t) __malloc_like;
char *strnstr(const char *, const char *, size_t) __pure;
#endif
char *strpbrk(const char *, const char *) __pure;
Modified: user/thompsa/usb/include/wchar.h
==============================================================================
--- user/thompsa/usb/include/wchar.h Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/include/wchar.h Sun Feb 1 01:04:31 2009 (r187971)
@@ -214,7 +214,7 @@ int wcwidth(wchar_t);
wchar_t *fgetwln(struct __sFILE * __restrict, size_t * __restrict);
size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
size_t, mbstate_t * __restrict);
-wchar_t *wcsdup(const wchar_t *);
+wchar_t *wcsdup(const wchar_t *) __malloc_like;
size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t,
size_t, mbstate_t * __restrict);
size_t wcslcat(wchar_t *, const wchar_t *, size_t);
Modified: user/thompsa/usb/lib/libc/db/man/dbm.3
==============================================================================
--- user/thompsa/usb/lib/libc/db/man/dbm.3 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/lib/libc/db/man/dbm.3 Sun Feb 1 01:04:31 2009 (r187971)
@@ -15,8 +15,6 @@
.\"
.\" $FreeBSD$
.\"
-.\" Note: The date here should be updated whenever a non-trivial
-.\" change is made to the manual page.
.Dd April 16, 2006
.Dt DBM 3
.Os
Modified: user/thompsa/usb/libexec/ftpd/ftpd.8
==============================================================================
--- user/thompsa/usb/libexec/ftpd/ftpd.8 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/libexec/ftpd/ftpd.8 Sun Feb 1 01:04:31 2009 (r187971)
@@ -205,7 +205,7 @@ for more information.
Note that option is a virtual no-op in
.Fx 5.0
and above; both port
-ranges are indentical by default.
+ranges are identical by default.
.It Fl u
The default file creation mode mask is set to
.Ar umask ,
Modified: user/thompsa/usb/sbin/fsck/fsck.8
==============================================================================
--- user/thompsa/usb/sbin/fsck/fsck.8 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck/fsck.8 Sun Feb 1 01:04:31 2009 (r187971)
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 25, 2001
+.Dd January 25, 2009
.Dt FSCK 8
.Os
.Sh NAME
@@ -37,7 +37,7 @@
.Nd file system consistency check and interactive repair
.Sh SYNOPSIS
.Nm
-.Op Fl dfnpvy
+.Op Fl Cdfnpvy
.Op Fl B | F
.Op Fl T Ar fstype : Ns Ar fsoptions
.Op Fl t Ar fstype
@@ -112,6 +112,11 @@ to be the partition and slice designator
.Pp
The options are as follows:
.Bl -tag -width indent
+.It Fl C
+Check if the
+.Dq clean
+flag is set in the superblock and skip file system checks if file system was
+properly dismounted and marked clean.
.It Fl d
Debugging mode.
Just print the commands without executing them.
Modified: user/thompsa/usb/sbin/fsck/fsck.c
==============================================================================
--- user/thompsa/usb/sbin/fsck/fsck.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck/fsck.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -103,7 +103,7 @@ main(int argc, char *argv[])
TAILQ_INIT(&selhead);
TAILQ_INIT(&opthead);
- while ((i = getopt(argc, argv, "BdvpfFnyl:t:T:")) != -1)
+ while ((i = getopt(argc, argv, "BCdvpfFnyl:t:T:")) != -1)
switch (i) {
case 'B':
if (flags & CHECK_BACKGRD)
@@ -128,6 +128,9 @@ main(int argc, char *argv[])
case 'p':
flags |= CHECK_PREEN;
/*FALLTHROUGH*/
+ case 'C':
+ flags |= CHECK_CLEAN;
+ /*FALLTHROUGH*/
case 'n':
case 'y':
globopt[1] = i;
@@ -566,7 +569,7 @@ static void
usage(void)
{
static const char common[] =
- "[-dfnpvy] [-B | -F] [-T fstype:fsoptions] [-t fstype]";
+ "[-Cdfnpvy] [-B | -F] [-T fstype:fsoptions] [-t fstype]";
(void)fprintf(stderr, "usage: %s %s [special | node] ...\n",
getprogname(), common);
Modified: user/thompsa/usb/sbin/fsck/fsutil.h
==============================================================================
--- user/thompsa/usb/sbin/fsck/fsutil.h Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck/fsutil.h Sun Feb 1 01:04:31 2009 (r187971)
@@ -48,6 +48,7 @@ char *estrdup(const char *);
#define CHECK_DEBUG 0x0004
#define CHECK_BACKGRD 0x0008
#define DO_BACKGRD 0x0010
+#define CHECK_CLEAN 0x0020
struct fstab;
int checkfstab(int, int (*)(struct fstab *),
Modified: user/thompsa/usb/sbin/fsck_ffs/fsck.h
==============================================================================
--- user/thompsa/usb/sbin/fsck_ffs/fsck.h Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck_ffs/fsck.h Sun Feb 1 01:04:31 2009 (r187971)
@@ -271,6 +271,7 @@ int bkgrdflag; /* use a snapshot to run
int bflag; /* location of alternate super block */
int debug; /* output debugging info */
char damagedflag; /* run in damaged mode */
+char ckclean; /* only do work if not cleanly unmounted */
int cvtlevel; /* convert to newer file system format */
int bkgrdcheck; /* determine if background check is possible */
int bkgrdsumadj; /* whether the kernel have ability to adjust superblock summary */
Modified: user/thompsa/usb/sbin/fsck_ffs/fsck_ffs.8
==============================================================================
--- user/thompsa/usb/sbin/fsck_ffs/fsck_ffs.8 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck_ffs/fsck_ffs.8 Sun Feb 1 01:04:31 2009 (r187971)
@@ -29,7 +29,7 @@
.\" @(#)fsck.8 8.4 (Berkeley) 5/9/95
.\" $FreeBSD$
.\"
-.Dd January 20, 2009
+.Dd January 25, 2009
.Dt FSCK_FFS 8
.Os
.Sh NAME
@@ -46,9 +46,9 @@
.Ar ...
.Sh DESCRIPTION
The specified disk partitions and/or file systems are checked.
-In "preen" mode the clean flag of each file system's superblock is examined
-and only those file systems that
-are not marked clean are checked.
+In "preen" or "check clean" mode the clean flag of each file system's
+superblock is examined and only those file systems that are not marked clean
+are checked.
File systems are marked clean when they are unmounted,
when they have been mounted read-only, or when
.Nm
@@ -175,6 +175,14 @@ Use the block specified immediately afte
the super block for the file system.
An alternate super block is usually located at block 32 for UFS1,
and block 160 for UFS2.
+.It Fl C
+Check if file system was dismouted cleanly.
+If so, skip file system checks (like "preen").
+However, if the file system was not cleanly dismounted, do full checks,
+is if
+.Nm
+was invoked without
+.Fl C .
.It Fl c
Convert the file system to the specified level.
Note that the level of a file system can only be raised.
Modified: user/thompsa/usb/sbin/fsck_ffs/main.c
==============================================================================
--- user/thompsa/usb/sbin/fsck_ffs/main.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck_ffs/main.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -82,7 +82,7 @@ main(int argc, char *argv[])
sync();
skipclean = 1;
damagedflag = 0;
- while ((ch = getopt(argc, argv, "b:Bc:dDfFm:npy")) != -1) {
+ while ((ch = getopt(argc, argv, "b:Bc:CdDfFm:npy")) != -1) {
switch (ch) {
case 'b':
skipclean = 0;
@@ -132,6 +132,10 @@ main(int argc, char *argv[])
case 'p':
preen++;
+ /*FALLTHROUGH*/
+
+ case 'C':
+ ckclean++;
break;
case 'y':
@@ -151,7 +155,7 @@ main(int argc, char *argv[])
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
(void)signal(SIGINT, catch);
- if (preen)
+ if (ckclean)
(void)signal(SIGQUIT, catchquit);
signal(SIGINFO, infohandler);
if (bkgrdflag) {
@@ -215,7 +219,7 @@ checkfilesys(char *filesys)
errmsg[0] = '\0';
cdevname = filesys;
- if (debug && preen)
+ if (debug && ckclean)
pwarn("starting\n");
/*
* Make best effort to get the disk name. Check first to see
@@ -250,7 +254,7 @@ checkfilesys(char *filesys)
exit(7); /* Filesystem clean, report it now */
exit(0);
}
- if (preen && skipclean) {
+ if (ckclean && skipclean) {
/*
* If file system is gjournaled, check it here.
*/
@@ -301,7 +305,7 @@ checkfilesys(char *filesys)
"CANNOT RUN IN BACKGROUND\n");
}
if ((sblock.fs_flags & FS_UNCLEAN) == 0 &&
- skipclean && preen) {
+ skipclean && ckclean) {
/*
* file system is clean;
* skip snapshot and report it clean
Modified: user/thompsa/usb/sbin/fsck_ffs/setup.c
==============================================================================
--- user/thompsa/usb/sbin/fsck_ffs/setup.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/fsck_ffs/setup.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -65,7 +65,7 @@ static struct disklabel *getdisklabel(ch
/*
* Read in a superblock finding an alternate if necessary.
* Return 1 if successful, 0 if unsuccessful, -1 if file system
- * is already clean (preen mode only).
+ * is already clean (ckclean and preen mode only).
*/
int
setup(char *dev)
@@ -201,7 +201,7 @@ setup(char *dev)
pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag);
bflag = 0;
}
- if (skipclean && preen && sblock.fs_clean) {
+ if (skipclean && ckclean && sblock.fs_clean) {
pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
return (-1);
}
Modified: user/thompsa/usb/sbin/ifconfig/ifieee80211.c
==============================================================================
--- user/thompsa/usb/sbin/ifconfig/ifieee80211.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/ifconfig/ifieee80211.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -1789,6 +1789,19 @@ chanlookup(const struct ieee80211_channe
return NULL;
}
+static int
+chanfind(const struct ieee80211_channel chans[], int nchans, int flags)
+{
+ int i;
+
+ for (i = 0; i < nchans; i++) {
+ const struct ieee80211_channel *c = &chans[i];
+ if ((c->ic_flags & flags) == flags)
+ return 1;
+ }
+ return 0;
+}
+
static void
regdomain_addchans(struct ieee80211req_chaninfo *ci,
const netband_head *bands,
@@ -1799,53 +1812,72 @@ regdomain_addchans(struct ieee80211req_c
const struct netband *nb;
const struct freqband *b;
struct ieee80211_channel *c, *prev;
- int freq, channelSep;
+ int freq, channelSep, hasHalfChans, hasQuarterChans;
channelSep = (chanFlags & IEEE80211_CHAN_2GHZ) ? 0 : 40;
+ hasHalfChans = chanfind(avail->ic_chans, avail->ic_nchans,
+ IEEE80211_CHAN_HALF |
+ (chanFlags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ)));
+ hasQuarterChans = chanfind(avail->ic_chans, avail->ic_nchans,
+ IEEE80211_CHAN_QUARTER |
+ (chanFlags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ)));
LIST_FOREACH(nb, bands, next) {
b = nb->band;
- if (verbose)
- printf("%s: chanFlags 0x%x b %p\n",
- __func__, chanFlags, b);
+ if (verbose) {
+ printf("%s:", __func__);
+ printb(" chanFlags", chanFlags, IEEE80211_CHAN_BITS);
+ printb(" bandFlags", nb->flags | b->flags,
+ IEEE80211_CHAN_BITS);
+ putchar('\n');
+ }
prev = NULL;
for (freq = b->freqStart; freq <= b->freqEnd; freq += b->chanSep) {
uint32_t flags = nb->flags | b->flags;
/* check if device can operate on this frequency */
- if (chanlookup(avail->ic_chans, avail->ic_nchans, freq, chanFlags) == NULL) {
- if (verbose)
- printf("%u: skip, flags 0x%x not available\n", freq, chanFlags);
- continue;
- }
/*
- * NB: don't enforce 1/2 and 1/4 rate channels being
- * specified in the device's calibration list for
- * 900MHz cards because most are not self-identifying.
+ * XXX GSM frequency mapping is handled in the kernel
+ * so we cannot find them in the calibration table;
+ * just construct the list and the kernel will reject
+ * if it's wrong.
*/
- if ((flags & IEEE80211_CHAN_HALF) &&
- ((chanFlags & IEEE80211_CHAN_HALF) == 0 &&
- (flags & IEEE80211_CHAN_GSM) == 0)) {
+ if (chanlookup(avail->ic_chans, avail->ic_nchans, freq, chanFlags) == NULL &&
+ (flags & IEEE80211_CHAN_GSM) == 0) {
+ if (verbose) {
+ printf("%u: skip, ", freq);
+ printb("flags", chanFlags,
+ IEEE80211_CHAN_BITS);
+ printf(" not available\n");
+ }
+ continue;
+ }
+ if ((flags & IEEE80211_CHAN_HALF) && !hasHalfChans) {
if (verbose)
- printf("%u: skip, device does not support half-rate channels\n", freq);
+ printf("%u: skip, device does not "
+ "support half-rate channel\n",
+ freq);
continue;
}
if ((flags & IEEE80211_CHAN_QUARTER) &&
- ((chanFlags & IEEE80211_CHAN_QUARTER) == 0 &&
- (flags & IEEE80211_CHAN_GSM) == 0)) {
+ !hasQuarterChans) {
if (verbose)
- printf("%u: skip, device does not support quarter-rate channels\n", freq);
+ printf("%u: skip, device does not "
+ "support quarter-rate channel\n",
+ freq);
continue;
}
if ((flags & IEEE80211_CHAN_HT20) &&
(chanFlags & IEEE80211_CHAN_HT20) == 0) {
if (verbose)
- printf("%u: skip, device does not support HT20 operation\n", freq);
+ printf("%u: skip, device does not "
+ "support HT20 operation\n", freq);
continue;
}
if ((flags & IEEE80211_CHAN_HT40) &&
(chanFlags & IEEE80211_CHAN_HT40) == 0) {
if (verbose)
- printf("%u: skip, device does not support HT40 operation\n", freq);
+ printf("%u: skip, device does not "
+ "support HT40 operation\n", freq);
continue;
}
if ((flags & REQ_ECM) && !reg->ecm) {
@@ -1868,7 +1900,8 @@ regdomain_addchans(struct ieee80211req_c
}
if (ci->ic_nchans == IEEE80211_CHAN_MAX) {
if (verbose)
- printf("%u: skip, channel table full\n", freq);
+ printf("%u: skip, channel table full\n",
+ freq);
break;
}
c = &ci->ic_chans[ci->ic_nchans++];
@@ -1880,10 +1913,12 @@ regdomain_addchans(struct ieee80211req_c
c->ic_maxregpower = nb->maxPowerDFS;
else
c->ic_maxregpower = nb->maxPower;
- if (verbose)
- printf("[%3d] add freq %u flags 0x%x power %u\n",
- ci->ic_nchans-1, c->ic_freq, c->ic_flags,
- c->ic_maxregpower);
+ if (verbose) {
+ printf("[%3d] add freq %u ",
+ ci->ic_nchans-1, c->ic_freq);
+ printb("flags", c->ic_flags, IEEE80211_CHAN_BITS);
+ printf(" power %u\n", c->ic_maxregpower);
+ }
/* NB: kernel fills in other fields */
prev = c;
}
@@ -1932,26 +1967,12 @@ regdomain_makechannels(
if (!LIST_EMPTY(&rd->bands_11b))
regdomain_addchans(ci, &rd->bands_11b, reg,
IEEE80211_CHAN_B, &dc->dc_chaninfo);
- if (!LIST_EMPTY(&rd->bands_11g)) {
+ if (!LIST_EMPTY(&rd->bands_11g))
regdomain_addchans(ci, &rd->bands_11g, reg,
IEEE80211_CHAN_G, &dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11g, reg,
- IEEE80211_CHAN_G | IEEE80211_CHAN_HALF,
- &dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11g, reg,
- IEEE80211_CHAN_G | IEEE80211_CHAN_QUARTER,
- &dc->dc_chaninfo);
- }
- if (!LIST_EMPTY(&rd->bands_11a)) {
+ if (!LIST_EMPTY(&rd->bands_11a))
regdomain_addchans(ci, &rd->bands_11a, reg,
IEEE80211_CHAN_A, &dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11a, reg,
- IEEE80211_CHAN_A | IEEE80211_CHAN_HALF,
- &dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11a, reg,
- IEEE80211_CHAN_A | IEEE80211_CHAN_QUARTER,
- &dc->dc_chaninfo);
- }
if (!LIST_EMPTY(&rd->bands_11na)) {
regdomain_addchans(ci, &rd->bands_11na, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT20,
@@ -3098,23 +3119,16 @@ get_chaninfo(const struct ieee80211_chan
buf[0] = '\0';
if (IEEE80211_IS_CHAN_FHSS(c))
strlcat(buf, " FHSS", bsize);
- if (IEEE80211_IS_CHAN_A(c)) {
- if (IEEE80211_IS_CHAN_HALF(c))
- strlcat(buf, " 11a/10Mhz", bsize);
- else if (IEEE80211_IS_CHAN_QUARTER(c))
- strlcat(buf, " 11a/5Mhz", bsize);
- else
- strlcat(buf, " 11a", bsize);
- }
- if (IEEE80211_IS_CHAN_ANYG(c)) {
- if (IEEE80211_IS_CHAN_HALF(c))
- strlcat(buf, " 11g/10Mhz", bsize);
- else if (IEEE80211_IS_CHAN_QUARTER(c))
- strlcat(buf, " 11g/5Mhz", bsize);
- else
- strlcat(buf, " 11g", bsize);
- } else if (IEEE80211_IS_CHAN_B(c))
+ if (IEEE80211_IS_CHAN_A(c))
+ strlcat(buf, " 11a", bsize);
+ else if (IEEE80211_IS_CHAN_ANYG(c))
+ strlcat(buf, " 11g", bsize);
+ else if (IEEE80211_IS_CHAN_B(c))
strlcat(buf, " 11b", bsize);
+ if (IEEE80211_IS_CHAN_HALF(c))
+ strlcat(buf, "/10Mhz", bsize);
+ if (IEEE80211_IS_CHAN_QUARTER(c))
+ strlcat(buf, "/5Mhz", bsize);
if (IEEE80211_IS_CHAN_TURBO(c))
strlcat(buf, " Turbo", bsize);
if (precise) {
@@ -3142,6 +3156,30 @@ print_chaninfo(const struct ieee80211_ch
get_chaninfo(c, verb, buf, sizeof(buf)));
}
+static int
+chanpref(const struct ieee80211_channel *c)
+{
+ if (IEEE80211_IS_CHAN_HT40(c))
+ return 40;
+ if (IEEE80211_IS_CHAN_HT20(c))
+ return 30;
+ if (IEEE80211_IS_CHAN_HALF(c))
+ return 10;
+ if (IEEE80211_IS_CHAN_QUARTER(c))
+ return 5;
+ if (IEEE80211_IS_CHAN_TURBO(c))
+ return 25;
+ if (IEEE80211_IS_CHAN_A(c))
+ return 20;
+ if (IEEE80211_IS_CHAN_G(c))
+ return 20;
+ if (IEEE80211_IS_CHAN_B(c))
+ return 15;
+ if (IEEE80211_IS_CHAN_PUREG(c))
+ return 15;
+ return 0;
+}
+
static void
print_channels(int s, const struct ieee80211req_chaninfo *chans,
int allchans, int verb)
@@ -3185,7 +3223,10 @@ print_channels(int s, const struct ieee8
/* suppress duplicates as above */
if (isset(reported, c->ic_ieee) && !verb) {
/* XXX we assume duplicates are adjacent */
- achans->ic_chans[achans->ic_nchans-1] = *c;
+ struct ieee80211_channel *a =
+ &achans->ic_chans[achans->ic_nchans-1];
+ if (chanpref(c) > chanpref(a))
+ *a = *c;
} else {
achans->ic_chans[achans->ic_nchans++] = *c;
setbit(reported, c->ic_ieee);
@@ -3301,10 +3342,13 @@ list_capabilities(int s)
{
struct ieee80211_devcaps_req *dc;
- dc = malloc(IEEE80211_DEVCAPS_SIZE(1));
+ if (verbose)
+ dc = malloc(IEEE80211_DEVCAPS_SIZE(MAXCHAN));
+ else
+ dc = malloc(IEEE80211_DEVCAPS_SIZE(1));
if (dc == NULL)
errx(1, "no space for device capabilities");
- dc->dc_chaninfo.ic_nchans = 1;
+ dc->dc_chaninfo.ic_nchans = verbose ? MAXCHAN : 1;
getdevcaps(s, dc);
printb("drivercaps", dc->dc_drivercaps, IEEE80211_C_BITS);
if (dc->dc_cryptocaps != 0 || verbose) {
@@ -3316,6 +3360,10 @@ list_capabilities(int s)
printb("htcaps", dc->dc_htcaps, IEEE80211_HTCAP_BITS);
}
putchar('\n');
+ if (verbose) {
+ chaninfo = &dc->dc_chaninfo; /* XXX */
+ print_channels(s, &dc->dc_chaninfo, 1/*allchans*/, verbose);
+ }
free(dc);
}
Modified: user/thompsa/usb/sbin/reboot/reboot.c
==============================================================================
--- user/thompsa/usb/sbin/reboot/reboot.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sbin/reboot/reboot.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -65,7 +65,7 @@ int
main(int argc, char *argv[])
{
const struct passwd *pw;
- int ch, howto, i, fd, lflag, nflag, qflag, pflag, sverrno;
+ int ch, howto, i, fd, lflag, nflag, qflag, sverrno;
u_int pageins;
const char *p, *user, *kernel = NULL;
@@ -91,7 +91,6 @@ main(int argc, char *argv[])
howto |= RB_NOSYNC;
break;
case 'p':
- pflag = 1;
howto |= RB_POWEROFF;
break;
case 'q':
Modified: user/thompsa/usb/share/man/man4/ng_bpf.4
==============================================================================
--- user/thompsa/usb/share/man/man4/ng_bpf.4 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/share/man/man4/ng_bpf.4 Sun Feb 1 01:04:31 2009 (r187971)
@@ -156,21 +156,14 @@ INHOOK="hook1"
MATCHHOOK="hook2"
NOTMATCHHOOK="hook3"
-cat > /tmp/bpf.awk << xxENDxx
-{
- if (!init) {
- printf "bpf_prog_len=%d bpf_prog=[", \\$1;
- init=1;
- } else {
- printf " { code=%d jt=%d jf=%d k=%d }", \\$1, \\$2, \\$3, \\$4;
- }
-}
-END {
- print " ]"
-}
-xxENDxx
-
-BPFPROG=`tcpdump -s 8192 -ddd ${PATTERN} | awk -f /tmp/bpf.awk`
+BPFPROG=$( tcpdump -s 8192 -ddd ${PATTERN} | \\
+ ( read len ; \\
+ echo -n "bpf_prog_len=$len" ; \\
+ echo -n "bpf_prog=[" ; \\
+ while read code jt jf k ; do \\
+ echo -n " { code=$code jt=$jt jf=$jf k=$k }" ; \\
+ done ; \\
+ echo " ]" ) )
ngctl msg ${NODEPATH} setprogram { thisHook=\\"${INHOOK}\\" \\
ifMatch=\\"${MATCHHOOK}\\" \\
Modified: user/thompsa/usb/share/man/man5/rc.conf.5
==============================================================================
--- user/thompsa/usb/share/man/man5/rc.conf.5 Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/share/man/man5/rc.conf.5 Sun Feb 1 01:04:31 2009 (r187971)
@@ -2065,16 +2065,12 @@ If set to
.Xr ntpd 8
is run with the
.Fl g
-and
-.Fl q
-flags, which syncs the system's clock on startup.
+flag, which syncs the system's clock on startup.
See
.Xr ntpd 8
for more information regarding the
.Fl g
-and
-.Fl q
-options.
+option.
This is a preferred alternative to using
.Xr ntpdate 8
or specifying the
Modified: user/thompsa/usb/share/man/man7/Makefile
==============================================================================
--- user/thompsa/usb/share/man/man7/Makefile Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/share/man/man7/Makefile Sun Feb 1 01:04:31 2009 (r187971)
@@ -2,7 +2,8 @@
# $FreeBSD$
#MISSING: eqnchar.7 ms.7 term.7
-MAN= ascii.7 \
+MAN= adding_user.7 \
+ ascii.7 \
bsd.snmpmod.mk.7 \
build.7 \
clocks.7 \
Modified: user/thompsa/usb/share/man/man8/Makefile
==============================================================================
--- user/thompsa/usb/share/man/man8/Makefile Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/share/man/man8/Makefile Sun Feb 1 01:04:31 2009 (r187971)
@@ -1,8 +1,7 @@
# @(#)Makefile 8.1 (Berkeley) 6/5/93
# $FreeBSD$
-MAN= adding_user.8 \
- crash.8 \
+MAN= crash.8 \
diskless.8 \
intro.8 \
MAKEDEV.8 \
Modified: user/thompsa/usb/share/misc/committers-src.dot
==============================================================================
--- user/thompsa/usb/share/misc/committers-src.dot Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/share/misc/committers-src.dot Sun Feb 1 01:04:31 2009 (r187971)
@@ -102,6 +102,7 @@ iedowse [label="Ian Dowse\niedowse at FreeB
imp [label="Warner Losh\nimp at FreeBSD.org\n1996/09/20"]
ivoras [label="Ivan Voras\nivoras at FreeBSD.org\n2008/06/10"]
jake [label="Jake Burkholder\njake at FreeBSD.org\n2000/05/16"]
+jamie [label="Jamie Gritton\njamie at FreeBSD.org\n2009/01/28"]
jayanth [label="Jayanth Vijayaraghavan\njayanth at FreeBSD.org\n2000/05/08"]
jinmei [label="JINMEI Tatuya\njinmei at FreeBSD.org\n2007/03/17"]
jdp [label="John Polstra\njdp at FreeBSD.org\n????/??/??"]
@@ -219,7 +220,9 @@ bms -> thompsa
brian -> joe
brooks -> bushman
+brooks -> jamie
+bz -> jamie
bz -> syrinx
cperciva -> flz
Modified: user/thompsa/usb/sys/amd64/amd64/cpu_switch.S
==============================================================================
--- user/thompsa/usb/sys/amd64/amd64/cpu_switch.S Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sys/amd64/amd64/cpu_switch.S Sun Feb 1 01:04:31 2009 (r187971)
@@ -260,12 +260,12 @@ do_kthread:
jmp do_tss
store_seg:
- movl %gs,PCB_GS(%r8)
+ mov %gs,PCB_GS(%r8)
testl $PCB_GS32BIT,PCB_FLAGS(%r8)
jnz 2f
-1: movl %ds,PCB_DS(%r8)
- movl %es,PCB_ES(%r8)
- movl %fs,PCB_FS(%r8)
+1: mov %ds,PCB_DS(%r8)
+ mov %es,PCB_ES(%r8)
+ mov %fs,PCB_FS(%r8)
jmp done_store_seg
2: movq PCPU(GS32P),%rax
movq (%rax),%rax
@@ -277,11 +277,11 @@ load_seg:
jnz 2f
1: movl $MSR_GSBASE,%ecx
rdmsr
- movl PCB_GS(%r8),%gs
+ mov PCB_GS(%r8),%gs
wrmsr
- movl PCB_DS(%r8),%ds
- movl PCB_ES(%r8),%es
- movl PCB_FS(%r8),%fs
+ mov PCB_DS(%r8),%ds
+ mov PCB_ES(%r8),%es
+ mov PCB_FS(%r8),%fs
jmp restore_fsbase
/* Restore userland %gs while preserving kernel gsbase */
2: movq PCPU(GS32P),%rax
Modified: user/thompsa/usb/sys/amd64/amd64/fpu.c
==============================================================================
--- user/thompsa/usb/sys/amd64/amd64/fpu.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sys/amd64/amd64/fpu.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -391,6 +391,7 @@ fpudna()
{
struct pcb *pcb;
register_t s;
+ u_short control;
if (PCPU_GET(fpcurthread) == curthread) {
printf("fpudna: fpcurthread == curthread %d times\n",
@@ -421,6 +422,10 @@ fpudna()
* explicitly load sanitized registers.
*/
fxrstor(&fpu_cleanstate);
+ if (pcb->pcb_flags & PCB_32BIT) {
+ control = __INITIAL_FPUCW_I386__;
+ fldcw(&control);
+ }
pcb->pcb_flags |= PCB_FPUINITDONE;
} else
fxrstor(&pcb->pcb_save);
Modified: user/thompsa/usb/sys/amd64/amd64/io_apic.c
==============================================================================
--- user/thompsa/usb/sys/amd64/amd64/io_apic.c Sun Feb 1 00:51:25 2009 (r187970)
+++ user/thompsa/usb/sys/amd64/amd64/io_apic.c Sun Feb 1 01:04:31 2009 (r187971)
@@ -327,39 +327,56 @@ ioapic_assign_cpu(struct intsrc *isrc, u
{
struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
struct ioapic *io = (struct ioapic *)isrc->is_pic;
+ u_int old_vector;
+ u_int old_id;
+ /*
+ * keep 1st core as the destination for NMI
+ */
+ if (intpin->io_irq == IRQ_NMI)
+ apic_id = 0;
+
+ /*
+ * Set us up to free the old irq.
+ */
+ old_vector = intpin->io_vector;
+ old_id = intpin->io_cpu;
+ if (old_vector && apic_id == old_id)
+ return;
+
+ /*
+ * Allocate an APIC vector for this interrupt pin. Once
+ * we have a vector we program the interrupt pin.
+ */
intpin->io_cpu = apic_id;
+ intpin->io_vector = apic_alloc_vector(apic_id, intpin->io_irq);
if (bootverbose) {
- printf("ioapic%u: Assigning ", io->io_id);
+ printf("ioapic%u: routing intpin %u (", io->io_id,
+ intpin->io_intpin);
ioapic_print_irq(intpin);
- printf(" to local APIC %u\n", intpin->io_cpu);
+ printf(") to lapic %u vector %u\n", intpin->io_cpu,
+ intpin->io_vector);
}
ioapic_program_intpin(intpin);
+ /*
+ * Free the old vector after the new one is established. This is done
+ * to prevent races where we could miss an interrupt.
+ */
+ if (old_vector)
+ apic_free_vector(old_id, old_vector, intpin->io_irq);
}
static void
ioapic_enable_intr(struct intsrc *isrc)
{
struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
- struct ioapic *io = (struct ioapic *)isrc->is_pic;
- if (intpin->io_vector == 0) {
- /*
- * Allocate an APIC vector for this interrupt pin. Once
- * we have a vector we program the interrupt pin.
- */
- intpin->io_vector = apic_alloc_vector(intpin->io_irq);
- if (bootverbose) {
- printf("ioapic%u: routing intpin %u (", io->io_id,
- intpin->io_intpin);
- ioapic_print_irq(intpin);
- printf(") to vector %u\n", intpin->io_vector);
- }
- ioapic_program_intpin(intpin);
- apic_enable_vector(intpin->io_vector);
- }
+ if (intpin->io_vector == 0)
+ ioapic_assign_cpu(isrc, pcpu_find(0)->pc_apic_id);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list