]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
6 years agoMerge ^/head r325999 through r326131.
hselasky [Thu, 23 Nov 2017 14:28:14 +0000 (14:28 +0000)]
Merge ^/head r325999 through r326131.

6 years agoMake sure the iSCSI I/O limits are set properly so that the ISCSIDSEND IOCTL
hselasky [Thu, 23 Nov 2017 13:57:44 +0000 (13:57 +0000)]
Make sure the iSCSI I/O limits are set properly so that the ISCSIDSEND IOCTL
can be used prior to the ISCSIDHANDOFF IOCTL which set the negotiated values.
Else the login PDU will fail when passing the "-r" option to "iscsictl" which
means iSCSI over RDMA instead of TCP/IP.

Discussed with: np@ and trasz@
Sponsored by: Mellanox Technologies
MFC after: 1 week

6 years agoMark kgmon(8) obsolete, redirecting users to pmcstat(8).
trasz [Thu, 23 Nov 2017 12:41:05 +0000 (12:41 +0000)]
Mark kgmon(8) obsolete, redirecting users to pmcstat(8).

MFC after: 2 weeks
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D12574

6 years agoThe __internal_mr is freed as part of the protection domain, pd.
hselasky [Thu, 23 Nov 2017 12:25:11 +0000 (12:25 +0000)]
The __internal_mr is freed as part of the protection domain, pd.
There is no need to free this mr. This fixes an issue accessing
freed memory in ISER.

Sponsored by: Mellanox Technologies

6 years agoRemove lint support from system headers and MD x86 headers.
kib [Thu, 23 Nov 2017 11:40:16 +0000 (11:40 +0000)]
Remove lint support from system headers and MD x86 headers.

Reviewed by: dim, jhb
Discussed with: imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D13156

6 years agoKill all descendants of the reaper, even if they are descendants of a
kib [Thu, 23 Nov 2017 11:25:11 +0000 (11:25 +0000)]
Kill all descendants of the reaper, even if they are descendants of a
subordinate reaper.

Also, mark reapers when listing pids.

Reported by: Michael Zuo <muh.muhten@gmail.com>
PR: 223745
Reviewed by: bapt
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D13183

6 years agoZero struct efi_tm before setting the needed values. We don't use the dst
andrew [Thu, 23 Nov 2017 10:34:38 +0000 (10:34 +0000)]
Zero struct efi_tm before setting the needed values. We don't use the dst
or timezone fields so ensure these are set.

Reported by: emaste
Sponsored by: DARPA, AFRL

6 years agoModify ipfw's dynamic states KPI.
ae [Thu, 23 Nov 2017 08:02:02 +0000 (08:02 +0000)]
Modify ipfw's dynamic states KPI.

Hide the locking logic used in the dynamic states implementation from
generic code. Rename ipfw_install_state() and ipfw_lookup_dyn_rule()
function to have similar names: ipfw_dyn_install_state() and
ipfw_dyn_lookup_state(). Move dynamic rule counters updating to the
ipfw_dyn_lookup_state() function. Now this function return NULL when
there is no state and pointer to the parent rule when state is found.
Thus now there is no need to return pointer to dynamic rule, and no need
to hold bucket lock for this state. Remove ipfw_dyn_unlock() function.

Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC
Differential Revision: https://reviews.freebsd.org/D11657

6 years agoCheck that address family of state matches address family of packet.
ae [Thu, 23 Nov 2017 07:05:25 +0000 (07:05 +0000)]
Check that address family of state matches address family of packet.

If it is not matched avoid comparing other state fields.

Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC

6 years agoMove ipfw_send_pkt() from ip_fw_dynamic.c into ip_fw2.c.
ae [Thu, 23 Nov 2017 06:04:57 +0000 (06:04 +0000)]
Move ipfw_send_pkt() from ip_fw_dynamic.c into ip_fw2.c.
It is not specific for dynamic states function and called also from
generic code.

Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC

6 years agoRework rule ranges matching. Use comparison rule id with UINT32_MAX to
ae [Thu, 23 Nov 2017 05:55:53 +0000 (05:55 +0000)]
Rework rule ranges matching. Use comparison rule id with UINT32_MAX to
match all rules with the same rule number.

Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC

6 years agoAllwinner a83t: add ccung bits
kevans [Thu, 23 Nov 2017 05:54:04 +0000 (05:54 +0000)]
Allwinner a83t: add ccung bits

Upstream DTS has switched to using CCU rather than /clocks nodes. Add a CCU
driver for the a83t to bring us closer to upstream, but don't yet attach it
to ccu node.

Reviewed by: manu
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12843

6 years agoaw_ccung: changes to accommodate upcoming a83t support
kevans [Thu, 23 Nov 2017 05:43:44 +0000 (05:43 +0000)]
aw_ccung: changes to accommodate upcoming a83t support

Add a means to specify mask/value for the prediv condition instead of
shift/width/value for clocks that have a more complex mux scenario.

Specifically, ahb1 on the a83t has the prediv applied if mux is either b10
or b11.

Reviewed by: manu
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12851

6 years agosx: unbreak debug after r326107
mjg [Thu, 23 Nov 2017 03:40:51 +0000 (03:40 +0000)]
sx: unbreak debug after r326107

An assertion was modified to use the found value, but it was not updated to
handle a race where blocked threads appear after the entrance to the func.

