freebsd.git
7 years agoTake into account mas7/8 when reading/writing TLB entries on e6500
jhibbits [Tue, 23 Aug 2016 04:26:30 +0000 (04:26 +0000)]
Take into account mas7/8 when reading/writing TLB entries on e6500

Summary: Current booke/pmap code ignores mas7 and mas8 on e6500 CPU.

Submitted by: Ivan Krivonos <int0dster_gmail.com>
Differential Revision: https://reviews.freebsd.org/D7606

7 years agonet: Split RNDIS protocol structs/macros out of dev/usb/net/if_urndisreg.h
sephe [Tue, 23 Aug 2016 02:54:06 +0000 (02:54 +0000)]
net: Split RNDIS protocol structs/macros out of dev/usb/net/if_urndisreg.h

So that Hyper-V can leverage them instead of rolling its own definition.

Discussed with: hps
Reviewed by: hps
MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7592

7 years agoindent(1): Fix off-by-one in control flow leading dead code.
pfg [Tue, 23 Aug 2016 02:07:08 +0000 (02:07 +0000)]
indent(1): Fix off-by-one in control flow leading dead code.

Coverity correctly reported that it's impossible for /comparison/ to be 0
here, because the only way for the for loop to end is by /comparison/
being < 0.

Fortunately the consequences of this bug weren't severe; for duplicated
entries in the typedef names file it would unnecessarily duplicate strings
with strdup(), but pointers to those would replace existing ones. So this
was a memory leak at worst.

CID:  1361477
Obtained from:  Piotr Stephaniak

7 years agoFix missing substitution of @SBINDIR@ in resolvconf scripts
badger [Tue, 23 Aug 2016 02:06:20 +0000 (02:06 +0000)]
Fix missing substitution of @SBINDIR@ in resolvconf scripts

Certain features, such as resolv_conf_passthrough=NULL, do not work
correctly due to this missing substitution.

Also remove the @PREFIX@ substitution, which is no longer needed.

Reviewed by: pfg
Approved by: vangyzen (mentor)
MFC after: 1 week
Sponsored by: Dell Inc.
Differential Revision: https://reviews.freebsd.org/D7572

7 years agoindent(1): add some comments to quiet down Coverity.
pfg [Tue, 23 Aug 2016 01:58:02 +0000 (01:58 +0000)]
indent(1): add some comments to quiet down Coverity.

Hopefully adding comments should help explain the code to both static
checkers and humans.

CID: 976543, 976544, 976545
Obtained from: Piotr Stephaniak

7 years agoindent(1): Fix memory leaks pointed out by clang-analyzer.
pfg [Tue, 23 Aug 2016 01:40:45 +0000 (01:40 +0000)]
indent(1): Fix memory leaks pointed out by clang-analyzer.

Shift the responsibility of allocating memory for the string duplicate
from the caller (set_option, add_typedefs_from_file) to the callee
(add_typename) as it has more knowledge about when the duplication
actually needs to occur.

Taken from: Piotr Stefaniak

7 years agoDo not include file from dt-bindings and simply use the already present defines.
manu [Tue, 23 Aug 2016 00:46:22 +0000 (00:46 +0000)]
Do not include file from dt-bindings and simply use the already present defines.

Reported by: jmcneill
MFC after: 1 week

7 years agoRename ORDERED to BOOTSTRAP since no order is respected in the list.
bdrewery [Mon, 22 Aug 2016 22:51:10 +0000 (22:51 +0000)]
Rename ORDERED to BOOTSTRAP since no order is respected in the list.

The directories in SUBDIR_ORDERED are built in parallel, so the name is
misleading.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

7 years agoFor 'make <directory>' hook into the all_subdir_<directory> targets.
bdrewery [Mon, 22 Aug 2016 22:51:07 +0000 (22:51 +0000)]
For 'make <directory>' hook into the all_subdir_<directory> targets.

This fixes parallel build issues when trying to depend on ${SUBDIR}.  An
example of this in share/i18n/csmapper/Makefile where mapper.dir depends
on ${SUBDIR} having been traversed and built already.  Before this
change running make in that directory would build the subdirectories
twice.  This led to obscure build races.  While reworking that build
may be possible, the framework should not so easily allow creating such
problems.

Now depending on <directory> will properly redirect to the
all_subdir_<directory> target rather than invoking the inline shell.

This also makes 'make -jX <directory>' now respect any
SUBDIR_DEPEND_<directory> statements when SUBDIR_PARALLEL is defined.
This is not entirely intended and may be changed later.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division

7 years agoAlways define the various <target>_subdir_<directory> targets, even if not used.
bdrewery [Mon, 22 Aug 2016 22:51:04 +0000 (22:51 +0000)]
Always define the various <target>_subdir_<directory> targets, even if not used.

This is part of an effort to cleanup handling of some edge cases
involving 'make <directory>'.  It also provides the targets for
other uses.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division

7 years agoStop using _SUBDIR internally for non-SUBDIR_PARALLEL builds.
bdrewery [Mon, 22 Aug 2016 22:51:01 +0000 (22:51 +0000)]
Stop using _SUBDIR internally for non-SUBDIR_PARALLEL builds.

This is unifying more of the logic.  Rather than create targets such
as 'all: all_subdir_foo' when using SUBDIR_PARALLEL and using
'all: _SUBDIR' when not using SUBDIR_PARALLEL, always use the
expanded out <target>_subdir_<directory> pattern.  When not using
SUBDIR_PARALLEL, have each directory-target depend on the previously
defined targets as to respect the *order* of SUBDIR.

Using 'make -N' now prints all directory traversals individually rather
than using a loop, since a loop is no longer used to traverse.

