rmacklem [Mon, 9 Jun 2014 13:52:10 +0000 (13:52 +0000)]
MFC: r267191
The new NFS server would not allow a hard link to be
created to a symlink. This restriction (which was
inherited from OpenBSD) is not required by the NFS RFCs.
Since this is allowed by the old NFS server, it is a
POLA violation to not allow it. This patch modifies the
new NFS server to allow this.
Reported by: jhb
Reviewed by: jhb
Approved by: re (kib)
cxgbe(4): Properly account for the freelist buffers used when returning
early from service_iq due to a budget restriction. This fixes a potential
rx hang when using INTx.
nwhitehorn [Sun, 8 Jun 2014 21:21:54 +0000 (21:21 +0000)]
MFC r260913,266895:
Add a new flag to /etc/ttys: onifconsole. This is equivalent to "on" if the
device is an active kernel console and "off" otherwise. This is designed to
allow serial-booting x86 systems to provide a login prompt on the serial line
by default without providing one on all systems by default. Set this flag
on x86 systems for ttyu0.
Comments and suggestions by: grehan, dteske, jilles
Approved by: re (gjb)
Relnotes: yes
emaste [Thu, 5 Jun 2014 15:18:49 +0000 (15:18 +0000)]
MFC r240938, r240942: Avoid INVARIANTS panic destroying an in-use tap(4)
The requirement (implied by the KASSERT in tap_destroy) that the tap is
closed isn't valid; destroy_dev will block in devdrn while other threads
are in d_* functions.
Note: if_tun had the same issue, addressed in SVN revisions r186391,
r186483 and r186497. The use of the condvar there appears to be
redundant with the functionality provided by destroy_dev.
mav [Thu, 5 Jun 2014 05:58:54 +0000 (05:58 +0000)]
MFC r266538:
Make ng_mppc to not disable the node in case of multiple packet loss.
Quite often it can be just packet reorder, and killing link in such case
is inconvenient. Add few sysctl's to control that behavior.
kib [Thu, 5 Jun 2014 01:00:27 +0000 (01:00 +0000)]
MFC r266846:
When usermode loaded non-default segment selector into the %gs,
correctly prepare KGSBASE msr to restore the user descriptor base on
the last swapgs during return to usermode.
mav [Wed, 4 Jun 2014 18:58:32 +0000 (18:58 +0000)]
MFC r239133 (by jimharris):
During TSC synchronization test, use rdtsc() rather than rdtsc32(), to
protect against 32-bit TSC overflow while the sync test is running.
On dual-socket Xeon E5-2600 (SNB) systems with up to 32 threads, there
is non-trivial chance (2-3%) that TSC synchronization test fails due to
32-bit TSC overflow while the synchronization test is running.
jhb [Wed, 4 Jun 2014 18:32:41 +0000 (18:32 +0000)]
MFC 266281:
Clear the data buffer length field when freeing a command structure so that
it doesn't leak through when the command structure is reused for a user
command without a data buffer.
marius [Wed, 4 Jun 2014 15:05:24 +0000 (15:05 +0000)]
MFC: r266793, r266799, r266808
- Fix compilation with PAE support enabled by merging r233362 and, thus,
doing away with the unnecessary uint8_t pointer casting.
physical addresses.
- Nuke the unused softc of emujoy(4).
- Use DEVMETHOD_END.
- Use NULL instead of 0 for pointers.
Sponsored by: Bally Wulff Games & Entertainment GmbH
Approved by: re (gjb)
marius [Wed, 4 Jun 2014 15:04:36 +0000 (15:04 +0000)]
MFC: r266792
Fix DMA handling in radeon_dummy_page_init():
- Based on actual usage and on what Linux does, dummy_page.addr should
contain the physical bus address of the dummy page rather than its
virtual one. As a side-effect, correcting this bug fixes compilation
with PAE support enabled by getting rid of an inappropriate cast.
- Also based on actual usage of dummy_page.addr, theoretically Radeon
devices could do a maximum of 44-bit DMA. In reality, though, it is
more likely that they only support 32-bit DMA, at least that is what
radeon_gart_table_ram_alloc() sets up for, too. However, passing ~0
to drm_pci_alloc() as maxaddr parameter translates to 64-bit DMA on
amd64/64-bit machines. Thus, use BUS_SPACE_MAXSIZE_32BIT instead,
which the existing 32-bit DMA limits within the drm2 code spelled as
0xFFFFFFFF should also be changed to.
Reviewed by: dumbbell
Approved by: re (gjb)
Sponsored by: Bally Wulff Games & Entertainment GmbH
dchagin [Tue, 3 Jun 2014 08:08:12 +0000 (08:08 +0000)]
MFC r266924:
Glibc was switched to the FUTEX_WAIT_BITSET op and CLOCK_REALTIME
flag has been added instead of FUTEX_WAIT to replace the FUTEX_WAIT
logic which needs to do gettimeofday() calls before the futex syscall
to convert the absolute timeout to a relative timeout.
Before this the CLOCK_MONOTONIC used by the FUTEX_WAIT_BITSET op.
When the FUTEX_CLOCK_REALTIME is specified the timeout is an absolute
time, not a relative time. Rework futex_wait to handle this.
On the side fix the futex leak in error case and remove useless
parentheses.
Properly calculate the timeout for the CLOCK_MONOTONIC case.
dchagin [Mon, 2 Jun 2014 19:28:11 +0000 (19:28 +0000)]
MFC r266782:
In r218101 I have not changed properly the futex syscall definition.
Some Linux futex ops atomically verifies that the futex address uaddr
(uval) contains the value val. Comparing signed uval and unsigned val
may lead to an unexpected result, mostly to a deadlock.
So copyin uaddr to an unsigned int to compare the parameters correctly.
While here change ktr records to print parameters in more readable format.
cxgbe(4): Fix a NULL dereference when the very first call to
get_scatter_segment() in get_fl_payload() fails. While here,
fix the code to adjust fl_bufs_used when a failure occurs for
any other scatter segment.
dim [Wed, 28 May 2014 17:44:37 +0000 (17:44 +0000)]
MFC r266674:
Pull in r209489 from upstream clang trunk (by Akira Hatanaka):
Fix a bug in xmmintrin.h.
The last step of _mm_cvtps_pi16 should use _mm_packs_pi32, which is a function
that reads two __m64 values and packs four 32-bit values into four 16-bit
values.
delphij [Tue, 27 May 2014 18:54:45 +0000 (18:54 +0000)]
MFC r266520:
Explicitly link libzfs against libavl as it is done in OpenSolaris
(4543:12bb2876a62e). Without this, some third party applications
may break because the lack of AVL related symbols.
FreeBSD base system are not affected because the FreeBSD ZFS command
line tools were all linked against libavl and thus hide the underlying
issue.
ae [Mon, 26 May 2014 08:22:34 +0000 (08:22 +0000)]
MFC r266399:
Since ipfw nat configures all options in one step, we should set all bits
in the mask when calling LibAliasSetMode() to properly clear unneeded
options.
hselasky [Sun, 25 May 2014 18:15:37 +0000 (18:15 +0000)]
MFC r266541:
- Fix a bug where the TLBPC value was forced to being odd for IN
direction isochronous transfers.
- Remove setting of fields which does not belong to the respective
TRBs. These fields are currently set as zero and this is more a
cosmetic change.
gjb [Sun, 25 May 2014 18:07:23 +0000 (18:07 +0000)]
MFC r266553, r266554:
r266553:
Add forward-compatibility glue with pkg-1.3:
- Use ASSUME_ALWAYS_YES=YES instead of ASSUME_ALWAYS_YES=1
since pkg-1.3 expects "yes" or "true" values.
- Before exporting PKG_ABI, strip extra characters from what
is parsed from 'pkg -vv'. This causes problems further down
when creating the packages directory for inclusion on the
dvd1.iso. Previously PKG_ABI would be 'freebsd:9:x86:64',
but now is '"freebsd:9:x86:64";' in pkg-1.3.
r266554:
Disable the main FreeBSD pkg(7) repositories in the dvd
repository configuration to avoid fetching from upstream
in case there may be conflicts.
Approved by: re (marius)
Sponsored by: The FreeBSD Foundation
gavin [Thu, 22 May 2014 20:59:38 +0000 (20:59 +0000)]
Merge r266111 from head:
Fix typo. Note that although this file is under contrib, it has diverged
sufficiently from upstream (including a full whitespace commit and large
portions rewritten) that this change does not move us further from the
upstream.
ken [Thu, 22 May 2014 16:36:01 +0000 (16:36 +0000)]
MFC mpr(4) changes: r265484, r265485, r265709 and r265712
------------------------------------------------------------------------
r265484 | ken | 2014-05-06 23:11:16 -0600 (Tue, 06 May 2014) | 5 lines
Remove some debugging code.
Submitted by: Steve McConnell <stephen.mcconnell@avagotech.com>
------------------------------------------------------------------------
------------------------------------------------------------------------
r265485 | ken | 2014-05-06 23:14:48 -0600 (Tue, 06 May 2014) | 9 lines
Hold the SIM lock when calling xpt_create_path() and xpt_action() in
mprsas_SSU_to_SATA_devices().
This fixes an assertion on shutdown with INVARIANTS enabled with SATA
drives present on an IR firmware controller.
Reviewed by: Steve McConnell <stephen.mcconnell@avagotech.com>.
------------------------------------------------------------------------
------------------------------------------------------------------------
r265709 | ken | 2014-05-08 14:28:22 -0600 (Thu, 08 May 2014) | 15 lines
Fix TLR (Transport Layer Retry) support in the mps(4) and mpr(4) drivers.
TLR is necessary for reliable communication with SAS tape drives.
This was broken by change 246713 in the mps(4) driver. It changed the
cm_data field for SCSI I/O requests to point to the CCB instead of the data
buffer. So, instead, look at the CCB's data pointer to determine whether
or not we're talking to a tape drive.
Also, take the residual into account to make sure that we don't go off the
end of the request.
Sponsored by: Spectra Logic Corporation
------------------------------------------------------------------------
------------------------------------------------------------------------
r265712 | ken | 2014-05-08 14:46:46 -0600 (Thu, 08 May 2014) | 10 lines
Add #ifdefs in the mpr(4) driver so that versions of stable/9 that
have implemented the PIM_NOSCAN rescan functionality will have it
enabled.
truckman [Thu, 22 May 2014 00:44:14 +0000 (00:44 +0000)]
MFC r266426
Slightly restructure the final loop in rman_reserve_resource_bound().
Replace with the existing loop termination test with a similar
condition from the nested "if" that may terminate the loop a bit
sooner, but still not too early. This condition can then be removed
from the nested "if". Relocate an operator to be style(9) compliant.
pho [Wed, 21 May 2014 15:17:22 +0000 (15:17 +0000)]
MFC r265534:
msync(2) must return ENOMEM and not EINVAL when the address is outside the
allowed range or when one or more pages are not mapped. This according to
The Open Group Base Specifications Issue 7.
rmacklem [Mon, 19 May 2014 16:15:27 +0000 (16:15 +0000)]
MFC: r227809
This patch enables the new/default NFS server's use of shared
vnode locking for read, readdir, readlink, getattr and access.
It is hoped that this will improve server performance for these
operations, since they will no longer be serialized for a given
file/vnode.
thomas [Mon, 19 May 2014 11:17:44 +0000 (11:17 +0000)]
MFC rev. 265926:
(NANO_CONFIG): New variable containing path of config file, so that
the configuration can reference additional files relative to its own
location.
(NANO_MODULES): If set to "default", install all built modules.
Also update mergeinfo for past MFC of rev. 265260.
marius [Mon, 19 May 2014 09:26:32 +0000 (09:26 +0000)]
MFC: r253654
Set the device description after we call uart_probe(). In uart_probe()
we call device-specific probe functions, which can (and typically will)
set the device description based on low-level device probe information.
In the end we never actually used the device description that we so
carefully maintained in the PCI match table. By setting the device
description after we call uart_probe(), we'll print the more user-
friendly description by default.
jhb [Sun, 18 May 2014 15:29:00 +0000 (15:29 +0000)]
MFC 264765,264766:
- Don't claim the adapter is idle if it is clearing a drive.
- Fix an off by one error when checking for the stop event. This
resulted in not showing the most recent event by default.
- When the stop even is hit, break out of the outer loop to stop
fetching more events.
dim [Sat, 17 May 2014 12:47:11 +0000 (12:47 +0000)]
MFC r266053:
Use the new -d option that was added to tblgen between llvm/clang 3.3
and 3.4 to generate dependency files for the '.inc.h' files generated
from .td files, and .sinclude those dependency files in clang.build.mk.
This will make future incremental builds of lib/clang and usr.bin/clang
work correctly, whenever any of the .td files get modified.
Note that this will not fix any problems with incremental builds from
*before* this revision, since there will not yet be any generated
dependency files. A quick workaround is to run the following:
find /usr/obj -type f -name '*.inc.h' | xargs rm
and then a regular incremental buildworld (e.g. with -DNO_CLEAN).
bdrewery [Sat, 17 May 2014 03:28:27 +0000 (03:28 +0000)]
MFC r265267:
Fix width/alignment of JID column. Make it support up to the maximum 7-wide
JIDs. On a system using jails for common tasks the JID can quickly increase.
bdrewery [Sat, 17 May 2014 03:23:45 +0000 (03:23 +0000)]
MFC r265249,r265250,r265251:
- Add -J command/flag to filter by jail name/jid. This will automatically
display the JID as well (the -j command/flag).
- Add a hint for 'u' and 'J' command that '+' displays all.
- Add J command to help.
cperciva [Fri, 16 May 2014 19:28:22 +0000 (19:28 +0000)]
Add xenhvm.ko, which can be loaded along with a !XENHVM kernel in order to
provide support for the Xen/HVM environment.
This code is compiled with XENHVM defined; since this would result in the
(no longer used) "last processed" values being included in PCPU data
structures, an additional MODXENHVM define is used to exclude those. This
allows KBI to be retained for both GENERIC and XENHVM kernel configurations
(which are not KBI compatible with each other).
This is a direct commit to stable/9, since stable/10 and HEAD have XENHVM
merged into the GENERIC kernel configuration (but the changes in stable/10
and HEAD cannot be MFCed as-is).
Discussed with: royger, gjb
Relnotes: FreeBSD 9.3-RELEASE can run in Xen/HVM environments,
including Amazon EC2, using GENERIC + xenhvm.ko.
cperciva [Fri, 16 May 2014 19:15:03 +0000 (19:15 +0000)]
Change Xen event channel "last processed" values from per-CPU to global.
In FreeBSD 9.x we only run this code on (virtual) CPU #0, so there is no
need for these to be per-CPU values. Retain the values in the per-CPU
data structure (when compiled with options XENHVM) for KBI compatibility.
This is a direct commit to stable/9, since the relevant code has been
substantially changed (in ways which cannot be easily MFCed) in HEAD and
stable/10.