Move the assertion down to the area protected with sleepq lock where the
lock is read anyway. This does not affect coverage of the assertion and
is consistent with what rw locks are doing.

Reported by: Shawn Webb

6 years agorwlock: unbreak WITNESS builds after r326110
mjg [Thu, 23 Nov 2017 03:20:12 +0000 (03:20 +0000)]
rwlock: unbreak WITNESS builds after r326110

Reported by: Shawn Webb

6 years agorwlock: don't check for curthread's read lock count in the fast path
mjg [Wed, 22 Nov 2017 23:52:05 +0000 (23:52 +0000)]
rwlock: don't check for curthread's read lock count in the fast path

6 years agobhnd(4): Add a basic ChipCommon GPIO driver sufficient to support bwn(4)
landonf [Wed, 22 Nov 2017 23:10:20 +0000 (23:10 +0000)]
bhnd(4): Add a basic ChipCommon GPIO driver sufficient to support bwn(4)

The driver is functional on both BHND Wi-Fi adapters and MIPS SoCs, but
does not currently include support for features not required by bwn(4),
including GPIO interrupt handling.

Approved by: adrian (mentor, implicit)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D12708

6 years agoOrder declarations alphabetically.
kib [Wed, 22 Nov 2017 22:04:27 +0000 (22:04 +0000)]
Order declarations alphabetically.
Match signess of the format and the value.

Noted by: bde
Sponsored by: The FreeBSD Foundation

6 years agolocks: pass the found lock value to unlock slow path
mjg [Wed, 22 Nov 2017 22:04:04 +0000 (22:04 +0000)]
locks: pass the found lock value to unlock slow path

This avoids an explicit read later.

While here whack the cheaply obtainable 'tid' argument.

6 years agolocks: remove the file + line argument from internal primitives when not used
mjg [Wed, 22 Nov 2017 21:51:17 +0000 (21:51 +0000)]
locks: remove the file + line argument from internal primitives when not used

The pair is of use only in debug or LOCKPROF kernels, but was passed (zeroed)
for many locks even in production kernels.

While here whack the tid argument from wlock hard and xlock hard.

There is no kbi change of any sort - "external" primitives still accept the
pair.

6 years agobhnd(4): extend the PMU APIs to support bwn(4)
landonf [Wed, 22 Nov 2017 20:27:46 +0000 (20:27 +0000)]
bhnd(4): extend the PMU APIs to support bwn(4)

The bwn(4) driver requires a number of extensions to the bhnd(4) PMU
interface to support external configuration of PLLs, LDOs, and other
parameters that require chipset or PHY-specific workarounds.

These changes add support for:

- Writing raw voltage register values to PHY-specific LDO regulator
  registers (required by LP-PHY).
- Enabling/disabling PHY-specific LDOs (required by LP-PHY)
- Writing to arbitrary PMU chipctrl registers (required for common PHY PLL
  reset support).
- Requesting chipset/PLL-specific spurious signal avoidance modes.
- Querying clock frequency and latency.

Additionally, rather than updating legacy PWRCTL support to conform to the
new PMU interface:

- PWRCTL API is now provided by a bhnd_pwrctl_if.m interface.
- Since PWRCTL is only found in older SSB-based chipsets, translation from
  bhnd(4) bus APIs to corresponding PWRCTL operations is now handled
  entirely within the siba(4) driver.
- The PWRCTL-specific host bridge clock gating APIs in bhnd_bus_if.m have
  been lifted out into a standalone bhnd_pwrctl_hostb_if.m interface.

Approved by: adrian (mentor, implicit)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D12664

6 years agoAdd a test case for cam_get_device with sa(4) devices
asomers [Wed, 22 Nov 2017 19:58:29 +0000 (19:58 +0000)]
Add a test case for cam_get_device with sa(4) devices

sa(4) has some unique behavior that is special-cased in cam_get_device. The
existing tests don't provide coverage for this special case.

Reviewed by: ken
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13185

6 years agoAlways null-terminate CAM periph_name and dev_name
asomers [Wed, 22 Nov 2017 19:57:34 +0000 (19:57 +0000)]
Always null-terminate CAM periph_name and dev_name

Reported by: Coverity
CID: 1010039101004010100411010043
Reviewed by: ken, imp
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13194

6 years agoFix language in a bunch of error messages.
zeising [Wed, 22 Nov 2017 18:06:41 +0000 (18:06 +0000)]
Fix language in a bunch of error messages.

Reviewed by: emaste
Approved by: emaste
MFC after: 1 month
Differential Revision: D13193

6 years agoReturn different error code for the guard page layout violation.
kib [Wed, 22 Nov 2017 16:45:27 +0000 (16:45 +0000)]
Return different error code for the guard page layout violation.

On KERN_NO_SPACE error, as it is returned now, vm_map_find() continues
the loop searching for the suitable range for the requested mapping
with specific alignment.  Since the vm_map_findspace() succesfully
finds the same place, the loop never ends.

The errors returned from vm_map_stack() completely repeat the behavior
of vm_map_insert() now, as suggested by Alan.

Reported by: Arto Pekkanen <aksyom@gmail.com>
PR: 223732
Reviewed by: alc, markj
Discussed with: jhb
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential revision: https://reviews.freebsd.org/D13186