This is part of an effort to cleanup handling of some edge cases
involving 'make <directory>' and making it simpler in the sense
that the pattern used to build is the same for all modes.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division

7 years agoFix building on read-only source trees.
bdrewery [Mon, 22 Aug 2016 22:50:58 +0000 (22:50 +0000)]
Fix building on read-only source trees.

This partially reverts r296702 and reworks the original check to only
look in .CURDIR.  This avoids ever trying to rebuild a .src file that is
already in the source tree as an override.

PR: 211952
MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division

7 years ago1) Back out r304607 case 2). fgetwln() as its pair fgetln() supposed to
ache [Mon, 22 Aug 2016 22:28:41 +0000 (22:28 +0000)]
1) Back out r304607 case 2). fgetwln() as its pair fgetln() supposed to
return partial line on any errors. See the comment in fgetln.c.
Add corresponding comment to fgetwln() too.
2) Rewrite r304607 case 1).
3) Remove "Fast path" from __fgetwc_mbs() since it can't detect encoding
errors and ignores them all.

PR:     212033
MFC after:      7 days

7 years agoPrefer C-style comments in assembly sources.
jkim [Mon, 22 Aug 2016 21:49:17 +0000 (21:49 +0000)]
Prefer C-style comments in assembly sources.

7 years agoFix white spaces in assembly sources.
jkim [Mon, 22 Aug 2016 21:30:59 +0000 (21:30 +0000)]
Fix white spaces in assembly sources.

7 years agoFix build for !SMP kernels after the Xen MSIX workaround.
jhb [Mon, 22 Aug 2016 21:23:17 +0000 (21:23 +0000)]
Fix build for !SMP kernels after the Xen MSIX workaround.

Move msix_disable_migration under #ifdef SMP since it doesn't make sense
for !SMP kernels.

PR: 212014
Reported by: Glyn Grinstead <glyn@grinstead.org>
MFC after: 3 days

7 years agoBuild OpenSSL assembly sources for arm. Tested with Raspberry Pi 2 Model B.
jkim [Mon, 22 Aug 2016 20:59:34 +0000 (20:59 +0000)]
Build OpenSSL assembly sources for arm.  Tested with Raspberry Pi 2 Model B.

MFC after: 1 week

7 years agoRemove support for SSH1 as it is already disabled in our OpenSSH.
roberto [Mon, 22 Aug 2016 20:48:46 +0000 (20:48 +0000)]
Remove support for SSH1 as it is already disabled in our OpenSSH.

Submitted by: vangyzen
MFC after: 2 weeks

7 years agoDon't separate the status stage of the XHCI USB control transfers into
hselasky [Mon, 22 Aug 2016 19:32:50 +0000 (19:32 +0000)]
Don't separate the status stage of the XHCI USB control transfers into
its own job because this breaks the simplified QEMU XHCI TRB parser,
which expects the complete USB control transfer as a series of back to
back TRBs. The old behaviour is kept under #ifdef in case this change
breaks enumeration of any USB devices.

PR: 212021
MFC after: 1 week

7 years agoAdd support for Ed25519 keys.
roberto [Mon, 22 Aug 2016 19:27:20 +0000 (19:27 +0000)]
Add support for Ed25519 keys.

Reported by: mwlucas
MFH: 2 weeks

7 years agoFix the arm64 non-SMP build, active_irq is a uint64_t so cast it through
andrew [Mon, 22 Aug 2016 19:05:11 +0000 (19:05 +0000)]
Fix the arm64 non-SMP build, active_irq is a uint64_t so cast it through
a uintmax_t.

Obtained from: ABT Systems Ltd
MFC after: 1 week
Sponsored by: The FreeBSD Foundation

7 years agoRemove duplicate symbol from libhx509 version-script.map
emaste [Mon, 22 Aug 2016 18:50:57 +0000 (18:50 +0000)]
Remove duplicate symbol from libhx509 version-script.map

Upstream commit r21331 (7758a5d0) added semiprivate function
_hx509_request_to_pkcs10 twice. This change has been committed upstream
as 8ef0071d.

7 years agoFix building for ARM kernel that have FLASHADDR, PHYSADDR and LOADERRAMADDR defined.
manu [Mon, 22 Aug 2016 18:33:56 +0000 (18:33 +0000)]
Fix building for ARM kernel that have FLASHADDR, PHYSADDR and LOADERRAMADDR defined.

Pointy Hat: myself

Reported by: bz

7 years agoEnsure map is valid, even before userland exists and the fault address
andrew [Mon, 22 Aug 2016 18:19:46 +0000 (18:19 +0000)]
Ensure map is valid, even before userland exists and the fault address
register points to an address in the userland range.

Obtained from: ABT Systems Ltd
MFC after: 1 week
Sponsored by: the FreeBSD Foundation

7 years agoRemove cross references to el(4) and ie(4).
jhb [Mon, 22 Aug 2016 18:17:29 +0000 (18:17 +0000)]
Remove cross references to el(4) and ie(4).

7 years agoFix pmap_update_entry, pmap_invalidate_range takes the end address, not
andrew [Mon, 22 Aug 2016 18:12:44 +0000 (18:12 +0000)]
Fix pmap_update_entry, pmap_invalidate_range takes the end address, not
the size.

Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation

7 years agoRegenerate src.conf.5 after r304616
emaste [Mon, 22 Aug 2016 17:53:18 +0000 (17:53 +0000)]
Regenerate src.conf.5 after r304616

7 years agoForcibly disable MK_TESTS if building without C++
emaste [Mon, 22 Aug 2016 17:45:30 +0000 (17:45 +0000)]
Forcibly disable MK_TESTS if building without C++

