dougb [Sun, 19 Dec 2010 20:10:48 +0000 (20:10 +0000)]
MFC r215824:
Add a sync to the shutdown step. In the common case this will be
harmless at worst. On a heavily loaded server it will give the fs a
chance to do its business without the axe hanging over its head.
mlaier [Sun, 19 Dec 2010 06:07:35 +0000 (06:07 +0000)]
MFC r216335:
Fix a long standing (from the original 4.4BSD lite sources) race between
vmspace_fork and vm_map_wire that would lead to "vm_fault_copy_wired: page
missing" panics. While faulting in pages for a map entry that is being
wired down, mark the containing map as busy. In vmspace_fork wait until
the map is unbusy, before we try to copy the entries.
brucec [Thu, 16 Dec 2010 14:57:06 +0000 (14:57 +0000)]
MFC r216407:
USB probing often takes a long time and finishes finding devices after init
has started. In the case of sysinstall, this means that it has already built
its list of devices before probing finishes. Add a hint for users who have
booted from a USB stick only to find that sysinstall can't find it.
jfv [Wed, 15 Dec 2010 22:59:50 +0000 (22:59 +0000)]
MFC r216173
Remove the test for a minimum frame size from the IPV6 TX context
descriptor setup, when using VLANs and HW TAGGING the length of
an ICMP6 frame will fail this test and be discarded.
kib [Wed, 15 Dec 2010 15:25:56 +0000 (15:25 +0000)]
MFC r216255:
Update some comments related to use of amd64 full context switch.
In exec_linux_setregs(), use locally cached pointer to pcb to set
pcb_full_iret.
In set_regs(), note that full return is needed when code that sets
segment registers is enabled.
kib [Wed, 15 Dec 2010 15:15:42 +0000 (15:15 +0000)]
MFC r216394:
In fpudna()/npxdna(), mark FPU context initialized and optionally
mark user FPU context initialized, if current context is user context.
It was reversed in r215865, by inadequate change of this code fragment
to a call to fpuuserinited()/npxuserinited().
jfv [Tue, 14 Dec 2010 19:59:39 +0000 (19:59 +0000)]
MFC r216172, r216176:
Correct the RX discard and refresh_mbuf logic to match igb, the old
discard code could cause panics due to a bad pointer, now simply
have discard always free mbufs and depend on refresh. In the refresh
code, make sure the mbuf and soft buf struct are properly reset.
mm [Tue, 14 Dec 2010 15:36:47 +0000 (15:36 +0000)]
MFC r208683, r210999, r212385:
MFC r208683 (pjd):
Fix a bug where resilver is not started automatically on pool import or load.
If disk was missing on pool load or import and on next pool load or import
it was present, resilver wasn't started automatically and ZFS reported all
disks as ONLINE and healthy. Then, when another disk died, pool became
unaccessible, because if it was 2-way mirror or RAIDZ1 two vdevs were
out of sync.
To fix the problem, start resilver automatically on pool load or import.
Obtained from: OpenSolaris
MFC r210999 (pjd):
In FreeBSD we use 'jailed' property.
MFC r212385 (pjd):
On FreeBSD we can log from pool that have multiple top-level vdevs or log
vdevs, so don't deny adding new vdevs if bootfs property is set.
tijl [Tue, 14 Dec 2010 15:33:48 +0000 (15:33 +0000)]
MFC r216351:
Add a .note.ABI-tag section to ia64 startup files by linking crtbrand.c
in crt1.o. On other architectures crtbrand.c is included from crt1.c,
but that's not a C source code file on ia64. Instead it is compiled
separately and included in crt1.o using incremental linking.
rmacklem [Tue, 14 Dec 2010 13:45:57 +0000 (13:45 +0000)]
MFC: r216330
Disable attempts to establish a callback connection from the
experimental NFSv4 server to a NFSv4 client when delegations are not
being issued, even if the client advertises a callback path.
This avoids a problem where a Linux client advertises a
callback path that doesn't work, due to a firewall, and then
times out an Open attempt before the FreeBSD server gives up
its callback connection attempt. (Suggested by
drb at karlov.mff.cuni.cz.) The server should probably have
a 1sec timeout on callback connection attempts when there are
no delegations issued to the client, but that patch will require
changes to the krpc and this serves as a work around until then.
Tested by: drb at karlov.mff.cuni.cz
Approved by: re (kib)
bschmidt [Mon, 13 Dec 2010 17:56:31 +0000 (17:56 +0000)]
MFC r216237:
Fixes for monitor mode:
- Do not call iwn_calib_reset() for monitor mode. We do not want to query
information and do runtime calibration while in monitor mode. Poking the
firmware with adjustments for calibration results in firmware asserts.
This could happened on RUN -> RUN transition only.
- Adjust blink rate for monitor mode. It's supposed to not freak out and
turn off after a while.
- While here, remove one useless assignment of calib.state, it gets
overwritten later in the function.
bschmidt [Mon, 13 Dec 2010 17:53:41 +0000 (17:53 +0000)]
MFC r216238:
Fix scanning after loosing a connection. The firmware assumes that as long
as an association ID is set any scan is supposed to be a background scan.
This implies that the firmware will switch back to the associated channel
after a certain threshold, though, we are not notified about that. We
currently catch this case by a timer which will reset the firmware after
a 'scan timeout', though, upper layers are not notified about that and
will simply hang until manual intervention. Fix this by resetting the
firmware's knowledge about any association on RUN -> ASSOC and
!INIT -> SCAN transitions.
rwatson [Mon, 13 Dec 2010 12:34:35 +0000 (12:34 +0000)]
Merge r216365 from head to stable/8:
Derive the XENHVM kernel from GENERIC, adding only the options required
to support PV drivers (such as xenpci), and non-adptive locking (along
with a comment about why).
This change eliminates the synchronisation problem between GENERIC and
XENHVM, which had become severely rotted in HEAD, and in 8-STABLE
included non-production kernel debugging features such as WITNESS.
However, it comes at the cost of enabling devices and options that may
not be present under Xen (such as random ethernet cards). For now, opt
for a simpler kernel configuration file rather than using nooptions/
nodevice to enumerate and eliminate them. This leads to a somewhat
larger XENHVM kernel.
This is an MFC candidate for 8-STABLE before 8.2, in order to provide
a production-worthy XENHVM kernel configuration for amd64.
bschmidt [Sun, 12 Dec 2010 10:27:11 +0000 (10:27 +0000)]
MFC r216195:
For 6000 series and newer devices the DC calibration results are no
longer requested of the boot firmware. Instead of sending those results
to the runtime firmware the firmware is told to do the DC calibration
itself.
mm [Sat, 11 Dec 2010 23:48:10 +0000 (23:48 +0000)]
MFC r216291, r216293:
MFC r216291:
Do not print OpenSolaris hint to use (non-existing) installgrub(1) command
if creating a mirror by attaching a new vdev to a root pool.
MFC r216293:
Print message with information about updating the boot code if a new
vdev is attached to a root pool (e.g. when creating a mirrored boot pool).
Reported by: James R. Van Artsdalen (on freebsd-fs@freebsd.org)
Reviewed by: pjd
Approved by: re (kib), delphij (mentor)
jfv [Fri, 10 Dec 2010 22:59:09 +0000 (22:59 +0000)]
Remove bogus logic in the TX path, when using
VLANs and HW_TAGGING in IPv6 the tag is not yet
in the frame, and thus an ICMP6 packet fails this
condition and does not get sent.
bz [Fri, 10 Dec 2010 14:06:50 +0000 (14:06 +0000)]
MFC r216192:
Use correct field to track statistics counting error as bad header length.
This assimilates the code to what ip_input has been doing since r1.1 in
this case.
kib [Fri, 10 Dec 2010 10:48:54 +0000 (10:48 +0000)]
MFC r216150, r216158:
If unix socket has a unix socket attached as the rights that has a
unix socket attached as the rights that has a unix socket attached as
the rights ... Kernel may overflow the stack on attempt to close such
socket.
Only close the rights file in the context of the current close if the
file is not unix domain socket. Otherwise, postpone the work to
taskqueue, preventing unlimited recursion.
ae [Fri, 10 Dec 2010 05:18:37 +0000 (05:18 +0000)]
MFC r213254 by luigi:
fix breakage in in-kernel NAT: the code did not honor
net.inet.ip.fw.one_pass and always moved to the next rule
in case of a successful nat.
This should fix several related PR (waiting for feedback
before closing them)
brucec [Thu, 9 Dec 2010 15:24:59 +0000 (15:24 +0000)]
MFC r216243:
Ignore any failures with the "local" distribution since it's not present
on release CDs and so will normally fail.
installCommit() returns a DITEM_ value, not a Boolean.
distExtractAll() returns a Boolean, not a DITEM_ value.
Affects resolver operators who are validating with DNSSEC, and
querying zones which are in a key rollover period. The bug will
cause answers to incorrectly be marked as insecure.
trasz [Tue, 7 Dec 2010 22:00:48 +0000 (22:00 +0000)]
MFC r216084:
Don't panic when we read an empty ACL from ZFS. Apparently this may happen
with filesystems created under MacOS X ZFS port. This is kind of filesystem
corruption (we don't allow for setting empty ACLs), so make acl_get_file(3)
and related syscalls fail with EINVAL in that case. In theory, we could
return empty ACL to userland, but I'm afraid this would break some code.
yongari [Tue, 7 Dec 2010 19:14:18 +0000 (19:14 +0000)]
MFC r216111:
If RX lockup workaround is enabled, fxp(4) will periodically reset
the controller to workaround silicon bug of i82557. Each reset will
re-establish link which in turn triggers MII status change
callback. The callback will try to reconfigure controller if the
controller is not i82557 to enable flow-control. This caused
endless link UP/DOWN when the workaround was enabled on non-i82557
controller.
To fix the issue, apply RX lockup workaround only for i82557.
Previously it blindly checked undocumented EEPROM location such
that it sometimes enabled the workaround for other controllers. At
this time, only i82557 is known to have the silicon bug.
This fixes a regression introduced in r215906 which enabled flow
control support for all controllers except i82557.
Reported by: Karl Denninger (karl <> denninger dot net)
Tested by: Karl Denninger (karl <> denninger dot net)
Approved by: re (kensmith)
emax [Mon, 6 Dec 2010 22:45:29 +0000 (22:45 +0000)]
MFC r215195
Add firmware downloader for Atheros AR3011 based USB Bluetooth devices.
Hardware donated by: Rusty Nejdl rnejdl at ringofsaturn dot com
Tested by: Rusty Nejdl rnejdl at ringofsaturn dot com
Tested by: Andrzej Tobola ato at iem dot pw dot edu dot pl
Approved by: re
kib [Fri, 3 Dec 2010 22:07:07 +0000 (22:07 +0000)]
MFC r209463:
Fix bugs on pc98, use npxgetuserregs() instead of npxgetregs() for
get_fpcontext(), and npxsetuserregs() for set_fpcontext). Also,
note that usercontext is not initialized anymore in fpstate_drop().
Systematically replace references to npxgetregs() and npxsetregs()
by npxgetuserregs() and npxsetuserregs() in comments.
MFC r215865:
Remove npxgetregs(), npxsetregs(), fpugetregs() and fpusetregs()
functions, they are unused. Remove 'user' from npxgetuserregs()
etc. names.
For {npx,fpu}{get,set}regs(), always use pcb->pcb_user_save for FPU
context storage.
MFC r216012:
Calling fill_fpregs() for curthread is legitimate, and ELF coredump
does this.
jhb [Thu, 2 Dec 2010 15:58:54 +0000 (15:58 +0000)]
MFC 215820:
Add device IDs for two more ServerWorks Host-PCI bridges so that we can
read their starting PCI bus number for older systems that do not support
ACPI (or have a broken _BBN method).
Plug well observed races on la_hold entries with the callout handler.
Call the handler function with the lock held, return unlocked as we
might free the entry. Rework functions later in the call graph to be
either called with the lock held or, only if needed, unlocked.
Place asserts to document and tighten assumptions on various lle locking,
which were not always true before.
We call nd6_ns_output() unlocked and the assignment of ip6->ip6_src was
decentralized to minimize possible complexity introduced with the formerly
missing locking there. This also resulted in a push down of local
variable scopes into smaller blocks.
Reported by: many
Submitted by: Dmitrij Tejblum (tejblum yandex-team.ru) (original version)
Tested by: remko
PR: kern/148857
Approved by: re (kib)
brucec [Thu, 2 Dec 2010 09:09:46 +0000 (09:09 +0000)]
MFC r216052:
Update the serial port device names. They changed in 8.0 because the
default driver is now uart(4).
PR: bin/140887
Submitted by: Joe Barbish <fbsd1 at a1poweruser.com>
MFC r216053:
If no floppy drive is installed kldBrowser() can generate an error
early on. Initialize menu and count so the cleanup code doesn't try
and use their uninitialized values.
PR: bin/152270
Submitted by: Remi LAURENT <cloud at madpowah.org>
gibbs [Tue, 30 Nov 2010 22:25:44 +0000 (22:25 +0000)]
Merge revision 211236 form current:
Allow interrupt driven config hooks to be registered from config hook callbacks.
Interrupt driven configuration hooks serve two purposes: they are a
mechanism for registering for a callback that is invoked once interrupt
services are available, and they hold off root device selection so long
as any configuration hooks are still active. Before this change, it was
not possible to safely register additional hooks from the context of a
configuration hook callback. The need for this feature arises when
interrupts are required to discover new devices (e.g. access to the XenStore
to find para-virtualized devices) which in turn also require the ability
to hold off root device selection until some lengthy, interrupt driven,
configuration task has completed (e.g. Xen front/back device driver
negotiation).
More specifically, the mutex protecting the list of active configuration
hooks is never held during a callback, and static information is used
to ensure proper ordering and only a single callback to each hook even
when faced with registration or removal of a hook during an active run.
Sponsored by: Spectra Logic Corporation
Approved by: re (kib)
gallatin [Mon, 29 Nov 2010 13:36:20 +0000 (13:36 +0000)]
MFC 215686:
Fix a TSO checksum bug on mxge(4):
The Myri10GE NIC will assume all TSO frames contain partial checksum,
and will emit TSO segments with bad TCP checksums if a TSO frame
contains a full checksum. The mxge driver takes care to make sure
that TSO is disabled when checksum offload is disabled for this
reason. However, modules that modify packet contents (like pf) may
end up completing a checksum on a TSO frame, leading to the NIC emitting
TSO segments with bad checksums.
To workaround this, restore the partial checksum in the mxge driver
when we're fed a TSO frame with a full checksum.
attilio [Mon, 29 Nov 2010 08:04:10 +0000 (08:04 +0000)]
MFC r215544,215683:
Scan the list in reverse order for the shutdown handlers of loaded modules.
This way, when there is a dependency between two modules, the handler of the
latter probed runs first.
gad [Mon, 29 Nov 2010 04:57:46 +0000 (04:57 +0000)]
= MFC of r211190:
- Improve the wait4data() routine so it behaves better when checking
print-jobs which have last-modification times that are in the future.
This shouldn't happen, of course, but it can. And when it did happen,
the previous check could cause completely-spooled jobs to sit in the
queue for 20 minutes per job. The new code waits until the last-modify
time is not changing, instead of making decisions based on the specific
value of last-modify.
yongari [Mon, 29 Nov 2010 01:41:56 +0000 (01:41 +0000)]
MFC r215329:
Add flow control for all re(4) controllers. re(4) controllers do
not provide any MAC configuration interface for resolved flow
control parameters. There is even no register that configures water
mark which will control generation of pause frames.
However enabling flow control surely enhanced performance a lot.
yongari [Mon, 29 Nov 2010 01:36:15 +0000 (01:36 +0000)]
MFC r215848:
Allocate 1 MSI/MSI-X vector. Originally jme(4) was designed to
support multi-queue but the hardware limitation made it hard to
implement supporting multi-queue. Allocating more than necessary
vectors is resource waste and it can be added back when we
implement multi-queue support.
yongari [Mon, 29 Nov 2010 01:33:25 +0000 (01:33 +0000)]
MFC r215847:
Disable retrying RX descriptor loading. The counter is used to set
number of retry to be performed whenever controller found RX
descriptor was empty. RX empty interrupt is generated only when the
retry counter is over. Experimentation shows retrying RX descriptor
loading increased number of dropped frames under flow-control
enabled environments so disable it and have controller generate RX
empty interrupt as fast as it can.
While I'm here fix RXCSR_DESC_RT_CNT macro.
pjd [Sun, 28 Nov 2010 20:56:51 +0000 (20:56 +0000)]
MFC r215799:
Add gptboot_enable rc variable, which allows to turn gptboot reporting off in
case user wants to implement his own actions and doesn't want the attributes to
vanish.
Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com
bz [Sun, 28 Nov 2010 16:31:39 +0000 (16:31 +0000)]
MFC r215423:
Do not initialize flag variables before needed.
Consistently use the LLE_ prefix for lla_lookup() and the ND6_ prefix
for nd6_lookup() even though both are defined the same. Use the right
flag variable when checking each.
marius [Sun, 28 Nov 2010 16:03:01 +0000 (16:03 +0000)]
MFC: r215907
Remove the description of the dev.fxp.%d.noflow tunable as it was removed
in r215906 (MFC'ed to stable/8 in r216002) and the flowcontrol media option
now should be set as desired via ifconfig(8) instead.
marius [Sun, 28 Nov 2010 15:59:39 +0000 (15:59 +0000)]
MFC: r215906
Fix and implement missing parts of flow control support. This also removes
the dev.fxp.%d.noflow tunable as the same effect can now be achieved with
ifconfig(8) by setting the flowcontrol media option as desired (besides
the tunable never having a chance to actually enable flow control support
so far).
In joint forces with: yongari
mm [Sun, 28 Nov 2010 09:52:06 +0000 (09:52 +0000)]
MFC r213634, r213673:
MFC r213634:
Change FAPPEND to IO_APPEND as this is a ioflag and not a fflag.
This corrects writing to append-only files on ZFS.
MFC r213673 (pjd):
Provide internal ioflags() function that converts ioflag provided by FreeBSD's
VFS to OpenSolaris-specific ioflag expected by ZFS. Use it for read and write
operations.
PR: kern/149495 [1], kern/151082 [2]
Submitted by: Daniel Zhelev <daniel@zhelev.biz> [1], Michael Naef <cal@linu.gs> [2]
Reviewed by: mm (r213673)
Approved by: delphij (mentor)
thompsa [Sun, 28 Nov 2010 07:18:14 +0000 (07:18 +0000)]
MFC r215253
Fix LibUSB v1.0 compliancy.
1) We need to allow the USB callback to free the USB transfer itself.
2) The USB transfer buffer should only be automatically freed when
freeing the USB transfer.
thompsa [Sun, 28 Nov 2010 07:04:28 +0000 (07:04 +0000)]
MFC r213809
USB network (NCM driver):
- correct the ethernet payload remainder which
must be post-offseted by -14 bytes instead of
0 bytes. This is not very clearly defined in the
NCM specification.
jchandra [Sun, 28 Nov 2010 06:43:39 +0000 (06:43 +0000)]
MFC r215973
The current implementation of vm_page_alloc_freelist() does not handle
order > 0 correctly. Remove order parameter to the function and use it
only for order 0 pages.