6 years agoWhen vm_map_find(find_space = VMFS_OPTIMAL_SPACE) fails to find space, a
alc [Wed, 22 Nov 2017 16:39:24 +0000 (16:39 +0000)]
When vm_map_find(find_space = VMFS_OPTIMAL_SPACE) fails to find space, a
second scan of the address space with find_space = VMFS_ANY_SPACE is
performed.  Previously, vm_map_find() released and reacquired the map lock
between the first and second scans.  However, there is no compelling
reason to do so.  This revision modifies vm_map_find() to retain the map
lock.

Reviewed by: jhb, kib, markj
MFC after: 1 week
X-Differential Revision: https://reviews.freebsd.org/D13155

6 years agoAnnotate pragma/err.invalidlibdep.ksh as EXFAIL.
markj [Wed, 22 Nov 2017 15:54:52 +0000 (15:54 +0000)]
Annotate pragma/err.invalidlibdep.ksh as EXFAIL.

The test creates a D library with a "depends_on library" pragma
referencing a non-existent library, and expects compilation to fail.
However, as far as I can tell, libdtrace is supposed simply abort
compilation of the library in this case, and continue. This behaviour
is desirable when adding libraries which depend on optional KLDs, for
example.

MFC after: 1 week

6 years agobsdinstall: Add ntpdate option
manu [Wed, 22 Nov 2017 15:27:47 +0000 (15:27 +0000)]
bsdinstall: Add ntpdate option

When you install a computer for the first time, the date in the CMOS sometimes
not accurate and you need to ntpdate as ntpd will fail a the time difference
is too big.
Add an option in bsdinstall to enable ntpdate that will do that for us.

Reviewed by: allanjude
Differential Revision: https://reviews.freebsd.org/D13149

6 years agoFix indentation in bsdinstall-created wpa_supplicant.conf
emaste [Wed, 22 Nov 2017 15:18:11 +0000 (15:18 +0000)]
Fix indentation in bsdinstall-created wpa_supplicant.conf

r309934 cleaned up some cases in bsdinstall to use heredocs but broke
the indentation of the generated output, because <<- heredocs strip
leading tabs.

PR: 221982
Reviewed by: allanjude, dteske
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D13190

6 years agoUse the right variable for the IP header parameter to tcp:::send.
markj [Wed, 22 Nov 2017 14:13:40 +0000 (14:13 +0000)]
Use the right variable for the IP header parameter to tcp:::send.

This addresses a regression from r311225.

MFC after: 1 week

6 years agoo Invalidate the correct page in pmap_protect().
br [Wed, 22 Nov 2017 14:10:58 +0000 (14:10 +0000)]
o Invalidate the correct page in pmap_protect().
  With this bug fix we don't need to invalidate all the entries.
o Remove a call to pmap_invalidate_all(). This was never called
  as the anyvalid variable is never set.

Obtained from: arm64/pmap.c (r322797, r322800)
Sponsored by: DARPA, AFRL

6 years agonet_parse_rootpath() has no parameters
tsoome [Wed, 22 Nov 2017 10:04:09 +0000 (10:04 +0000)]
net_parse_rootpath() has no parameters

Add void for parameter list.

6 years agoloader.efi: efipart does not recognize partitionless disks
tsoome [Wed, 22 Nov 2017 08:48:00 +0000 (08:48 +0000)]
loader.efi: efipart does not recognize partitionless disks

Rework the block device handle check to allow more robust device
classification. This is mostly usability issue - it can be quite confusing
for user when no disks are listed with lsdev.

Add more comments about what and why is done.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D13026

6 years agoAdd ipfw_add_protected_rule() function that creates rule with 65535
ae [Wed, 22 Nov 2017 05:49:21 +0000 (05:49 +0000)]
Add ipfw_add_protected_rule() function that creates rule with 65535
number in the reserved set 31. Use this function to create default rule.

Obtained from: Yandex LLC
MFC after: 1 week
Sponsored by: Yandex LLC

6 years agoAdd a reference to getfsstat in statfs.
imp [Wed, 22 Nov 2017 05:27:18 +0000 (05:27 +0000)]
Add a reference to getfsstat in statfs.

Sponsored by: Netflix

6 years agopatch(1): don't assume a match if we run out of context to check
kevans [Wed, 22 Nov 2017 03:44:19 +0000 (03:44 +0000)]
patch(1): don't assume a match if we run out of context to check

Patches with very little context (-U0 and -U1) could get misapplied if
the file to be patched changes and a hunk is no longer applicable. Matching
with fuzz would be attempted and default to a match when we unexpectedly ran
out of context.

This also affected patches with higher levels of context but had limited
actual context due to the hunk being located near the beginning/end of file.

PR: 74127, 223545 (exp-run)
Reviewed by: emaste, pfg
Approved by: emaste (mentor)
Differential Revision: https://reviews.freebsd.org/D12631

6 years agoPowerPC has 12 artificial frames for the profiler
jhibbits [Wed, 22 Nov 2017 01:53:59 +0000 (01:53 +0000)]
PowerPC has 12 artificial frames for the profiler

It may need to be different between AIM and Book-E, this was tested only on
Book-E (64- and 32-bit)

MFC after: 3 weeks

6 years agofreebsd-update: do not duplicate patchlist entries
emaste [Wed, 22 Nov 2017 01:50:23 +0000 (01:50 +0000)]
freebsd-update: do not duplicate patchlist entries

