diff options
author | attilio <attilio@FreeBSD.org> | 2011-05-02 14:23:36 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2011-05-02 14:23:36 +0000 |
commit | fd4965df40517e8f3eac90b6e4aa7e03bb3b5370 (patch) | |
tree | 42e744cbff7dd7f803cf0d0e1fb69e96befa541c | |
parent | 8844d3fb82ff374bdbe0da16411eecfd786bbc77 (diff) | |
download | FreeBSD-src-fd4965df40517e8f3eac90b6e4aa7e03bb3b5370.zip FreeBSD-src-fd4965df40517e8f3eac90b6e4aa7e03bb3b5370.tar.gz |
MFC @ r221324
-rw-r--r-- | contrib/openresolv/resolvconf.conf.5.in | 2 | ||||
-rw-r--r-- | sbin/mount_nfs/Makefile | 2 | ||||
-rw-r--r-- | sbin/recoverdisk/recoverdisk.1 | 49 | ||||
-rw-r--r-- | sbin/recoverdisk/recoverdisk.c | 19 | ||||
-rw-r--r-- | share/man/man4/vxge.4 | 5 | ||||
-rw-r--r-- | share/misc/bsd-family-tree | 3 | ||||
-rw-r--r-- | sys/amd64/conf/GENERIC | 10 | ||||
-rw-r--r-- | sys/amd64/pci/pci_bus.c | 1 | ||||
-rw-r--r-- | sys/conf/NOTES | 7 | ||||
-rw-r--r-- | sys/conf/files | 1 | ||||
-rw-r--r-- | sys/conf/kern.mk | 21 | ||||
-rw-r--r-- | sys/conf/options | 3 | ||||
-rw-r--r-- | sys/dev/acpica/acpi_pcib_acpi.c | 1 | ||||
-rw-r--r-- | sys/dev/pci/pci.c | 1 | ||||
-rw-r--r-- | sys/dev/pci/pci_pci.c | 1 | ||||
-rw-r--r-- | sys/dev/wpi/if_wpi.c | 4 | ||||
-rw-r--r-- | sys/fs/nfs/nfs_commonport.c | 2 | ||||
-rw-r--r-- | sys/i386/conf/GENERIC | 10 | ||||
-rw-r--r-- | sys/i386/pci/pci_bus.c | 1 | ||||
-rw-r--r-- | sys/mips/atheros/ar724x_pci.c | 38 | ||||
-rw-r--r-- | sys/mips/conf/PB92.hints | 6 | ||||
-rw-r--r-- | sys/nfs/nfssvc.h | 1 | ||||
-rw-r--r-- | sys/x86/x86/mptable_pci.c | 1 | ||||
-rw-r--r-- | sys/x86/x86/nexus.c | 58 | ||||
-rwxr-xr-x | usr.bin/man/man.sh | 16 | ||||
-rw-r--r-- | usr.bin/nfsstat/nfsstat.1 | 3 | ||||
-rw-r--r-- | usr.bin/nfsstat/nfsstat.c | 9 |
27 files changed, 173 insertions, 102 deletions
diff --git a/contrib/openresolv/resolvconf.conf.5.in b/contrib/openresolv/resolvconf.conf.5.in index 9a47a1c..98a3017 100644 --- a/contrib/openresolv/resolvconf.conf.5.in +++ b/contrib/openresolv/resolvconf.conf.5.in @@ -43,7 +43,7 @@ Listed below are the standard .Nm variables that may be set. .Pp -After updaing this file, you may wish to run +After updating this file, you may wish to run .Nm resolvconf -u to apply the new configuration. .Sh RESOLVCONF OPTIONS diff --git a/sbin/mount_nfs/Makefile b/sbin/mount_nfs/Makefile index 3068f0b..cccc517 100644 --- a/sbin/mount_nfs/Makefile +++ b/sbin/mount_nfs/Makefile @@ -5,7 +5,7 @@ PROG= mount_nfs SRCS= mount_nfs.c getmntopts.c mounttab.c MAN= mount_nfs.8 -MLINKS= mount_nfs.8 mount_newnfs.8 +MLINKS= mount_nfs.8 mount_oldnfs.8 MOUNT= ${.CURDIR}/../mount UMNTALL= ${.CURDIR}/../../usr.sbin/rpc.umntall diff --git a/sbin/recoverdisk/recoverdisk.1 b/sbin/recoverdisk/recoverdisk.1 index 1759a7d..9eff8f7 100644 --- a/sbin/recoverdisk/recoverdisk.1 +++ b/sbin/recoverdisk/recoverdisk.1 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 6, 2006 +.Dd May 1, 2011 .Dt RECOVERDISK 1 .Os .Sh NAME @@ -33,17 +33,20 @@ .Sh SYNOPSIS .Nm .Op Fl b Ar bigsize -.Op Fl r Ar rlist -.Op Fl s Ar snapshot -.Op Fl w Ar wlist -.Ar special -.Op Ar file +.Op Fl r Ar readlist +.Op Fl s Ar interval +.Op Fl w Ar writelist +.Ar source +.Op Ar destination .Sh DESCRIPTION The .Nm utility reads data from the -.Ar special +.Ar source file until all blocks could be successfully read. +If +.Ar destination +was specified all data is being written to that file. It starts reading in multiples of the sector size. Whenever a block fails, it is put to the end of the working queue and will be read again, possibly with a smaller read size. @@ -59,13 +62,13 @@ The options are as follows: The size of reads attempted first. The middle pass is roughly the logarithmic average of the bigsize and the sectorsize. -.It Fl r Ar rlist +.It Fl r Ar readlist Read the list of blocks and block sizes to read from the specified file. -.It Fl s Ar snapshot -How often we should update the worklist file while things go OK. -The default is 60 and the units is "progress messages" so if things +.It Fl s Ar interval +How often we should update the writelist file while things go OK. +The default is 60 and the unit is "progress messages" so if things go well, this is the same as once per minute. -.It Fl w Ar wlist +.It Fl w Ar writelist Write the list of remaining blocks to read to the specified file if .Nm is aborted via @@ -102,20 +105,19 @@ Percent complete. .Sh EXAMPLES .Bd -literal # recover data from failing hard drive ad3 -touch /data/lots_of_space -recoverdisk /dev/ad3 /data/lots_of_space +recoverdisk /dev/ad3 /data/disk.img # clone a hard disk recoverdisk /dev/ad3 /dev/ad4 # read an ISO image from a CD-ROM -touch /data/cd.iso; recoverdisk /dev/acd0 /data/cd.iso +recoverdisk /dev/cd0 /data/cd.iso # continue reading from a broken CD and update the existing worklist -recoverdisk -r worklist -w worklist /dev/acd0 /data/cd.iso +recoverdisk -r worklist -w worklist /dev/cd0 /data/cd.iso # recover a single file from the unreadable media -touch file.avi; recoverdisk /cdrom/file.avi file.avi +recoverdisk /cdrom/file.avi file.avi # If the disk hangs the system on read-errors try: recoverdisk -b 0 /dev/ad3 /somewhere @@ -133,7 +135,7 @@ utility first appeared in The original implementation was done by .An Poul-Henning Kamp Aq phk@FreeBSD.org with minor improvements from -.An Ulrich Sp\(:orlein Aq uspoerlein@gmail.com . +.An Ulrich Sp\(:orlein Aq uqs@FreeBSD.org . .Pp This manual page was written by .An Ulrich Sp\(:orlein . @@ -144,4 +146,13 @@ This is due to the DMA reads being split up into blocks of at most 128kB. These reads then fail if the sectorsize is not a divisor of 128kB. When reading a full raw audio CD, this leads to roughly 700 error messages flying by. -This is harmless. +This is harmless and can be avoided by setting +.Fl b +to no more than 128kB. +.\".Pp +.\"When reading from optical media, a bug in the GEOM framework will +.\"prevent it from seeing that the media has been removed. +.\"The device can still be opened, but all reads will fail. +.\"This is usually harmless, but will send +.\".Nm +.\"into an infinite loop. diff --git a/sbin/recoverdisk/recoverdisk.c b/sbin/recoverdisk/recoverdisk.c index f4a6b5d..3930ef1 100644 --- a/sbin/recoverdisk/recoverdisk.c +++ b/sbin/recoverdisk/recoverdisk.c @@ -86,7 +86,7 @@ save_worklist(void) if (file == NULL) err(1, "Error opening file %s", wworklist); - TAILQ_FOREACH(llp, &lumps, list) + TAILQ_FOREACH(llp, &lumps, list) fprintf(file, "%jd %jd %d\n", (intmax_t)llp->start, (intmax_t)llp->len, llp->state); @@ -134,8 +134,8 @@ read_worklist(off_t t) static void usage(void) { - (void)fprintf(stderr, - "usage: recoverdisk [-r worklist] [-w worklist] source-drive [destination]\n"); + (void)fprintf(stderr, "usage: recoverdisk [-b bigsize] [-r readlist] " + "[-s interval] [-w writelist] source [destination]\n"); exit(1); } @@ -153,7 +153,7 @@ main(int argc, char * const argv[]) int fdr, fdw; off_t t, d, start, len; size_t i, j; - int error, flags, state; + int error, state; u_char *buf; u_int sectorsize; time_t t1, t2; @@ -196,7 +196,6 @@ main(int argc, char * const argv[]) error = fstat(fdr, &sb); if (error < 0) err(1, "fstat failed"); - flags = O_WRONLY; if (S_ISBLK(sb.st_mode) || S_ISCHR(sb.st_mode)) { error = ioctl(fdr, DIOCGSECTORSIZE, §orsize); if (error < 0) @@ -210,7 +209,6 @@ main(int argc, char * const argv[]) err(1, "DIOCGMEDIASIZE failed"); } else { t = sb.st_size; - flags |= O_CREAT | O_TRUNC; } if (bigsize < minsize) @@ -229,9 +227,12 @@ main(int argc, char * const argv[]) err(1, "Cannot allocate %zu bytes buffer", bigsize); if (argc > 1) { - fdw = open(argv[1], flags, DEFFILEMODE); + fdw = open(argv[1], O_WRONLY | O_CREAT, DEFFILEMODE); if (fdw < 0) err(1, "Cannot open write descriptor %s", argv[1]); + if (ftruncate(fdw, t) < 0) + err(1, "Cannot truncate output %s to %jd bytes", + argv[1], (intmax_t)t); } else fdw = -1; @@ -292,6 +293,10 @@ main(int argc, char * const argv[]) } printf("\n%jd %zu failed (%s)\n", lp->start, i, strerror(errno)); + if (errno == EINVAL) { + printf("read() size too big? Try with -b 131072"); + aborting = 1; + } if (errno == ENXIO) aborting = 1; new_lump(lp->start, i, lp->state + 1); diff --git a/share/man/man4/vxge.4 b/share/man/man4/vxge.4 index 9f4f9b4..72a644d 100644 --- a/share/man/man4/vxge.4 +++ b/share/man/man4/vxge.4 @@ -49,13 +49,12 @@ The .Nm driver provides support for Neterion X3100 adapters. The driver supports TCP Segmentation Offload (TSO/LSO), -Large Receive Offlaod (LRO), Jumbo Frames, Receive Traffic Hash (RTH), +Large Receive Offload (LRO), Jumbo Frames, Receive Traffic Hash (RTH), VLAN, Promiscuous mode and Multi function mode. .Pp - The .Nm -driver supports following function modes: +driver supports the following function modes: .Bd -ragged -offset indent .Cd "SF1_VP17 - 1 function with 17 VPATHs" .Ed diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 23a85ee..1d20448 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -246,7 +246,7 @@ FreeBSD 5.2 | | | | | | | | | NetBSD 5.1 | | | FreeBSD FreeBSD | | | | | 8.2 7.4 | | | DragonFly 2.10.1 - | v | | | | + | v | | OpenBSD 4.9 | | | | | | FreeBSD 9 -current | NetBSD -current OpenBSD -current | | | | | | @@ -533,6 +533,7 @@ NetBSD 5.1 2010-11-19 [NBD] FreeBSD 7.4 2011-02-24 [FBD] FreeBSD 8.2 2011-02-24 [FBD] DragonFly 2.10.1 2011-04-26 [DFB] +OpenBSD 4.9 2011-05-01 [OBD] Bibliography ------------------------ diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index e20bc6f..33c142c 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -261,8 +261,16 @@ device ath_pci # Atheros pci/cardbus glue device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors device ath_rate_sample # SampleRate tx rate control for ath +#device bwi # Broadcom BCM430x/BCM431x wireless NICs. +#device bwn # Broadcom BCM43xx wireless NICs. +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. +device wpi # Intel 3945ABG wireless NICs. # Pseudo devices. device loop # Network loopback @@ -314,7 +322,9 @@ device rue # RealTek RTL8150 USB Ethernet device udav # Davicom DM9601E USB # USB Wireless device rum # Ralink Technology RT2501USB wireless NICs +device run # Ralink Technology RT2700/RT2800/RT3000 NICs. device uath # Atheros AR5523 wireless NICs +device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs diff --git a/sys/amd64/pci/pci_bus.c b/sys/amd64/pci/pci_bus.c index e943df1..0f33cdf 100644 --- a/sys/amd64/pci/pci_bus.c +++ b/sys/amd64/pci/pci_bus.c @@ -348,6 +348,7 @@ static device_method_t legacy_pcib_methods[] = { DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 1c02247..94311c6 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1940,6 +1940,8 @@ device xmphy # XaQti XMAC II # lge: Support for PCI gigabit ethernet adapters based on the Level 1 # LXT1001 NetCellerator chipset. This includes the D-Link DGE-500SX, # SMC TigerCard 1000 (SMC9462SX), and some Addtron cards. +# malo: Marvell Libertas wireless NICs. +# mwl: Marvell 88W8363 802.11n wireless NICs. # msk: Support for gigabit ethernet adapters based on the Marvell/SysKonnect # Yukon II Gigabit controllers, including 88E8021, 88E8022, 88E8061, # 88E8062, 88E8035, 88E8036, 88E8038, 88E8050, 88E8052, 88E8053, @@ -2131,6 +2133,8 @@ options AH_RXCFG_SDMAMW_4BYTES device ath_rate_sample # SampleRate tx rate control for ath device bwi # Broadcom BCM430* BCM431* device bwn # Broadcom BCM43xx +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. # Use "private" jumbo buffers allocated exclusively for the ti(4) driver. @@ -2727,6 +2731,9 @@ device run # Atheros AR5523 wireless driver device uath # +# Conexant/Intersil PrismGT wireless driver +device upgt +# # Ralink Technology RT2500USB wireless driver device ural # diff --git a/sys/conf/files b/sys/conf/files index 2280eca..5488f69 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1995,6 +1995,7 @@ dev/wi/if_wi.c optional wi dev/wi/if_wi_pccard.c optional wi pccard dev/wi/if_wi_pci.c optional wi pci dev/wl/if_wl.c optional wl isa +dev/wpi/if_wpi.c optional wpi pci wpifw.c optional wpifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:153229 -mwpi -c${.TARGET}" \ no-implicit-rule before-depend local \ diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk index 1e58378..23ad3e2 100644 --- a/sys/conf/kern.mk +++ b/sys/conf/kern.mk @@ -3,24 +3,25 @@ # # Warning flags for compiling the kernel and components of the kernel. # -# Note that the newly added -Wcast-qual is responsible for generating +# Note that the newly added -Wcast-qual is responsible for generating # most of the remaining warnings. Warnings introduced with -Wall will # also pop up, but are easier to fix. CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ - -Wundef -Wno-pointer-sign -fformat-extensions + -Wundef -Wno-pointer-sign -fformat-extensions \ + -Wmissing-include-dirs # # The following flags are next up for working on: -# -W +# -Wextra # -# On the i386, do not align the stack to 16-byte boundaries. Otherwise GCC -# 2.95 adds code to the entry and exit point of every function to align the +# On i386, do not align the stack to 16-byte boundaries. Otherwise GCC 2.95 +# and above adds code to the entry and exit point of every function to align the # stack to 16-byte boundaries -- thus wasting approximately 12 bytes of stack -# per function call. While the 16-byte alignment may benefit micro benchmarks, +# per function call. While the 16-byte alignment may benefit micro benchmarks, # it is probably an overall loss as it makes the code bigger (less efficient # use of code cache tag lines) and uses more stack (less efficient use of data -# cache tag lines). Explicitly prohibit the use of SSE and other SIMD +# cache tag lines). Explicitly prohibit the use of FPU, SSE and other SIMD # operations inside the kernel itself. These operations are exclusively # reserved for user applications. # @@ -35,6 +36,7 @@ INLINE_LIMIT?= 8000 .if ${MACHINE_CPUARCH} == "arm" INLINE_LIMIT?= 8000 .endif + # # For IA-64, we use r13 for the kernel globals pointer and we only use # a very small subset of float registers for integer divides. @@ -98,7 +100,7 @@ INLINE_LIMIT?= 8000 CFLAGS+= -ffreestanding # -# GCC SSP support. +# GCC SSP support # .if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \ ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" @@ -106,9 +108,8 @@ CFLAGS+= -fstack-protector .endif # -# Enable CTF conversation on request. +# Enable CTF conversation on request # .if defined(WITH_CTF) .undef NO_CTF .endif - diff --git a/sys/conf/options b/sys/conf/options index 25f171a..4ddb9fa 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -775,6 +775,8 @@ ATH_ENABLE_11N opt_ah.h # options for the Atheros hal AH_SUPPORT_AR5416 opt_ah.h +# XXX For now, this breaks non-AR9130 chipsets, so only use it +# XXX when actually targetting AR9130. AH_SUPPORT_AR9130 opt_ah.h AH_DEBUG opt_ah.h @@ -791,6 +793,7 @@ AH_MAXCHAN opt_ah.h AH_RXCFG_SDMAMW_4BYTES opt_ah.h # AR5416 and later interrupt mitigation +# XXX do not use this for AR9130 AH_AR5416_INTERRUPT_MITIGATION opt_ah.h # options for the Broadcom BCM43xx driver (bwi) diff --git a/sys/dev/acpica/acpi_pcib_acpi.c b/sys/dev/acpica/acpi_pcib_acpi.c index 2ea9f2c..49367d0 100644 --- a/sys/dev/acpica/acpi_pcib_acpi.c +++ b/sys/dev/acpica/acpi_pcib_acpi.c @@ -100,6 +100,7 @@ static device_method_t acpi_pcib_acpi_methods[] = { DEVMETHOD(bus_read_ivar, acpi_pcib_read_ivar), DEVMETHOD(bus_write_ivar, acpi_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, acpi_pcib_acpi_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index e14dc93..70d5590 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -142,6 +142,7 @@ static device_method_t pci_methods[] = { DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), DEVMETHOD(bus_delete_resource, pci_delete_resource), DEVMETHOD(bus_alloc_resource, pci_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource), DEVMETHOD(bus_activate_resource, pci_activate_resource), DEVMETHOD(bus_deactivate_resource, pci_deactivate_resource), diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 199c132..eaaf6d3 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -73,6 +73,7 @@ static device_method_t pcib_methods[] = { DEVMETHOD(bus_read_ivar, pcib_read_ivar), DEVMETHOD(bus_write_ivar, pcib_write_ivar), DEVMETHOD(bus_alloc_resource, pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), diff --git a/sys/dev/wpi/if_wpi.c b/sys/dev/wpi/if_wpi.c index 53ad7f3..e1fffe1 100644 --- a/sys/dev/wpi/if_wpi.c +++ b/sys/dev/wpi/if_wpi.c @@ -2298,7 +2298,7 @@ wpi_mrr_setup(struct wpi_softc *sc) } /* setup MRR for control frames */ - mrr.which = htole32(WPI_MRR_CTL); + mrr.which = WPI_MRR_CTL; error = wpi_cmd(sc, WPI_CMD_MRR_SETUP, &mrr, sizeof mrr, 0); if (error != 0) { device_printf(sc->sc_dev, @@ -2307,7 +2307,7 @@ wpi_mrr_setup(struct wpi_softc *sc) } /* setup MRR for data frames */ - mrr.which = htole32(WPI_MRR_DATA); + mrr.which = WPI_MRR_DATA; error = wpi_cmd(sc, WPI_CMD_MRR_SETUP, &mrr, sizeof mrr, 0); if (error != 0) { device_printf(sc->sc_dev, diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index 2073d26..d9780e4 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -404,6 +404,8 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred) } else if (uap->flag & NFSSVC_GETSTATS) { error = copyout(&newnfsstats, CAST_USER_ADDR_T(uap->argp), sizeof (newnfsstats)); + if ((uap->flag & NFSSVC_ZEROSTATS) != 0 && error == 0) + bzero(&newnfsstats, sizeof(newnfsstats)); return (error); } else if (uap->flag & NFSSVC_NFSUSERDPORT) { u_short sockport; diff --git a/sys/i386/conf/GENERIC b/sys/i386/conf/GENERIC index 5d80a43..c8f8363 100644 --- a/sys/i386/conf/GENERIC +++ b/sys/i386/conf/GENERIC @@ -273,9 +273,17 @@ device ath_pci # Atheros pci/cardbus glue device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors device ath_rate_sample # SampleRate tx rate control for ath +#device bwi # Broadcom BCM430x/BCM431x wireless NICs. +#device bwn # Broadcom BCM43xx wireless NICs. +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. +device wpi # Intel 3945ABG wireless NICs. # Pseudo devices. device loop # Network loopback @@ -327,7 +335,9 @@ device rue # RealTek RTL8150 USB Ethernet device udav # Davicom DM9601E USB # USB Wireless device rum # Ralink Technology RT2501USB wireless NICs +device run # Ralink Technology RT2700/RT2800/RT3000 NICs. device uath # Atheros AR5523 wireless NICs +device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs diff --git a/sys/i386/pci/pci_bus.c b/sys/i386/pci/pci_bus.c index b7fa7d1..eb26b86 100644 --- a/sys/i386/pci/pci_bus.c +++ b/sys/i386/pci/pci_bus.c @@ -565,6 +565,7 @@ static device_method_t legacy_pcib_methods[] = { DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), diff --git a/sys/mips/atheros/ar724x_pci.c b/sys/mips/atheros/ar724x_pci.c index 827e701..36586a2 100644 --- a/sys/mips/atheros/ar724x_pci.c +++ b/sys/mips/atheros/ar724x_pci.c @@ -57,8 +57,7 @@ __FBSDID("$FreeBSD$"); #include <mips/atheros/ar71xxreg.h> #include <mips/atheros/ar724xreg.h> #include <mips/atheros/ar71xx_setup.h> -#include <mips/atheros/ar71xx_pci_bus_space.h> /* XXX */ -#include <mips/atheros/ar71xx_bus_space_reversed.h> /* XXX */ +#include <mips/atheros/ar71xx_pci_bus_space.h> #include <mips/atheros/ar71xx_cpudef.h> @@ -113,7 +112,7 @@ static uint32_t ar724x_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes) { - uint32_t cmd, data, shift, mask; + uint32_t data, shift, mask; /* Register access is 32-bit aligned */ shift = (reg & 3) * 8; @@ -125,18 +124,9 @@ ar724x_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, dprintf("%s: tag (%x, %x, %x) reg %d(%d)\n", __func__, bus, slot, func, reg, bytes); - if ((bus == 0) && (slot == 0) && (func == 0)) { + if ((bus == 0) && (slot == 0) && (func == 0)) data = ATH_READ_REG(AR724X_PCI_CFG_BASE + (reg & ~3)); - /* - * WAR for BAR issue - We are unable to access the PCI device - * space if we set the BAR with proper base address. - */ - if (reg == PCIR_BAR(0) && bytes == 4) { - cmd = (ar71xx_soc == AR71XX_SOC_AR7240) ? - 0xffff : 0x1000ffff; - ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, cmd, bytes); - } - } else + else data = -1; /* Get request bytes from 32-bit word */ @@ -158,14 +148,14 @@ ar724x_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func, if ((bus != 0) || (slot != 0) || (func != 0)) return; - ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, data, bytes); /* - * WAR for BAR issue - We are unable to access the PCI device space - * if we set the BAR with proper base address. - * Force a flush here (at register writing). + * WAR for BAR issue on AR7240 - We are unable to access the PCI device + * space if we set the BAR with proper base address. */ - if (reg == PCIR_BAR(0) && bytes == 4) - (void)ar724x_pci_read_config(dev, bus, slot, func, reg, bytes); + if (reg == PCIR_BAR(0) && bytes == 4 && ar71xx_soc == AR71XX_SOC_AR7240) + ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, 0xffff, bytes); + else + ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, data, bytes); } static void @@ -232,6 +222,9 @@ ar724x_pci_setup(device_t dev) else reg = 0x1ffc1; ATH_WRITE_REG(AR724X_PCI_APP, reg); + /* Flush write */ + (void) ATH_READ_REG(AR724X_PCI_APP); + DELAY(1000); reg = ATH_READ_REG(AR724X_PCI_RESET); @@ -457,10 +450,7 @@ ar724x_pci_activate_resource(device_t bus, device_t child, int type, int rid, case SYS_RES_MEMORY: case SYS_RES_IOPORT: - /* XXX */ - //rman_set_bustag(r, ar71xx_bus_space_pcimem); - //rman_set_bustag(r, mips_bus_space_generic); - rman_set_bustag(r, ar71xx_bus_space_reversed); + rman_set_bustag(r, ar71xx_bus_space_pcimem); break; } } diff --git a/sys/mips/conf/PB92.hints b/sys/mips/conf/PB92.hints index 9e9b122..014e62f 100644 --- a/sys/mips/conf/PB92.hints +++ b/sys/mips/conf/PB92.hints @@ -30,7 +30,11 @@ hint.arge.0.at="nexus0" hint.arge.0.maddr=0x19000000 hint.arge.0.msize=0x1000 hint.arge.0.irq=2 -hint.arge.0.phymask=0x1 + +# AR8316 workaround for now +hint.arge.0.media=1000 +hint.arge.0.fduplex=1 +hint.arge.0.phymask=0x3 # GPIO hint.gpio.0.at="apb0" diff --git a/sys/nfs/nfssvc.h b/sys/nfs/nfssvc.h index d756dbf..e226e2b 100644 --- a/sys/nfs/nfssvc.h +++ b/sys/nfs/nfssvc.h @@ -64,5 +64,6 @@ #define NFSSVC_CBADDSOCK 0x00200000 #define NFSSVC_GETSTATS 0x00400000 #define NFSSVC_BACKUPSTABLE 0x00800000 +#define NFSSVC_ZEROSTATS 0x01000000 /* modifier for GETSTATS */ #endif /* _NFS_NFSSVC_H */ diff --git a/sys/x86/x86/mptable_pci.c b/sys/x86/x86/mptable_pci.c index 398444c..c2b6cee 100644 --- a/sys/x86/x86/mptable_pci.c +++ b/sys/x86/x86/mptable_pci.c @@ -116,6 +116,7 @@ static device_method_t mptable_hostb_methods[] = { DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), diff --git a/sys/x86/x86/nexus.c b/sys/x86/x86/nexus.c index 3564078..9ead8c8 100644 --- a/sys/x86/x86/nexus.c +++ b/sys/x86/x86/nexus.c @@ -100,6 +100,8 @@ static device_t nexus_add_child(device_t bus, u_int order, const char *name, int unit); static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); +static int nexus_adjust_resource(device_t, device_t, int, struct resource *, + u_long, u_long); #ifdef SMP static int nexus_bind_intr(device_t, device_t, struct resource *, int); #endif @@ -144,6 +146,7 @@ static device_method_t nexus_methods[] = { DEVMETHOD(bus_print_child, nexus_print_child), DEVMETHOD(bus_add_child, nexus_add_child), DEVMETHOD(bus_alloc_resource, nexus_alloc_resource), + DEVMETHOD(bus_adjust_resource, nexus_adjust_resource), DEVMETHOD(bus_release_resource, nexus_release_resource), DEVMETHOD(bus_activate_resource, nexus_activate_resource), DEVMETHOD(bus_deactivate_resource, nexus_deactivate_resource), @@ -332,6 +335,23 @@ nexus_add_child(device_t bus, u_int order, const char *name, int unit) return(child); } +static struct rman * +nexus_rman(int type) +{ + switch (type) { + case SYS_RES_IRQ: + return (&irq_rman); + case SYS_RES_DRQ: + return (&drq_rman); + case SYS_RES_IOPORT: + return (&port_rman); + case SYS_RES_MEMORY: + return (&mem_rman); + default: + return (NULL); + } +} + /* * Allocate a resource on behalf of child. NB: child is usually going to be a * child of one of our descendants, not a direct child of nexus0. @@ -364,27 +384,9 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid, } flags &= ~RF_ACTIVE; - - switch (type) { - case SYS_RES_IRQ: - rm = &irq_rman; - break; - - case SYS_RES_DRQ: - rm = &drq_rman; - break; - - case SYS_RES_IOPORT: - rm = &port_rman; - break; - - case SYS_RES_MEMORY: - rm = &mem_rman; - break; - - default: - return 0; - } + rm = nexus_rman(type); + if (rm == NULL) + return (NULL); rv = rman_reserve_resource(rm, start, end, count, flags, child); if (rv == 0) @@ -402,6 +404,20 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid, } static int +nexus_adjust_resource(device_t bus, device_t child, int type, + struct resource *r, u_long start, u_long end) +{ + struct rman *rm; + + rm = nexus_rman(type); + if (rm == NULL) + return (ENXIO); + if (!rman_is_region_manager(r, rm)) + return (EINVAL); + return (rman_adjust_resource(r, start, end)); +} + +static int nexus_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh index 147ce58..f1c91ee 100755 --- a/usr.bin/man/man.sh +++ b/usr.bin/man/man.sh @@ -889,16 +889,18 @@ do_whatis() { search_whatis whatis "$@" } -EQN=/usr/bin/eqn +# User's PATH setting decides on the groff-suite to pick up. +EQN=eqn +NROFF='groff -S -P-c -Wall -mtty-char -man' +PIC=pic +REFER=refer +TBL=tbl +TROFF='groff -S -P-c -man' +VGRIND=vgrind + COL=/usr/bin/col LOCALE=/usr/bin/locale -NROFF='/usr/bin/groff -S -Wall -mtty-char -man' -PIC=/usr/bin/pic SYSCTL=/sbin/sysctl -TBL=/usr/bin/tbl -TROFF='/usr/bin/groff -S -man' -REFER=/usr/bin/refer -VGRIND=/usr/bin/vgrind debug=0 man_default_sections='1:1aout:8:2:3:n:4:5:6:7:9:l' diff --git a/usr.bin/nfsstat/nfsstat.1 b/usr.bin/nfsstat/nfsstat.1 index fcd4c00..c05d8cd 100644 --- a/usr.bin/nfsstat/nfsstat.1 +++ b/usr.bin/nfsstat/nfsstat.1 @@ -28,7 +28,7 @@ .\" From: @(#)nfsstat.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd October 18, 2007 +.Dd May 1, 2011 .Dt NFSSTAT 1 .Os .Sh NAME @@ -78,7 +78,6 @@ activity for both the client and server at second intervals. .It Fl z Reset statistics after displaying them. -(Not currently supported by the experimental nfs subsystem.) .It Fl e Gather statistics from the experimental nfs subsystem that includes support for NFSv4 instead of the regular nfs subsystem. diff --git a/usr.bin/nfsstat/nfsstat.c b/usr.bin/nfsstat/nfsstat.c index 81a2260..dfbecc7 100644 --- a/usr.bin/nfsstat/nfsstat.c +++ b/usr.bin/nfsstat/nfsstat.c @@ -85,6 +85,7 @@ static int zflag = 0; static int run_v4 = 0; static int printtitle = 1; static struct ext_nfsstats ext_nfsstats; +static int nfssvc_flag; void intpr(int, int); void printhdr(int, int); @@ -107,6 +108,7 @@ main(int argc, char **argv) char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; + nfssvc_flag = NFSSVC_GETSTATS; interval = 0; memf = nlistf = NULL; while ((ch = getopt(argc, argv, "cesWM:N:w:z")) != -1) @@ -135,6 +137,7 @@ main(int argc, char **argv) break; case 'z': zflag = 1; + nfssvc_flag |= NFSSVC_ZEROSTATS; break; case 'e': run_v4 = 1; @@ -161,7 +164,7 @@ main(int argc, char **argv) errx(1, "experimental client/server not loaded"); if (run_v4 != 0) { - if (nfssvc(NFSSVC_GETSTATS, &ext_nfsstats) < 0) + if (nfssvc(nfssvc_flag, &ext_nfsstats) < 0) err(1, "Can't get stats"); } else if (nlistf != NULL || memf != NULL) { deadkernel = 1; @@ -793,13 +796,13 @@ exp_sidewaysintpr(u_int interval, int clientOnly, int serverOnly) int hdrcnt = 1; ext_nfsstatsp = &lastst; - if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0) + if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0) err(1, "Can't get stats"); sleep(interval); for (;;) { ext_nfsstatsp = &nfsstats; - if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0) + if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0) err(1, "Can't get stats"); if (--hdrcnt == 0) { |