Several atf components require C++, and the test suite is not usable
if building WITHOUT_CXX.

Reviewed by: bdrewery, jmmv
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D7597

7 years agoMake CloudABI work on i386.
ed [Mon, 22 Aug 2016 17:37:31 +0000 (17:37 +0000)]
Make CloudABI work on i386.

Copy over amd64's cloudabi64_sysvec.c into i386 and tailor it to work.
Again, we use a system call convention similar to FreeBSD, except that
there is no support for indirect system calls (%eax == 0).

Where i386 differs from amd64 is that we have to store thread/process
entry arguments on the stack instead of using registers. We also have to
put an extra pointer on the stack for TLS (for GSBASE). Place that
pointer in the empty slot that is normally used to hold return
addresses. That seems to keep the code simple.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D7590

7 years agoFurther fixes for translation of PrintScreen/SysRq.
bde [Mon, 22 Aug 2016 16:39:51 +0000 (16:39 +0000)]
Further fixes for translation of PrintScreen/SysRq.

The previous fix was tested mainly on 3 AT keyboards with USB adaptors where
it works.  1 USB keyboard doesn't translate Alt-PrintScreen, so the software
has to do it.

Reorganize a little to share some code and to not translate the unusual usb
scan code0x8a unless an Alt modified is set.  Remove redundant check of Alt
modifiers.  Translation now more clearly filters out Alt-PrintScreen before
the check.

The table of errors fixed in the previous commit had many bugs.  Correct
table:

K_RAW  Ctl-PrintScreen:                                 E0-2A-E0-37 -> E0-37
K_RAW  Alt-PrintScreen (with 4 comb. of Ctl/Shift):     79 -> 54
K_RAW  Pause/Break (with 4 comb. of Alt/Shift):         E0-46 -> E1-1D-45
K_CODE PrintScreen (with 4 comb. of Ctl/Shift):         54 -> 5c
K_CODE Alt-PrintScreen (with 4 comb. of Ctl/Shift):     7e -> 54
K_CODE Pause/Break (with 8 comb. of Ctl/Alt/Shift):     6c -> 68

That is 25 of 32 shift combinations for 2 keys fixed.  All 16 combinations
were broken for K_CODE and thus also for K_XLATE.

7 years agoBump __FreeBSD_version for C++11 thread_local support in r303795.
bdrewery [Mon, 22 Aug 2016 15:52:03 +0000 (15:52 +0000)]
Bump __FreeBSD_version for C++11 thread_local support in r303795.

PR: 192320

7 years agoFix error processing.
ache [Mon, 22 Aug 2016 15:44:54 +0000 (15:44 +0000)]
Fix error processing.
1) Don't forget to set __SERR on __slbexpand() error.
2) Check for __fgetwc() errors using errno. Don't check for __SERR
as PR suggested, it user-visible flag which can stick from previous
functions and stdio code don't check it for this purpose.

PR:     212033
MFC after:      3 days

7 years agoTemporarily disable the optimization from r304436
rstone [Mon, 22 Aug 2016 15:27:37 +0000 (15:27 +0000)]
Temporarily disable the optimization from r304436

r304436 attempted to optimize the handling of incoming UDP packet by only
making an expensive call to in_broadcast() if the mbuf was marked as an
broadcast packet.  Unfortunately, this cannot work in the case of point-to-
point L2 protocols like PPP, which have no notion of "broadcast".

Discussions on how to properly fix r304436 are ongoing, but in the meantime
disable the optimization to ensure that no existing network setups are broken.

Reported by: bms

7 years agoFix calloc(3) argument order.
araujo [Mon, 22 Aug 2016 15:01:39 +0000 (15:01 +0000)]
Fix calloc(3) argument order.

Reviewed by: trasz
MFC after: 4 weeks.
Differential Revision: https://reviews.freebsd.org/D7532

7 years agoUse switch statements in pmap_remove_pages. While only one level of
andrew [Mon, 22 Aug 2016 14:53:39 +0000 (14:53 +0000)]
Use switch statements in pmap_remove_pages. While only one level of
pagetable is supported more will be added soon to support removing
superpages.

Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation

7 years agoioat(4): Allow callouts to be scheduled after hw reset
cem [Mon, 22 Aug 2016 14:51:09 +0000 (14:51 +0000)]
ioat(4): Allow callouts to be scheduled after hw reset

is_completion_pending governs whether or not a callout will be scheduled
when new work is queued on the IOAT device.  If true, a callout is
already scheduled, so we do not need a new one.  If false, we schedule
one and set it true.  Because resetting the hardware completed all
outstanding work but failed to clear is_completion_pending, no new
callout could be scheduled after a reset with pending work.

This resulted in a driver hang for polled-only work.

7 years agoioat(4): Don't process events past queue head
cem [Mon, 22 Aug 2016 14:51:07 +0000 (14:51 +0000)]
ioat(4): Don't process events past queue head

Fix a race where the completion routine could overrun the active ring
area in some situations.

7 years agoIncrease the maximum RX/TX queue size. This allows for a RX/TX queue
hselasky [Mon, 22 Aug 2016 13:43:25 +0000 (13:43 +0000)]
Increase the maximum RX/TX queue size. This allows for a RX/TX queue
size of 16384 mbufs. Previously the limit was 8192.

Sponsored by: Mellanox Technologies
MFC after: 1 week

7 years agoUse pmap_update_entry in pmap_enter when updating an entry with a new
andrew [Mon, 22 Aug 2016 12:56:40 +0000 (12:56 +0000)]
Use pmap_update_entry in pmap_enter when updating an entry with a new
physical address. This is required when either mapping is writeable.