PR: 221079
Submitted by: Masachika ISHIZUKA
Submitted by: ota@j.email.ne.jp
Reviewed by: cperciva
MFC after: 1 week

6 years agobhnd(4): Add support for querying DMA address translation parameters
landonf [Tue, 21 Nov 2017 23:25:22 +0000 (23:25 +0000)]
bhnd(4): Add support for querying DMA address translation parameters

BHND Wi-Fi chipsets and SoCs share a common DMA engine, operating within
backplane address space. To support host DMA on Wi-Fi chipsets, the bridge
core maps host address space onto the backplane; any host addresses must
be translated to their corresponding backplane address.

- Defines a new bhnd_get_dma_translation(9) API to support querying DMA
  address translation parameters from the bhnd(4) bus.
- Extends bhndb(4) to provide DMA translation descriptors from a DMA
  address translation table defined in the host bridge-specific
  bhndb_hwcfg.
- Defines bhndb(4) DMA address translation tables for all supported host
  bridge cores.
- Extends mips/broadcom's bhnd_nexus driver to return an identity (no-op)
  DMA translation descriptor; no translation is required when addressing
  the SoC backplane.

Approved by: adrian (mentor)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D12582

6 years agobhnd(4): implement MIPS and PCI(e) interrupt support
landonf [Tue, 21 Nov 2017 23:15:20 +0000 (23:15 +0000)]
bhnd(4): implement MIPS and PCI(e) interrupt support

On BHND MIPS SoCs, this replaces the use of hard-coded MIPS IRQ#s in the
common bhnd(4) core drivers; we now register an INTRNG child PIC that
handles routing of backplane interrupt vectors via the MIPS core.

On BHND PCI devices, backplane interrupt vectors are now routed to the
PCI/PCIe host bridge core when bus_setup_intr() is called, where they are
dispatched by the PCI core via a host interrupt (e.g. INTx/MSI).

The bhndb(4) bridge driver tracks registered interrupt handlers for the
bridged bhnd(4) devices and manages backplane interrupt routing, while
delegating actual bus interrupt setup/teardown to the parent bus on behalf
of the bridged cores.

Approved by: adrian (mentor, implicit)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D12518

6 years agoImport the latest CloudABI definitions, v0.18.
ed [Tue, 21 Nov 2017 20:46:21 +0000 (20:46 +0000)]
Import the latest CloudABI definitions, v0.18.

In addition to some small style fixes to the ARMv6 vDSO, this release
includes a new vDSO that can be used for the execution of ARMv6/ARMv7
code on 64-bit platforms.

Just like for i686 on x86-64, this new vDSO is responsible for padding
arguments and return values to 64-bit values, so that the kernel can
easily forward system calls to the native system calls.

Obtained from: https://github.com/NuxiNL/cloudabi

6 years agofilter all passwords (not only changed) from periodic passwd backup
emaste [Tue, 21 Nov 2017 20:31:54 +0000 (20:31 +0000)]
filter all passwords (not only changed) from periodic passwd backup

The periodic 200.backup-passwd script outputs any differences it finds
in master.passwd, relative to the previous backup.  It intends to elide
the encrypted password field, but previously did so only for changed
lines (i.e., those beginning with - or + in the diff).

Apply the sed expression also to unchanged lines to also elide their
passwords.

PR: 223461
Reported by: Andre Albsmeier
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation

6 years agosystat: use and correctly display 64bit counters.
kib [Tue, 21 Nov 2017 19:55:32 +0000 (19:55 +0000)]
systat: use and correctly display 64bit counters.

Following struct vmtotal changes, make systat use and correctly
display 64-bit counters.  Switch to humanize_number(3) to overcome
homegrown arithmetics limits in pretty printing large numbers.  Use
1024 as a divisor for memory fields to make it consistent with other
tools and users expectations.

Submitted by: Pawel Biernacki <pawel.biernacki@gmail.com>
Sponsored by: Mysterious Code Ltd.
PR: 2137
Differential revision: https://reviews.freebsd.org/D13105

6 years agoUnbreak riscv build in universe.
imp [Tue, 21 Nov 2017 19:23:20 +0000 (19:23 +0000)]
Unbreak riscv build in universe.

riscv doesn't have -msoft-float. For the moment, just don't add
anything. There's no /boot/loader or other bootstrap contained in the
tree for riscv*. However, with real hardware coming next year, there
are plans for one, so keep building at least a minimal libsa and
ficl to prevent bitrot.

Sponsored by: Netflix

6 years agoUse TARGET_ARCH=riscv64 when TARGET=riscv
imp [Tue, 21 Nov 2017 19:23:12 +0000 (19:23 +0000)]
Use TARGET_ARCH=riscv64 when TARGET=riscv

The supported targets are riscv64 and riscv64sf. Use the former when
building with a bare TARGET=riscv and it is the more common one.

Sponsored by: Netflix

6 years agozfs_write: fix problem with writes appearing to succeed when over quota
avg [Tue, 21 Nov 2017 18:28:14 +0000 (18:28 +0000)]
zfs_write: fix problem with writes appearing to succeed when over quota

