thompsa [Fri, 19 Nov 2010 01:48:47 +0000 (01:48 +0000)]
MFC r212134
Change argument for usbd_get_dma_delay() from USB bus to USB device, some
embedded hardware needs to know exactly which device is in question before it
exactly can decide the required delay.
thompsa [Fri, 19 Nov 2010 01:47:46 +0000 (01:47 +0000)]
MFC r212133
Fix setting of the rx_max and tx_max variables. If the expected buffer size is
greater than 65535 bytes then the CDC driver might not work as expected, which
is not likely with the existing USB speeds.
thompsa [Fri, 19 Nov 2010 01:42:13 +0000 (01:42 +0000)]
MFC r212127
We need to grab a node reference count to vap->iv_bss before using it as it is
possible for the node to be replaced and freed at any time by
ieee80211_sta_join1().
thompsa [Fri, 19 Nov 2010 01:39:29 +0000 (01:39 +0000)]
MFC r211021
Sort this file a little better: the vendors are supposed to be sorted by
vendor ID in the vendor section, and by symbolic name in the product
section. Products are sorted by product ID. While here, get rid of a
duplicate Microsoft Mouse entry, revealed by sorting.
thompsa [Fri, 19 Nov 2010 01:30:59 +0000 (01:30 +0000)]
MFC r209452
- fix for USB audio devices which use the 7-byte endpoint descriptor instead of
the 9-byte one.
- remove sync-endpoint code, which is currently unused.
Reported by: Antun Matanovi
Submitted by: Hans Petter Selasky
thompsa [Fri, 19 Nov 2010 01:30:23 +0000 (01:30 +0000)]
MFC r209450
Reduce MIDI input buffer size to one USB packet, hence some USB devices don't
properly short terminate their transfers. This fixes a problem where input
appears several seconds late.
Reported by: Alexander Yerenkow
Submitted by: Hans Petter Selasky
thompsa [Fri, 19 Nov 2010 01:28:22 +0000 (01:28 +0000)]
MFC r209144
- Because hostapd calls iv_key_set() before if_init(), make sure key_set
callback function will be executed, and that the key won't be deleted during
the init process.
- txmic and rxmic are written into the chip the same place regardless of
opmode.
- Make the hardware generate 802.11 sequence numbers.
thompsa [Fri, 19 Nov 2010 01:23:09 +0000 (01:23 +0000)]
MFC r210275
- Support for Globetrotter iCON 452.
- Fixed the interface probe routine to only attach to USB interfaces the driver
actually supports. This allows other drivers to attach to things like
MicroSD slots etc.
- Fixed network interface enumeration to be globally sequential instead of
relying on the USB interface numbers. This make sure the first network
interface always is at uhso0 and the second at usho1 and so on.
- Added a radio kill switch; exposed through sysctl.
- Updated the manual page to be verbose about the number of serial ports and
include iCON 452 in the set of tested hardware.
jh [Thu, 18 Nov 2010 19:06:56 +0000 (19:06 +0000)]
MFC r215235:
Set FD_CLOEXEC for the output file only when the file has been specified
with the -o option. Setting the flag for stderr (the default) could
cause the traced process to redirect stderr to a random file.
marius [Thu, 18 Nov 2010 18:03:52 +0000 (18:03 +0000)]
MFC: r215348
Return from mii_attach() after calling bus_generic_attach(9) on the device_t
of the MAC driver in order to attach miibus(4) on the first pass instead of
falling through to also calling it on the device_t of miibus(4). The latter
code flow was intended to attach the PHY drivers the same way regardless of
whether it's the first or a repeated pass, modulo the bus_generic_attach()
call in miibus_attach() which shouldn't be there. However, it turned out
that these variants cause miibus(4) to be attached twice under certain
conditions when using MAC drivers as modules.
yongari [Thu, 18 Nov 2010 17:44:02 +0000 (17:44 +0000)]
MFC r215132,215194:
r215132:
Add basic WOL support for MCP ethernet controllers. It seems the
controller does not perform automatic switching from 1000Mbps link
to 10/100Mbps link when WOL is activated. Implement establishing
10/100Mps link with auto-negotiation in driver. Link status change
handler was modified to remove taskqueue based approach since driver
now needs synchronous handling for link establishment.
jilles [Wed, 17 Nov 2010 23:13:02 +0000 (23:13 +0000)]
MFC r215022: test: Move tests to tools/regression/bin/test.
Convert the tests to the perl prove format.
Remove obsolete TEST.README (results of an old TEST.sh for some old Unices)
and TEST.csh (old tests without correct values, far less complete than
TEST.sh).
alc [Wed, 17 Nov 2010 17:29:22 +0000 (17:29 +0000)]
MFC r209407, r209648, r209650
Introduce and use vm_page_next() and vm_page_prev(). They provide both
a simpler and faster interface for iterating over the pages of an object.
markm [Wed, 17 Nov 2010 17:12:41 +0000 (17:12 +0000)]
MFC: Add /bin/rmail symlink to mailwrapper if sendmail is not being built
and mailwrapper is being built. Ensure that it is not removed by
"make delete-old". Add Exim example to man page.
yongari [Tue, 16 Nov 2010 20:32:09 +0000 (20:32 +0000)]
MFC r215017,215025:
Follow the lead of vendor's interrupt moderation mechanism.
It seems RTL8169/RTL8168/RTL810xE has a kind of interrupt
moderation mechanism but it is not documented at all. The magic
value dramatically reduced number of interrupts without noticeable
performance drops so apply it to all RTL8169/RTL8169 controllers.
Vendor's FreeBSD driver also applies it to RTL810xE controllers but
their Linux driver explicitly cleared the register, so do not
enable interrupt moderation for RTL810xE controllers.
While I'm here sort 8169 specific registers.
Obtained from: RealTek FreeBSD driver
MFC r215025:
Only moderate TX completion interrupts. Relying on taskqueue to
suppress RX interrupts seems to give better RX performance than
RX interrupt moderation.
yongari [Tue, 16 Nov 2010 20:21:53 +0000 (20:21 +0000)]
MFC r214992:
Reduce spin wait time consumed in GMII register access routine.
There were a couple of attempts in the past to reduce it since it
took more than 1ms. Because mii_tick() periodically polls link
status, waiting more than 1ms for each GMII register access was
overkill. Unfortunately all previous attempts were failed with
various ways on different controllers.
This time, add additional 20us dealy at the end of GMII register
access which seems to requirement of all RealTek controllers to
issue next GMII register access request. This is the same way what
Linux does.
alc [Tue, 16 Nov 2010 04:40:27 +0000 (04:40 +0000)]
MFC r214953
In case the stack size reaches its limit and its growth must be
restricted, ensure that grow_amount is a multiple of the page size.
Otherwise, the kernel may crash in swap_reserve_by_uid() on HEAD and
FreeBSD 8.x, and produce a core file with a missing stack on FreeBSD
7.x.
yongari [Tue, 16 Nov 2010 00:32:17 +0000 (00:32 +0000)]
MFC r214968:
Use shorten model name instead of showing all controller model
numbers. bge(4) supports too many models such that it's
unreasonable to list all these controllers in one line description
of name. While I'm here mention that BCM590x/BCM5779x is Fast
Ethernet controller.
bge(4) still lacks support for some controllers but supporting
these controllers should be easy now and adding new controllers
do not require touching .Nd any more.
lstewart [Tue, 16 Nov 2010 00:01:44 +0000 (00:01 +0000)]
MFC r215153:
Standardise all Swinburne related copyright/licence statements throughout the
tree in preparation for another large code import. Swinburne University is the
legal entity that owns copyright and the 2-clause BSD licence is acceptable.
sobomax [Mon, 15 Nov 2010 17:48:13 +0000 (17:48 +0000)]
MFC r207554:
Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.
jilles [Sun, 14 Nov 2010 19:36:55 +0000 (19:36 +0000)]
MFC r213775: sh: Make DEBUG traces 64-bit clean:
- Use %t to print ptrdiff_t values.
- Cast a ptrdiff_t value explicitly to int for a field width specifier.
kientzle [Sat, 13 Nov 2010 06:00:27 +0000 (06:00 +0000)]
MFC r203568: Refactor and simplify the SIGINFO/SIGUSR1
handling. Switch to a custom function to format 64-bit
ints to avoid the headache of trying to guess printf
modifiers on different platforms.
kientzle [Sat, 13 Nov 2010 05:52:45 +0000 (05:52 +0000)]
MFC: Allow -b up to 8192. Folks working with
modern high-speed tape drives are routinely using
block sizes of 1MB (-b 2048), allowing up to 8192
should allow a little room for future growth.
yongari [Sat, 13 Nov 2010 01:09:44 +0000 (01:09 +0000)]
MFC r214844:
Add simple MAC statistics counter reading support. Unfortunately
useful counters like rl_missed_pkts is 16 bits quantity which is
too small to hold meaningful information happened in a second. This
means driver should frequently read these counters in order not to
lose accuracy and that approach is too inefficient in driver's
view. Moreover it seems there is no way to trigger an interrupt to
detect counter near-full or wraparound event as well as lacking
clearing the MAC counters. Another limitation of reading the
counters from RealTek controllers is lack of interrupt firing at
the end of DMA cycle of MAC counter read request such that driver
have to poll the end of the DMA which is a time consuming process
as well as inefficient. The more severe issue of the MAC counter
read request is it takes too long to complete the DMA. All these
limitation made maintaining MAC counters in driver impractical. For
now, just provide simple sysctl interface to trigger reading the
MAC counters. These counters could be used to track down driver
issues. Users can read MAC counters maintained in controller with
the following command.
#sysctl dev.re.0.stats=1
While I'm here add check for validity of dma map and allocated
memory before unloading/freeing them.
yongari [Sat, 13 Nov 2010 01:02:09 +0000 (01:02 +0000)]
MFC r214840:
Enable 64bit DMA addressing for RTL810xE/RTL8168/RTL8111 PCIe
controllers. Some old PCI controllers may work with DAC but it was
known to be buggy so 64bit DMA addressing is used only on PCIe
controllers.
yongari [Sat, 13 Nov 2010 00:58:34 +0000 (00:58 +0000)]
MFC r214899:
Fix a long standing bug in programming station address for Yukon
controllers. sk(4) never reprogrammed station address for Yukon
controllers so overriding station address with ifconfig(8) was not
possible.
Fix the bug by reprogramming all registers that control station
address, flow-control and virtual station address. Virtual station
address has no use at this moment since driver does not make use of
fail over feature.
mdf [Fri, 12 Nov 2010 18:09:06 +0000 (18:09 +0000)]
MFC r213813. This is a direct commit because the diff is against
several non-MFC'd changes.
Use a safer mechanism for determining if a task is currently running,
that does not rely on the lifetime of pointers being the same. This
also restores the task KBI.
brucec [Fri, 12 Nov 2010 11:22:59 +0000 (11:22 +0000)]
MFC r214279:
Mostly revert r203420, and add similar functionality into ada(4) since the
existing code caused problems with some SCSI controllers.
A new sysctl kern.cam.ada.spindown_shutdown has been added that controls
whether or not to spin-down disks when shutting down.
Spinning down the disks unloads/parks the heads - this is much better than
removing power when the disk is still spinning because otherwise an
Emergency Unload occurs which may cause damage to the actuator.
The FLUSH_CACHE + STANDBY_IMMEDIATE commands are issued following the
procedure documented in Fujitsu's MHW series product documentation under
section 1.10.1, "Recommended power-off sequence".
delphij [Fri, 12 Nov 2010 01:45:29 +0000 (01:45 +0000)]
MFC r214854:
Validate whether the zfs_cmd_t submitted from userland is not smaller than
what we have. Without the check the kernel could accessing memory that
does not belong to the request struct.
Note that we do not test if the struct equals in size at this time, which
may faciliate forward compatibility with newer binaries.
jhb [Thu, 11 Nov 2010 19:39:38 +0000 (19:39 +0000)]
MFC 211149,211151,211197,211518,215128:
Update various places that store or manipulate CPU masks to use cpumask_t
instead of int or u_int. Since cpumask_t is currently u_int on all
platforms this should just be a cosmetic change.
attilio [Wed, 10 Nov 2010 14:59:13 +0000 (14:59 +0000)]
Fix-up MFC r214446, r214516:
Use the appropriate SYSINIT() ordering between the arches.
This is intended as a fixup for r215059, so no further notes are merged.
kib [Wed, 10 Nov 2010 08:46:29 +0000 (08:46 +0000)]
MFC r214728:
If dlopen() is called for the dso that has been already loaded as a
dependency, then the dso never has its DAG initialized. Empty DAG
makes ref_dag() call in dlopen() a nop, and the dso refcount is off
by one.
Initialize the DAG on the first dlopen() call, using a boolean flag
to prevent double initialization.
MFC r214776:
Fix style.
MFC r214777:
Change init_dag() to not increment DAG refcount. Unconditionally call
both init_dag() and ref_dag() in dlopen() for the case when the object
was already loaded.
nork [Wed, 10 Nov 2010 05:22:12 +0000 (05:22 +0000)]
MFC 211249
This depends on ACPI, so only build on i386:i386, amd64:amd64 and
ia64:ia64. It can't possibly work on pc98, or any of the embedded
platforms, since they lack ACPI.
jilles [Tue, 9 Nov 2010 22:32:11 +0000 (22:32 +0000)]
MFC r198454: sh: Exempt $@ and $* from set -u
This seems more useful and will likely be in the next POSIX standard.
Also document more precisely in the man page what set -u does (note that
$@, $* and $! are the only special parameters that can ever be unset, all
the others are always set, although they may be empty).
marius [Tue, 9 Nov 2010 21:00:24 +0000 (21:00 +0000)]
MFC: r214873
- Move Sun Fire V240 to the list of known working machines.
- For the parallel stable/7 and stable/8 branches mention both releases that
first supported a particular sparc64 machine and update the sparc64 hardware
list regarding machines that will be supported beginning with 7.4-RELEASE.
jhb [Tue, 9 Nov 2010 20:00:23 +0000 (20:00 +0000)]
MFC 210939:
Add a new ipi_cpu() function to the MI IPI API that can be used to send an
IPI to a specific CPU by its cpuid. Replace calls to ipi_selected() that
constructed a mask for a single CPU with calls to ipi_cpu() instead.
OpenSolaris onnv-revision: 10209:91f47f0e7728 6830541 zfs_get_data_trips on a verify 6696242 multiple zfs_fillpage() zfs: accessing past end of object panics 6785914 zfs fails to drop dn_struct_rwlock in recovery code path
jhb [Tue, 9 Nov 2010 18:46:09 +0000 (18:46 +0000)]
MFC 214682:
Tweak the waitchannel messages for the dead lock detection kthread. Use
a shorter message (userland generally only sees the first 6 to 8
characters) when waiting for the allproc lock. Use "-" when idle to match
the behavior of other kthreads.