While here remove an unneeded call to pmap_pde, we already have the pde
from earlier in the function.

Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation

7 years agoAdd sysctls to report on superpages statistics. While here add extra
andrew [Mon, 22 Aug 2016 12:17:40 +0000 (12:17 +0000)]
Add sysctls to report on superpages statistics. While here add extra
logging to these paths.

Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation

7 years agoAdd a size argument to pmap_update_entry.
andrew [Mon, 22 Aug 2016 10:50:30 +0000 (10:50 +0000)]
Add a size argument to pmap_update_entry.
Make use of this in pmap_promote_l2.

Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation

7 years agoFix for invalid use of bits in input context. Basically split
hselasky [Mon, 22 Aug 2016 10:21:25 +0000 (10:21 +0000)]
Fix for invalid use of bits in input context. Basically split
configuring of EP0 and non-EP0 into xhci_cmd_evaluate_ctx() and
xhci_cmd_configure_ep() respectivly. This resolves some errors when
using XHCI under QEMU and gets is more in line with the XHCI
specification.

PR: 212021
MFC after: 1 week

7 years agoAdd KASSERTS in pmap_alloc_l3 to ensure we are not encountering superpages
andrew [Mon, 22 Aug 2016 10:21:09 +0000 (10:21 +0000)]
Add KASSERTS in pmap_alloc_l3 to ensure we are not encountering superpages
when we don't yet expect them;

Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation

7 years agohyperv/hn: Factor out function to simplify NVS request sending
sephe [Mon, 22 Aug 2016 08:00:14 +0000 (08:00 +0000)]
hyperv/hn: Factor out function to simplify NVS request sending

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7578

7 years agohyperv/hn: Factor out function to execute NVS transactions.
sephe [Mon, 22 Aug 2016 07:51:46 +0000 (07:51 +0000)]
hyperv/hn: Factor out function to execute NVS transactions.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7577

7 years agohyperv/hn: Get rid of netvsc_dev
sephe [Mon, 22 Aug 2016 07:44:11 +0000 (07:44 +0000)]
hyperv/hn: Get rid of netvsc_dev

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7575

7 years agohyperv/hn: Move chimney sending buffer to hn_softc
sephe [Mon, 22 Aug 2016 07:34:39 +0000 (07:34 +0000)]
hyperv/hn: Move chimney sending buffer to hn_softc

And don't recreate chimney sending buffer for each primary channel
open, it is now created in device_attach DEVMETHOD and destroyed
in device_detach DEVMETHOD.

MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7574

7 years agoAdd a missing change in r304575.
yongari [Mon, 22 Aug 2016 03:28:06 +0000 (03:28 +0000)]
Add a missing change in r304575.

Noticed by: jhb

7 years agoImprove the locking when sending user messages.
tuexen [Mon, 22 Aug 2016 01:45:29 +0000 (01:45 +0000)]
Improve the locking when sending user messages.

First, keep a ref count on the stcb after looking it up, as
done in the other lookup cases.
Second, before looking again at sp, ensure that it is not
freed, because the assoc is about to be freed.

MFC after: 3 days

7 years agoAdd Killer E2400 to the supported hardware list.
yongari [Mon, 22 Aug 2016 01:28:02 +0000 (01:28 +0000)]
Add Killer E2400 to the supported hardware list.

7 years agoAdd Killer E2400 Gigabit Ethernet support.
yongari [Mon, 22 Aug 2016 01:19:05 +0000 (01:19 +0000)]
Add Killer E2400 Gigabit Ethernet support.
It seems Killer E2200/E2400 has a BIOS misconfiguration or silicon
bug which triggers DMA write errors when driver uses advertised
maximum payload size.  Force the maximum payload size to 128 bytes
in DMA configuration.
This change should fix occasional DMA write errors reported on
Killer E2200.

Tested by: <psy0nic@sys-tek.org>

7 years agoCorrect DMA channel number selection on AR816x family of
yongari [Mon, 22 Aug 2016 01:06:54 +0000 (01:06 +0000)]
Correct DMA channel number selection on AR816x family of
controllers. For Gigabit Ethernet version of AR816x, AR813x/AR815x
except L1D controller, use vendor recommended ASPM parameters.
While here, increase alc_dma_burst array size.  Broken H/W can
return bogus value in theory.

7 years agoRemove duplicate code, which is not protected by the appropriate locks.
tuexen [Mon, 22 Aug 2016 00:40:45 +0000 (00:40 +0000)]
Remove duplicate code, which is not protected by the appropriate locks.

MFC after: 3 days

7 years agoRemove the kernel optoion for IPSEC_FILTERTUNNEL, which was deprecated
bz [Sun, 21 Aug 2016 18:55:30 +0000 (18:55 +0000)]
Remove the kernel optoion for IPSEC_FILTERTUNNEL, which was deprecated
more than 7 years ago in favour of a sysctl in r192648.

7 years agoMake the UKBD USB transfers double buffered and set them up one by one,
hselasky [Sun, 21 Aug 2016 18:37:21 +0000 (18:37 +0000)]
Make the UKBD USB transfers double buffered and set them up one by one,
so they are memory independent which allows for handling panics
triggered by the keyboard driver itself, typically via CTRL+ALT+ESC
sequences. Or if the USB keyboard driver was processing a key at the
moment of panic. Allow UKBD to be attached while keyboard polling is active.

Tested by: Bruce Evans <bde@freebsd.org>
MFC after: 1 week

7 years agoAdd the "-n" flag to cron(8), to prevent it from daemonizing.
trasz [Sun, 21 Aug 2016 18:12:49 +0000 (18:12 +0000)]
Add the "-n" flag to cron(8), to prevent it from daemonizing.
This makes it possible to use it with external supervisors.
The "-n" flag name is compatible with Linux, NetBSD, and OpenBSD.