The problem happens when the writes have offsets and sizes aligned with
a filesystem's recordsize (maximum block size).  In this scenario
dmu_tx_assign() would fail because of being over the quota, but the uio
would already be modified in the code path where we copy data from the
uio into a borrowed ARC buffer.  That makes an appearance of a partial
write, so zfs_write() would return success and the uio would be modified
consistently with writing a single block.

That bug can result in a data loss because the writes over the quota
would appear to succeed while the actual data is being discarded.

This commit fixes the bug by ensuring that the uio is not changed until
after all error checks are done.  To achieve that the code now uses
uiocopy() + uioskip() as in the original illumos design.  We can do that
now that uiocopy() has been updated in r326067 to use
vn_io_fault_uiomove().

Reported by: mav
Analyzed by: mav
Reviewed by: mav
Pointyhat to: avg (myself)
MFC after: 1 week
X-MFC after: r326067
X-Erratum: wanted

6 years agoFix gptzfsboot for cases with GELI.
imp [Tue, 21 Nov 2017 18:03:47 +0000 (18:03 +0000)]
Fix gptzfsboot for cases with GELI.

HAVE_GPT isn't currently a thing, but HAVE_GELI is. Replace the former
with the latter and remove util.o from the build list (it's picked up
from libsa/libsa32, and that's OK).

Sponsored by: Netflix

6 years agoRemove /etc/resolv.conf from virtual machine images, which is
gjb [Tue, 21 Nov 2017 18:02:18 +0000 (18:02 +0000)]
Remove /etc/resolv.conf from virtual machine images, which is
copied from the build host.  It is renamed to /etc/resolv.conf.bak
on boot, so never used anyway.

Noticed by: peter
MFC after: 3 days
Sponsored by: The FreeBSD Foundation

6 years agomake illumos uiocopy use vn_io_fault_uiomove
avg [Tue, 21 Nov 2017 18:01:43 +0000 (18:01 +0000)]
make illumos uiocopy use vn_io_fault_uiomove

uiocopy() is currently unused, its purpose is copy data from a uio
without modifying the uio.  It was in use before the vn_io_fault support
was added to ZFS, at which point our code diverged from the illumos code
a little bit.  Because ZFS is the only (potential) user of the function
we are free to modify it to better suit ZFS needs.

The intention behind this change is to remove the differences introduced
earlier in zfs_write().

While here, re-implement uioskip() using uiomove() with
uio_segflg == UIO_NOCOPY.
The story of uioskip is the same as with uiocopy.

Reviewed by: mav
MFC after: 1 week

6 years agoAdd a driver for the EFI RTC. This uses the EFI Runtime Services to query
andrew [Tue, 21 Nov 2017 17:23:16 +0000 (17:23 +0000)]
Add a driver for the EFI RTC. This uses the EFI Runtime Services to query
the system time.

As we seem to only read this time on boot, and this is the only source of
time on many arm64 machines we need to enable this by default there. As
this is not always the case with U-Boot firmware, or when we have been
booted from a non-UEFI environment we only enable the device driver when
the Runtime Services are present and reading the time doesn't result in an
error.

PR: 212185
Reviewed by: imp, kib
Tested by: emaste
Relnotes: yes
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D12650

6 years agoFix uninitialized variable from 326034
asomers [Tue, 21 Nov 2017 16:38:30 +0000 (16:38 +0000)]
Fix uninitialized variable from 326034

Reported by: Coverity
CID: 1382887
MFC after: 20 days
X-MFC-With: 326034
Sponsored by: Spectra Logic Corp

6 years agoRefine symtab sorting in libproc.
markj [Tue, 21 Nov 2017 16:03:21 +0000 (16:03 +0000)]
Refine symtab sorting in libproc.

Add some rules to more closely match what illumos does when an address
resolves to multiple symbols:
- prefer non-local symbols
- prefer symbols with fewer leading underscores and no leading '$'

Add some regression tests to verify these rules.

6 years agoAnnotate usdt/tst.eliminate.ksh as EXFAIL.
markj [Tue, 21 Nov 2017 16:00:18 +0000 (16:00 +0000)]
Annotate usdt/tst.eliminate.ksh as EXFAIL.

It appears to depend on some behaviour specific to the Sun link editor.

MFC after: 1 week

6 years agoDon't assume that we can resolve "main" in the ksh executable.
markj [Tue, 21 Nov 2017 15:03:38 +0000 (15:03 +0000)]
Don't assume that we can resolve "main" in the ksh executable.

MFC after: 1 week

6 years agoClean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9).
markj [Tue, 21 Nov 2017 14:59:23 +0000 (14:59 +0000)]
Clean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9).

Avoid duplication in their macro definitions, and document them. No
functional change intended.

MFC after: 1 week

6 years agoMake sure all initialized mutexes are destroyed in the iser module,
hselasky [Tue, 21 Nov 2017 13:56:30 +0000 (13:56 +0000)]
Make sure all initialized mutexes are destroyed in the iser module,
else WITNESS will panic. Prefix all mutex names with "iser_" to
prevent future WITNESS issues.

Sponsored by: Mellanox Technologies
MFC after: 1 week

6 years agovidcontrol: correct history size error message
emaste [Tue, 21 Nov 2017 13:55:10 +0000 (13:55 +0000)]
vidcontrol: correct history size error message

`vidcontrol -h 0` is acceptable, so be explicit that it's less than zero
that is not allowed.

Reported by: Siva Mahadevan
Sponsored by: The FreeBSD Foundation

6 years agoWhen fpcurthread is not the current thread it may be non-NULL. In this
andrew [Tue, 21 Nov 2017 13:19:38 +0000 (13:19 +0000)]
When fpcurthread is not the current thread it may be non-NULL. In this
case another thread has had the VFP unit enabled and will have its state
in the VFP registers along with it stored in memory. As such we don't need
to store the state, but do need to zero the fpcurthread pointer to stop
the VFP driver from using the enable fast path.

Reported by: emaste
Sponsored by: DARPA, AFRL

6 years agoAllow for fictitious physical pages in vm_page_scan_contig().
markj [Tue, 21 Nov 2017 13:17:40 +0000 (13:17 +0000)]
Allow for fictitious physical pages in vm_page_scan_contig().

Some drm2 drivers will set PG_FICTITIOUS in physical pages in order to
satisfy the OBJT_MGTDEVICE object interface, so a scan may encounter
fictitous pages. For now, allow for this possibility; such pages will be
skipped later in the scan since they are wired.

Reported by: avg
Reviewed by: kib
MFC after: 1 week

6 years agoCompile fix for the mlx4 module.
hselasky [Tue, 21 Nov 2017 09:08:27 +0000 (09:08 +0000)]
Compile fix for the mlx4 module.

Sponsored by: Mellanox Technologies

6 years agoSupport SIGINFO.
delphij [Tue, 21 Nov 2017 08:14:30 +0000 (08:14 +0000)]
Support SIGINFO.

Obtained from: NetBSD
MFC after: 2 weeks

6 years agoThis program is more useful if it skips leading whitespace when
imp [Tue, 21 Nov 2017 07:35:29 +0000 (07:35 +0000)]
This program is more useful if it skips leading whitespace when
parsing a textual UEFI Device Path, since otherwise it things the
passed in path is a filename. While here, reduce the repetition of
8192.

Sponsored by: Netflix

6 years agoDocument what the command line arguments actually do. List some of the
imp [Tue, 21 Nov 2017 07:35:24 +0000 (07:35 +0000)]
Document what the command line arguments actually do. List some of the
size limitations.

Sponsored by: Netflix

6 years agoWhile the EFI spec allows numbers to be in many forms, libefivar
imp [Tue, 21 Nov 2017 06:12:21 +0000 (06:12 +0000)]
While the EFI spec allows numbers to be in many forms, libefivar
produces hex numbers for the dsn. Since that come is from EDK2, change
this for symmetry, by generating the dsn as a hex number.

Noticed by: gpart list | grep efimedia | awk -F: '{print $2;}' | \
sed -e 's/^ *//g;s/,,/,/' | grep MBR | efidp -p | efidp -f
Sponsored by: Netflix