Reviewed by: jilles, pfg, wblock
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D7581

7 years agoFix translation of the PrintScreen/SysRq and Pause/Break keys. Almost
bde [Sun, 21 Aug 2016 16:06:00 +0000 (16:06 +0000)]
Fix translation of the PrintScreen/SysRq and Pause/Break keys.  Almost
everything was broken.  The cases that I noticed were Ctrl-PrintScreen
not being mapped to the virtual scancode 0x5c (debug) and Pause not being
mapped to the physical/virtual scancode 0x46 (slock).

These keys are the most complicated ones due to kludges to give some
compatibility back to before AT keyboards.

Alt-PrintScreen must pretend to be a separate key from PrintScreen
even at the "raw" level.  The (unique) usb code for it is 0x8a and we
just have to map this to our unique virtual scancode 0x54, but we
mapped it first to the internal code 0x7e and then to 0x79 which is a
key on the Japanese 106/109 keyboard.  This fix is under the
UKBD_EMULATE_ATASCANCODE option which shouldn't be used for non-AT
keyboards.  If it is, then the syscons Japanese keymaps have nothing
of importance for code 0x79 and can easily be changed.  0x54 is also
unimportant in Japanese and US keymaps.

NonAlt-PrintScreen and NonCtl-Pause/Break had many much larger bugs with
smaller compatibility problems from fixing them.  The details are too
ugly to give here.  Summary of the changed (hex) codes:

K_RAW  PrintScreen (Ctl, Shift, Ctl-Shift):             E0-2A-E0-37 -> E0-37
K_RAW  Alt-PrintScreen (all shift states):              79 -> 54
K_RAW  Pause/Break (unshifted, Shift, Alt, Alt-Shift)): E0-46 -> E1-1D-45
K_CODE ALT-PrintScreen (all shift states):              79 -> 54

That is 15 of 32 shift combinations for 2 keys fixed, with 8 easy cases
from the 79 -> 54 remapping.

The difference is only large and with no workaround using a keymap for
for K_RAW, but this affects other modes when ukbd is layered under kbmux
because kbmux keeps all subdevices in K_RAW mode and translates.  Oops.
I used kbdmux to generate the above table of changes.

7 years agoallwinner: Remove a20/a20_cpu_cfg.c from the build.
manu [Sun, 21 Aug 2016 16:03:44 +0000 (16:03 +0000)]
allwinner: Remove a20/a20_cpu_cfg.c from the build.
This was needed when we used the SoC specific timer and not the generic-timer.

7 years agoAdd source files generated from the 32-bit system call table.
ed [Sun, 21 Aug 2016 16:02:25 +0000 (16:02 +0000)]
Add source files generated from the 32-bit system call table.

7 years agoAdd CPU independent code for running 32-bits CloudABI executables.
ed [Sun, 21 Aug 2016 16:01:30 +0000 (16:01 +0000)]
Add CPU independent code for running 32-bits CloudABI executables.

Essentially, this is a literal copy of the code in sys/compat/cloudabi64,
except that it now makes use of 32-bits datatypes and limits. In
sys/conf/files, we now need to take care to build the code in
sys/compat/cloudabi if either COMPAT_CLOUDABI32 or COMPAT_CLOUDABI64 is
turned on.

This change does not yet include any of the CPU dependent bits. Right
now I have implementations for running i386 binaries both on i386 and
x86-64, which I will send out for review separately.

7 years agoFix s/64/32/ conversion errors in the system call table.
ed [Sun, 21 Aug 2016 15:56:19 +0000 (15:56 +0000)]
Fix s/64/32/ conversion errors in the system call table.

We should pull in the 32 bit headers when using this system call table.

7 years agoImport the 32-bit system call table and data types into the tree.
ed [Sun, 21 Aug 2016 15:41:19 +0000 (15:41 +0000)]
Import the 32-bit system call table and data types into the tree.

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

7 years agoRemove the ie(4) hardware list from the release documentation
bjk [Sun, 21 Aug 2016 15:39:46 +0000 (15:39 +0000)]
Remove the ie(4) hardware list from the release documentation

The driver was removed by jhb in r304513, and the &hwlist.ie; entity
is no longer generated, causing the website build to fail.

7 years agoDon't forget to define __ELF_WORD_SIZE.
ed [Sun, 21 Aug 2016 15:37:49 +0000 (15:37 +0000)]
Don't forget to define __ELF_WORD_SIZE.

Without it, we only obtain the ELF types native to the system. In this
we explicitly want the 64-bit versions.

7 years agoAdd a utility macro for converting 64-bit pointers to native pointers.
ed [Sun, 21 Aug 2016 15:36:18 +0000 (15:36 +0000)]
Add a utility macro for converting 64-bit pointers to native pointers.

Right now we're casting uint64_t's to native pointers. This isn't
causing any problems right now, but if we want to provide a 32-bit
compatibility layer that works on 64-bit systems as well, this will
cause problems. Casting a uint32_t to a 64-bit pointer throws a compiler
error.

Introduce a TO_PTR() macro that casts the value to uintptr_t before
casting it to a pointer.

7 years agoMove the linker script from cloudabi64/ to cloudabi/.
ed [Sun, 21 Aug 2016 15:14:06 +0000 (15:14 +0000)]
Move the linker script from cloudabi64/ to cloudabi/.

It turns out that it works perfectly fine for generating 32-bits vDSOs
as well. While there, get rid of the extraneous .s file extension.