6 years agoRemove trailing whitespace (one I just introduced and a bunch of
imp [Tue, 21 Nov 2017 05:42:13 +0000 (05:42 +0000)]
Remove trailing whitespace (one I just introduced and a bunch of
others in the same directory).

Sponsored by: Netflix

6 years agoImplement efi media tagging for MBR partitioning types.
imp [Tue, 21 Nov 2017 05:35:21 +0000 (05:35 +0000)]
Implement efi media tagging for MBR partitioning types.

Sponsored by: Netflix

6 years agodt_modtext: return error on archs lacking an implementation
emaste [Tue, 21 Nov 2017 03:15:32 +0000 (03:15 +0000)]
dt_modtext: return error on archs lacking an implementation

Reported by: mmel
Reviewed by: markj
MFC after: 1 week
MFC with: r325042
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D13176

6 years agoCheck the page table before TLB1 in pmap_kextract()
jhibbits [Tue, 21 Nov 2017 03:12:16 +0000 (03:12 +0000)]
Check the page table before TLB1 in pmap_kextract()

The vast majority of pmap_kextract() calls are looking for a physical memory
address, not a device address.  By checking the page table first this saves
the formerly inevitable 64 (on e500mc and derivatives) iteration loop
through TLB1 in the most common cases.

Benchmarking this on the P5020 (e5500 core) yields a 300% throughput
improvement on dtsec(4) (115Mbit/s -> 460Mbit/s) measured with iperf.

Benchmarked on the P1022 (e500v2 core, 16 TLB1 entries) yields a 50%
throughput improvement on tsec(4) (~93Mbit/s -> 165Mbit/s) measured with
iperf.

MFC after: 1 week
Relnotes: Maybe (significant performance improvement)

6 years agoPreemptively map MIPS INTRNG interrupts on non-FDT MIPS targets
landonf [Tue, 21 Nov 2017 01:54:48 +0000 (01:54 +0000)]
Preemptively map MIPS INTRNG interrupts on non-FDT MIPS targets

This replaces a partial workaround introduced in r305527 that was
incompatible with nested INTRNG interrupt controllers if not also using
FDT.

On non-FDT MIPS INTRNG targets, we now preemptively produce a set of fixed
mappings for the MIPS IRQ range during nexus attach. On FDT targets,
OFW_BUS_MAP_INTR() remains responsible for mapping the MIPS IRQs.

Approved by: adrian (mentor)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D12385

6 years agocxgbe(4): Fix unsafe mailbox access in cudbg.
np [Tue, 21 Nov 2017 01:18:58 +0000 (01:18 +0000)]
cxgbe(4): Fix unsafe mailbox access in cudbg.

MFC after: 1 week
Sponsored by: Chelsio Communications

6 years agoperiodic: fix exit status for nonexistent arguments
asomers [Mon, 20 Nov 2017 23:51:51 +0000 (23:51 +0000)]
periodic: fix exit status for nonexistent arguments

When called with an absolute pathname, periodic should attempt to execute
every script in that directory. If the directory does not exist, it should
print an error and exit 1. Due to a copy/paste mistake in r231568, it exits
0 in that case.

Reported by: devel/hs-ShellCheck
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13070

6 years agoQuirk Seagate ST8000AS0003-2HH
asomers [Mon, 20 Nov 2017 23:45:42 +0000 (23:45 +0000)]
Quirk Seagate ST8000AS0003-2HH

Like its predecessor ST8000AS0002, this is a drive-managed SMR drive, but
doesn't declare that in its ATA identify data.

MFC after: 3 weeks
Sponsored by: Spectra Logic Corp

6 years agoAdd ATF tests for head(1)
asomers [Mon, 20 Nov 2017 22:55:02 +0000 (22:55 +0000)]
Add ATF tests for head(1)

Submitted by: Fred Schlecter <https://github.com/fjs-github>
Reviewed by: asomers, jilles
MFC after: 3 weeks
Differential Revision: https://github.com/freebsd/freebsd/pull/127

6 years agoMove some more common stuff up to Makefile.inc. In particular, the no
imp [Mon, 20 Nov 2017 22:42:21 +0000 (22:42 +0000)]
Move some more common stuff up to Makefile.inc. In particular, the no
simd / no float stuff is centeralized here. Also centralise
-ffreestanding since it is specified everywhere.

This, along with a change to share/mk/bsd.cpu.mk to include -mno-avx2
in CFLAGS_NO_SIMD should fix building for newer machines (eg with
CPUTYPE=haswell) where clang was generating avx2 instructions.

Sponsored by: Netflix

6 years agoAdd -mno-avx2 for clang as well as -mno-avx. We don't want either of
imp [Mon, 20 Nov 2017 22:41:22 +0000 (22:41 +0000)]
Add -mno-avx2 for clang as well as -mno-avx. We don't want either of
them when asking for no SIMD.

Reviewed by: emaste@
Sponsored by: Netflix

6 years agoda(4): Short-circuit unnecessary BIO_FLUSH commands
asomers [Mon, 20 Nov 2017 22:27:33 +0000 (22:27 +0000)]
da(4): Short-circuit unnecessary BIO_FLUSH commands

sys/cam/scsi/scsi_da.c
Complete BIO_FLUSH commands immediately if the da(4) device hasn't
been written to since the last flush. If we haven't written to the
device, there is no reason to send a flush.

Submitted by: gibbs
Reviewed by: imp
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13106

6 years agoRemove a couple variables that are unused after r325790.
brooks [Mon, 20 Nov 2017 22:18:24 +0000 (22:18 +0000)]
Remove a couple variables that are unused after r325790.

Reported by: rpokala

6 years agoFix multiple bugs in cam_strmatch
asomers [Mon, 20 Nov 2017 22:01:45 +0000 (22:01 +0000)]
Fix multiple bugs in cam_strmatch

* Wrongly matches strings that are shorter than the pattern
* Fails to match negative character sets
* Fails to match character sets that aren't at the end of the pattern
* Fails to match character ranges

Reviewed by: imp
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13173

6 years agoFix off-by-one error in bit_nclear() usage
shurd [Mon, 20 Nov 2017 21:57:04 +0000 (21:57 +0000)]
Fix off-by-one error in bit_nclear() usage

bit_nclear() takes the bit numbers for the start and end bits, not the start
and a count.  This was resulting in memory corruption past the end of the
bitstr_t.

Sponsored by: Limelight Networks

6 years agoPrint ZAC device type in "camcontrol identify" output
asomers [Mon, 20 Nov 2017 21:56:25 +0000 (21:56 +0000)]
Print ZAC device type in "camcontrol identify" output

ZAC (Zoned-device ATA Command set) is the standard for addressing SMR
(shingled magnetic recording) devices over SATA.  Drives indicate their
support for ZAC in their IDENTIFY block. Print whether and how a drive
supports ZAC in the output of "camcontrol identify".

Reviewed by: ken, imp
MFC after: 3 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D13171

6 years agomsdosfs(5): Reflect READONLY attribute in file mode
cem [Mon, 20 Nov 2017 21:38:24 +0000 (21:38 +0000)]
msdosfs(5): Reflect READONLY attribute in file mode

Msdosfs allows setting READONLY by clearing the owner write bit of the file
mode.  (While here, correct the misspelling of S_IWUSR as VWRITE.  No
functional change.)

In msdosfs_getattr, intuitively reflect that READONLY attribute to userspace
in the file mode.

Reported by: Karl Denninger <karl AT denninger.net>
Sponsored by: Dell EMC Isilon

6 years agoInstall strings unconditionally
emaste [Mon, 20 Nov 2017 20:55:41 +0000 (20:55 +0000)]
Install strings unconditionally

Previously it was enabled by WITH_/WITHOUT_TOOLCHAIN, but it is commonly
expected to be available and may have non-toolchain consumers.  As it
is now taken from the BSD-licensed ELF Tool Chain project, just install
it unconditionally.

PR: 213665, 223725
Reviewed by: bdrewery
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D8398

6 years agoUpdate a comment in brelse() to match reality.
scottl [Mon, 20 Nov 2017 20:53:03 +0000 (20:53 +0000)]
Update a comment in brelse() to match reality.

6 years agoiconv: Fix a pointer mismatch.
pfg [Mon, 20 Nov 2017 20:05:30 +0000 (20:05 +0000)]
iconv: Fix a pointer mismatch.

Catch NULL pointer earlier, check for empty string later.
Apparently this fixes a GCC8 warning.

Obtained from: NetBSD (CVS Rev. 1.21, 1.22) through DragonFlyBSD
MFC after: 1 week

6 years agoIndent protection and some other oops from the prvious commits.
pfg [Mon, 20 Nov 2017 19:56:11 +0000 (19:56 +0000)]
Indent protection and some other oops from the prvious commits.

6 years agocxgbe(4): Add a custom board to the device id list.
np [Mon, 20 Nov 2017 19:50:48 +0000 (19:50 +0000)]
cxgbe(4): Add a custom board to the device id list.

MFC after: 1 week
Sponsored by: Chelsio Communications

6 years agoGeneral further adoption of SPDX licensing ID tags.
pfg [Mon, 20 Nov 2017 19:49:47 +0000 (19:49 +0000)]
General further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

6 years agoinclude: further adoption of SPDX licensing ID tags.
pfg [Mon, 20 Nov 2017 19:45:28 +0000 (19:45 +0000)]
include: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

6 years agosys: further adoption of SPDX licensing ID tags.
pfg [Mon, 20 Nov 2017 19:43:44 +0000 (19:43 +0000)]
sys: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

6 years agosys/dev: further adoption of SPDX licensing ID tags.
pfg [Mon, 20 Nov 2017 19:36:21 +0000 (19:36 +0000)]
sys/dev: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.

6 years agoevdev: change USB scancode 0x54 from KEY_SLASH to KEY_KPSLASH
wulf [Mon, 20 Nov 2017 19:25:22 +0000 (19:25 +0000)]
evdev: change USB scancode 0x54 from KEY_SLASH to KEY_KPSLASH

Submitted by: dumbbell
Reviewed by: gonzo, wulf
Approved by: gonzo (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D12983

6 years agoFix evdev codes for slash and asterisk numpad keys of AT-keyboards
wulf [Mon, 20 Nov 2017 19:20:05 +0000 (19:20 +0000)]
Fix evdev codes for slash and asterisk numpad keys of AT-keyboards

Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 2 weeks

6 years agoevdev: Export EVDEV_SUPPORT kernel option through feature facility
wulf [Mon, 20 Nov 2017 19:17:43 +0000 (19:17 +0000)]
evdev: Export EVDEV_SUPPORT kernel option through feature facility

Suggested by: netchild
Reviewed by: gonzo
Approved by: gonzo (mentor)
MFC after: 1 week

6 years agoUse chroot(8) when invoking realpath(1) when setting BOOTFILES,
gjb [Mon, 20 Nov 2017 15:03:03 +0000 (15:03 +0000)]
Use chroot(8) when invoking realpath(1) when setting BOOTFILES,
otherwise realpath(1) exits due to a nonexistent directory.

Sponsored by: The FreeBSD Foundation

6 years agoMFV r326007: less v529.
delphij [Mon, 20 Nov 2017 08:52:33 +0000 (08:52 +0000)]
MFV r326007: less v529.

MFC after: 2 weeks

6 years agoVendor import of less v529.
delphij [Mon, 20 Nov 2017 06:53:49 +0000 (06:53 +0000)]
Vendor import of less v529.

6 years agoEliminate 1 XX_VirtToPhys() and 2 XX_PhysToVirt() calls from if_dtsec(4)
jhibbits [Mon, 20 Nov 2017 04:32:01 +0000 (04:32 +0000)]
Eliminate 1 XX_VirtToPhys() and 2 XX_PhysToVirt() calls from if_dtsec(4)

XX_VirtToPhys(), by way of pmap_kextract(), is an expensive operation.
Profiling via dtrace during a series of iperf tests I found 16111 / 30432
stack frames were located in mmu_booke_kextract(), so eliminating this
expensive call should improve performance slightly.  XX_PhysToVirt() is not
as expensive, but redundant calls in this context is wasteful.

6 years agoReduce code duplication for wlan(4) interface creation in network.subr.
avos [Sun, 19 Nov 2017 20:18:21 +0000 (20:18 +0000)]
Reduce code duplication for wlan(4) interface creation in network.subr.

Since wlandebug(8) can accept any (original or changed) interface name
this part may be simplified a bit.

6 years agowlandebug(8): allow fallback to old behavior + improve name checks.
avos [Sun, 19 Nov 2017 20:13:11 +0000 (20:13 +0000)]
wlandebug(8): allow fallback to old behavior + improve name checks.

- Treat passed interface name as original if ifconfig_get_orig_name() fails.
- Reject interface name if it does not start from "wlan".

6 years agoMerge ^/head r325842 through r325998.
hselasky [Sun, 19 Nov 2017 12:36:03 +0000 (12:36 +0000)]
Merge ^/head r325842 through r325998.