7 years agoUse the right _MAX constant.
ed [Sun, 21 Aug 2016 09:32:20 +0000 (09:32 +0000)]
Use the right _MAX constant.

Though uio_resid is of type ssize_t, we need to take into account that
this source file contains an implementation specific to a certain
userspace pointer size. If this file provided 32-bit implementations,
this should have used INT32_MAX, even when running a 64-bit kernel.

This change has no effect, but is simply in preparation for adding
support for running 32-bit CloudABI executables.

7 years agoUse memcpy() to copy 64-bit timestamps into the syscall return values.
ed [Sun, 21 Aug 2016 07:41:11 +0000 (07:41 +0000)]
Use memcpy() to copy 64-bit timestamps into the syscall return values.

On 32-bit platforms, our 64-bit timestamps need to be split up across
two registers. A simple assignment to td_retval[0] will cause the top 32
bits to get lost. By using memcpy(), we will automatically either use 1
or 2 registers depending on the size of register_t.

7 years agoRewrite the vDSOs for CloudABI in assembly.
ed [Sun, 21 Aug 2016 07:28:38 +0000 (07:28 +0000)]
Rewrite the vDSOs for CloudABI in assembly.

The reason why the old vDSOs were written in C using inline assembly was
purely because they were embedded in the C library directly as static
inline functions. This was practical during development, because it
meant you could invoke system calls without any library dependencies.
The vDSO was simply a copy of these functions.

Now that we require the use of the vDSO, there is no longer any need for
embedding them in C code directly. Rewriting them in assembly has the
advantage that they are closer to ideal (less useless branching, less
assumptions about registers remaining unclobbered by the kernel, etc).
They are also easier to build, as they no longer depend on the C type
information for CloudABI.

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

7 years ago[mips] add support for the "creative" GNU extensions and IRIX hilarity around MIPS...
adrian [Sun, 21 Aug 2016 00:48:41 +0000 (00:48 +0000)]
[mips] add support for the "creative" GNU extensions and IRIX hilarity around MIPS LO16/HI16 relocations.

This was .. an interesting headache.

There are two halves:

* The earlier IRIX stuff (yes, early) occasionally would do dead
  code removal and generate multiple consecutive LO16 entries.
  If this is done for REL entries then it's fine - there's no
  state kept between them.  But gcc 5.x seems to do this for
  RELA entries.

eg:

HI1 LO1 HI2 LO2 LO3 HI4 LO4

.. in this instance, LO2 should affect HI2, but LO3 doesn't at all
affect anything.  The matching HI3 was in code that was deleted
as "dead code".

Then, the next one:

* A "GCC extension" allows for multiple HI entries before a LO entry;
  and all of those HI entries use the first LO entry as their basis
  for RELA offset calculations.

It does this so GCC can also do dead code deletion without necessarily
having to geneate fake relocation entries for balanced HI/LO RELA
entries.

eg:

HI1 LO1 HI2 HI3 HI4 LO4 LO5 HI6 LO6 LO7

in this instance, HI{2,3,4} are the same relocation as LO4 (eg .bss)
and need to be buffered until LO4 - then the RELA offset is applied
from LO4 to HI{2,3,4} calculations.

/And/, the AHL from HI4 is used during the LO4 relocation calculation,
just like in the normal (ie, before this commit) implementation.

Then, LO5 doesn't trigger anything - the HI "buffer" is empty,
so there are no HI relocations to flush out.

HI6/LO6 are normal, and LO7 doesn't trigger any HI updates.

Tested:

* AR9344 SoC, kernel modules, using gcc-5.3 (mips-gcc-5.3.0 package)

Notes:

* Yes, I do feel dirty having written this code.

Reviewed by: imp (after a handful of "this should be on fire" moments wrt gcc and this code)

7 years agoPermit disabling net.inet.udp.require_l2_bcast in VIMAGE kernels.
zec [Sat, 20 Aug 2016 22:12:26 +0000 (22:12 +0000)]
Permit disabling net.inet.udp.require_l2_bcast in VIMAGE kernels.

The default value of the tunable introduced in r304436 couldn't be
effectively overrided on VIMAGE kernels, because instead of being
accessed via the appropriate VNET() accessor macro, it was accessed
via the VNET_NAME() macro, which resolves to the (should-be) read-only
master template of initial values of per-VNET data.  Hence, while the
value of udp_require_l2_bcast could be altered on per-VNET basis, the
code in udp_input() would ignore it as it would always read the default
value (one) from the VNET master template.

Silence from: rstone

7 years agoDisable L2 caching for UDP over IPv6
karels [Sat, 20 Aug 2016 20:46:53 +0000 (20:46 +0000)]
Disable L2 caching for UDP over IPv6

The ip6_output routine is missing L2 cache invalication as done
in ip_output.  Even with that code, some problems with UDP over
IPv6 have been reported.  Diabling L2 cache for that problem works
around the problem for now.

PR: 211872 211926
Reviewed by: gnn
Approved by: gnn (mentor)
MFC after: immediate

7 years agoAudit the accepted (or rejected) username argument to setlogin(2).
rwatson [Sat, 20 Aug 2016 20:28:08 +0000 (20:28 +0000)]
Audit the accepted (or rejected) username argument to setlogin(2).

(NB: This was likely a mismerge from XNU in audit support, where the
text argument to setlogin(2) is captured -- but as a text token,
whereas this change uses the dedicated login-name field in struct
audit_record.)

MFC after: 2 weeks
Sponsored by: DARPA, AFRL

7 years agoUnbreak sctp_connectx().
tuexen [Sat, 20 Aug 2016 20:15:36 +0000 (20:15 +0000)]
Unbreak sctp_connectx().

MFC after: 3 days

7 years agoAudit additional vnode information in the implementation of the
rwatson [Sat, 20 Aug 2016 18:51:48 +0000 (18:51 +0000)]
Audit additional vnode information in the implementation of the
ftruncate(2) system call.  This was not required by the Common
Criteria, which needed only open-time audit.

MFC after: 2 weeks
Sponsored by: DARPA, AFRL

7 years agoImport Dragonfly Mail Agent snapshort from 20160806 aka v0.11+
bapt [Sat, 20 Aug 2016 16:36:05 +0000 (16:36 +0000)]
Import Dragonfly Mail Agent snapshort from 20160806 aka v0.11+

Most important change being:
dma - Fix security hole (#46)

Affecting DragonFly 4.6 and earlier, Matt Dillon fixed this in base after
finding out from BSDNow Episode 152. Comments following were from his commit
which explains better than I. Just taking his change and putting it here as well.

* dma makes an age-old mistake of not properly checking whether a file
owned by a user is a symlink or not, a bug which the original mail.local
also had.

* Add O_NOFOLLOW to disallow symlinks.

Thanks-to: BSDNow Episode 152, made me dive dma to check when they talked
about the mail.local bug.

MFC After: 2 days

7 years agoloader is filling fixed length command_errbuf with sprintf() and is trusting
tsoome [Sat, 20 Aug 2016 16:23:19 +0000 (16:23 +0000)]
loader is filling fixed length command_errbuf with sprintf() and is trusting
strings provided by user/config files. This update is replacing sprintf with
snprintf for cases the command_errbuf is built from dynamic content.

PR: 211958
Reported by: ecturt@gmail.com
Reviewed by: imp, allanjude
Approved by: imp (mentor), allanjude (mentor)
Differential Revision: https://reviews.freebsd.org/D7563

7 years agoPull in r265122 from upstream llvm trunk (by James Molloy):
dim [Sat, 20 Aug 2016 14:04:51 +0000 (14:04 +0000)]
Pull in r265122 from upstream llvm trunk (by James Molloy):

  Fix for pr24346: arm asm label calculation error in sub

  Some ARM instructions encode 32-bit immediates as a 8-bit integer
  (0-255) and a 4-bit rotation (0-30, even) in its least significant 12
  bits. The original fixup, FK_Data_4, patches the instruction by the
  value bit-to-bit, regardless of the encoding. For example, assuming
  the label L1 and L2 are 0x0 and 0x104 respectively, the following
  instruction:

    add r0, r0, #(L2 - L1) ; expects 0x104, i.e., 260

  would be assembled to the following, which adds 1 to r0, instead of
  260:

    e2800104 add r0, r0, #4, 2 ; equivalently 1

  The new fixup kind fixup_arm_mod_imm takes care of the encoding:

    e2800f41 add r0, r0, #260

  Patch by Ting-Yuan Huang!

This fixes label calculation for ARM assembly, and is needed to enable
ARM assembly sources for OpenSSL.

Requested by: jkim
MFC after: 3 days

7 years agoJMicron JMB361 has only a single SATA port
avg [Sat, 20 Aug 2016 09:13:14 +0000 (09:13 +0000)]
JMicron JMB361 has only a single SATA port

Discussed with: mav
MFC after: 3 days

7 years agofix bug introduced in r297521, set canmount=on doesn't mount filesystem
avg [Sat, 20 Aug 2016 09:12:01 +0000 (09:12 +0000)]
fix bug introduced in r297521, set canmount=on doesn't mount filesystem

There are two cases where changing canmount should result in an action:
- canmount is set to off for a mounted filesystem
- canmount is set to on for an unmounted filesystem
Before r297521 we could unmount and re-mount a filesystem when that was
not necessary, but after r297521 we only handled the first of the above
cases.

MFC after: 5 days

7 years agoSkip HID1 initialization on e6500 cores, it doesn't exist.
jhibbits [Sat, 20 Aug 2016 00:55:58 +0000 (00:55 +0000)]
Skip HID1 initialization on e6500 cores, it doesn't exist.

With this, and some drivers removed, a T2080 dev board boots to mountroot.

Submitted by: Ivan Krivonos <int0dster_AT_gmail.com>

7 years agoRemove the ie(4) driver for Intel 82586 ISA Ethernet adapters.
jhb [Sat, 20 Aug 2016 00:49:29 +0000 (00:49 +0000)]
Remove the ie(4) driver for Intel 82586 ISA Ethernet adapters.

This driver only supports 10Mb Ethernet using PIO (the hardware supports
DMA, but the driver only does PIO).  There are not any PCCard adapters
supported by this driver, only ISA cards.  In addition, it does not use
bus_space but instead uses bcopy with volatile pointers triggering a
host of warnings.  (if_ie.c is one of 3 files always built with
-Wno-error)

Relnotes: yes

7 years agoixlv(4): Fix ixlv(4) not loading when loaded as a kernel module and netmap is enabled.
erj [Sat, 20 Aug 2016 00:08:10 +0000 (00:08 +0000)]
ixlv(4): Fix ixlv(4) not loading when loaded as a kernel module and netmap is enabled.

Define (unused) netmap variables; ixlv(4) doesn't support netmap yet.

Reported by: sergey.kozlov@intel.com
Sponsored by: Intel Corporation

7 years agoif_emac: Before generating a random MAC address, try using the SID rootkey
manu [Fri, 19 Aug 2016 23:44:07 +0000 (23:44 +0000)]
if_emac: Before generating a random MAC address, try using the SID rootkey
to generate one. This is was U-Boot does to generate a random MAC so we end
up with the same MAC address as if U-Boot did generate it.

MFC after: 1 week

7 years agoRemove the spic(4) driver for the Sony Vaoi Jogdial.
jhb [Fri, 19 Aug 2016 23:39:08 +0000 (23:39 +0000)]
Remove the spic(4) driver for the Sony Vaoi Jogdial.

This hardware is not present on any modern systems.  The driver is quite
hackish (raw inb/outb instead of bus_space, and raw inb/outb to random
I/O ports to enable ACPI since it predated proper ACPI support).

Relnotes: yes

7 years agoRemove the wl(4) driver and wlconfig(8) utility.
jhb [Fri, 19 Aug 2016 22:27:14 +0000 (22:27 +0000)]
Remove the wl(4) driver and wlconfig(8) utility.

The wl(4) driver supports pre-802.11 PCCard wireless adapters that
are slower than 802.11b.  They do not work with any of the 802.11
framework and the driver hasn't been reported to actually work in a
long time.

Relnotes: yes

7 years agoRemove mentions of the mcd(4), scd(4), and si(4) drivers.
jhb [Fri, 19 Aug 2016 22:13:01 +0000 (22:13 +0000)]
Remove mentions of the mcd(4), scd(4), and si(4) drivers.

Relnotes: yes

7 years agoRemove stale drivers (amd(4) and asr(4)) from the SCSI controller regex.
jhb [Fri, 19 Aug 2016 22:05:22 +0000 (22:05 +0000)]
Remove stale drivers (amd(4) and asr(4)) from the SCSI controller regex.

7 years agoRemove the wds(4) driver for the WD700 ISA SCSI HBA.
jhb [Fri, 19 Aug 2016 21:51:42 +0000 (21:51 +0000)]
Remove the wds(4) driver for the WD700 ISA SCSI HBA.

While this driver does do DMA, it bounce buffers all transactions through
a single 64k buffer.  It also does not have a manpage.

Relnotes: yes

7 years agoRemove the si(4) driver and sicontrol(8) for Specialix serial cards.
jhb [Fri, 19 Aug 2016 21:14:27 +0000 (21:14 +0000)]
Remove the si(4) driver and sicontrol(8) for Specialix serial cards.

The si(4) driver supported multiport serial adapters for ISA, EISA, and
PCI buses.  This driver does not use bus_space, instead it depends on
direct use of the pointer returned by rman_get_virtual().  It is also
still locked by Giant and calls for patch testing to convert it to use
bus_space were unanswered.

Relnotes: yes

7 years agoRemove doxygen files for mcd(4) and scd(4) drivers.
jhb [Fri, 19 Aug 2016 20:53:55 +0000 (20:53 +0000)]
Remove doxygen files for mcd(4) and scd(4) drivers.

Submitted by: ak

7 years agoRemove the scd(4) driver for Sony CDU31/33 CD-ROM drives.
jhb [Fri, 19 Aug 2016 19:31:55 +0000 (19:31 +0000)]
Remove the scd(4) driver for Sony CDU31/33 CD-ROM drives.

This is a driver for a pre-ATAPI ISA CD-ROM adapter.  The driver only
uses PIO.

7 years agoMove cxgb and cxgbe down to the non-mii PCI NIC section.
jhb [Fri, 19 Aug 2016 18:45:42 +0000 (18:45 +0000)]
Move cxgb and cxgbe down to the non-mii PCI NIC section.

7 years agoKeep boot parameters in ARM trampoline code
manu [Fri, 19 Aug 2016 18:02:36 +0000 (18:02 +0000)]
Keep boot parameters in ARM trampoline code

Currently boot parameters (r0 - r3) are forgotten in ARM trampoline code.
This patch save them at startup and restore them before jumping into kernel
_start() routine.
This is usefull when booting with Linux ABI and/or custom bootloader.

Submitted by: Grégory Soutadé <soutade@gmail.com>
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D7395

7 years agoDon't set P2_PTRACE_FSTP in a process that invokes ptrace(PT_TRACE_ME).
markj [Fri, 19 Aug 2016 17:57:14 +0000 (17:57 +0000)]
Don't set P2_PTRACE_FSTP in a process that invokes ptrace(PT_TRACE_ME).

Such processes are stopped synchronously by a direct call to
ptracestop(SIGTRAP) upon exec. P2_PTRACE_FSTP causes the exec()ing thread
to suspend itself while waiting for a SIGSTOP that never arrives.

Reviewed by: kib
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D7576

7 years agoReorder sysctls so that nodes shared with the VF driver are added first.
jhb [Fri, 19 Aug 2016 17:54:51 +0000 (17:54 +0000)]
Reorder sysctls so that nodes shared with the VF driver are added first.

This permits a single early return for VF devices in the routines that
add sysctl nodes.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7512

7 years agoRegenerate system call table after r304483.
ed [Fri, 19 Aug 2016 17:54:06 +0000 (17:54 +0000)]
Regenerate system call table after r304483.

7 years agoUse the proper value for svn:keywords.
ed [Fri, 19 Aug 2016 17:53:37 +0000 (17:53 +0000)]
Use the proper value for svn:keywords.

Pointy hat to: me

7 years agoAdjust t4_port_init() to work with VF devices.
jhb [Fri, 19 Aug 2016 17:52:48 +0000 (17:52 +0000)]
Adjust t4_port_init() to work with VF devices.

Specifically, the FW_PORT_CMD may or may not work for a VF (the PF
driver can choose whether or not to permit access to this command),
so don't attempt to fetch port information on a VF if permission is
denied by the PF.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7511

7 years agoAdd missing SVN keywords keyword.
ed [Fri, 19 Aug 2016 17:51:52 +0000 (17:51 +0000)]
Add missing SVN keywords keyword.