Commits on Aug 24, 2016
  1. @EdSchouten

    Add a Makefile for building the cloudabi32 kernel module.

    Where the cloudabi64 kernel can be used to execute 64-bit CloudABI
    binaries, this one should be used for 32-bit binaries. Right now it
    works on i386 and amd64.
    EdSchouten committed Aug 24, 2016
  2. @EdSchouten

    Make execution of 32-bit CloudABI executables work on amd64.

    A nice thing about requiring a vDSO is that it makes it incredibly easy
    to provide full support for running 32-bit processes on 64-bit systems.
    Instead of letting the kernel be responsible for composing/decomposing
    64-bit arguments across multiple registers/stack slots, all of this can
    now be done in the vDSO. This means that there is no need to provide
    duplicate copies of certain system calls, like the sys_lseek() and
    freebsd32_lseek() we have for COMPAT_FREEBSD32.
    This change imports a new vDSO from the CloudABI repository that has
    automatically generated code in it that copies system call arguments
    into a buffer, padding them to eight bytes and zero-extending any
    pointers/size_t arguments. After returning from the kernel, it does the
    inverse: extracting return values, in the process truncating
    pointers/size_t values to 32 bits.
    Obtained from:
    EdSchouten committed Aug 24, 2016
  3. @EdSchouten

    Remove an unused header file.

    The native CloudABI data types header file used to be pulled in by the
    vDSOs when they were still written in C. Since they are now all
    rewritten in assembly, this can go away.
    EdSchouten committed Aug 24, 2016
  4. @EdSchouten

    Convert pointers obtained from the threadattr_t structure with TO_PTR().

    In all of these source files, the userspace pointer size corresponds
    with the kernelspace pointer size, meaning that casting directly works.
    As I'm planning on making 32-bit execution on 64-bit systems work as
    well, use TO_PTR() here as well, so that the changes between source
    files remain minimal.
    EdSchouten committed Aug 24, 2016
  5. Skip ls tests that use sparse files if these are not supported.

    Some of the ls(1) tests create really large sparse files to validate
    the number formatting features of ls(1).  Unfortunately, those tests fail
    if the underlying test file system does not support sparse files, as is the
    case when /tmp is mounted on tmpfs.
    Before running these tests, check if the test file system supports sparse
    files by using getconf(1) and skip them if not.  Note that the support for
    this query was just added to getconf(1) in r304694.
    Reviewed by:	ngie
    Differential Revision:
    jmmv committed Aug 24, 2016
  6. @EdSchouten

    Add missing header dependency.

    This header depends on sigaltstack32 being declared.
    EdSchouten committed Aug 24, 2016
  7. When aborting an association, send the ABORT before notifying the upper

    layer. For the kernel this doesn't matter, for the userland stack, it does.
    While there, silence a clang warning when compiling it in userland.
    tuexen committed Aug 24, 2016
  8. Fix key delay and repeat, part 2.

    Use sbintime_t timeouts with precision control to get very accurate
    timing.  It costs little to always ask for about 1% accuracy, and the
    not so new event timer implementation usual delivers that, and when
    it can't it gets much closer than our previous coarse timeouts and
    buggy simple countdown.
    The 2 fastest atkbd repeat rates have periods 34 and 38 msec, and ukbd
    pretended to support rates in between these.  This requires
    sub-microsecond precision and accuracy even to handle the 4 msec
    difference very well, but ukbd asked the timeout subsystem for timeouts
    of 25 msec and the buggy simple countdown of this gave a a wide range
    of precisions and accuracies depending on HZ and other timer
    configuration (sometimes better than 25 msec but usually more like 50
    msec).  We now ask for and usually get precision and accuracy of about
    1% for each repeat and much better on average.
    The 1% accuracy is overkill.  Rounding of 30 cps to 34 msec instead of
    33 already gives an error of +2% instead of -1%, and ut AT keyboards on
    PS/2 interfaces have similar errors.
    A timeout is now scheduled for every keypress and release.  This allows
    some simplifications that are not done.  It allows removing the timeout
    scheduling for exiting polled mode where it was unsafe in ddb mode.  This
    is done.  Exiting polled mode had some problems with extra repeats.  Now
    exiting polled mode lets an extra timeout fire and the state is fudged
    so that the timeout handler does very little.
    The sc->time_ms variable is unsigned to avoid overflow.  Differences of
    it need to be signed.  Signed comparisons were emulated by testing an
    emulated sign bits.  This only works easily for '<' comparisonss, but
    we now need a '<=' comparison.  Change the difference variable to
    signed and use a signed comparison.  Using unsigned types here didn't
    prevent overflow bugs but just reduced them.  Overflow occurs with
    n repeats at the silly repeat period of [U]INT_MAX / n.  The old countdown
    had an off by 1 error, and the simplifications would simply count down
    1 to 0 and not need to accumulate possibly-large repeat repeats.
    bde committed Aug 24, 2016
  9. @cschuber

    Import sqlite3-3.14.1 (3140100)

    cschuber committed Aug 24, 2016
  10. hyperv/ic: Redefine IC version negotiate message.

    And stringent input IC version negotiate message checks.
    MFC after:	1 week
    Sponsored by:	Microsoft
    Differential Revision:
    sephe committed Aug 24, 2016
  11. hyperv/hn: Log a warning for RESET_CMPLT.

    RESET is not used by the hn(4) at all, and RESET_CMPLT does not even
    have a rid to match with the pending requests.  So, let's put it
    onto an independent switch branch and log a warning about it.
    MFC after:	1 week
    Sponsored by:	Microsoft
    Differential Revision:
    sephe committed Aug 24, 2016
  12. @chmeeedalf

    Fix system hang when large FDT is in use

    Kernel maps only one page of FDT. When FDT is more than one page in size, data
    TLB miss occurs on memmove() when FDT is moved to kernel storage
    (sys/powerpc/booke/booke_machdep.c, booke_init())
    This introduces a pmap_early_io_unmap() to complement pmap_early_io_map(), which
    can be used for any early I/O mapping, but currently is only used when mapping
    the fdt.
    Submitted by:	Ivan Krivonos <>
    Differential Revision:
    chmeeedalf committed Aug 24, 2016
  13. Bring datasheet URL up to date.

    kevlo committed Aug 24, 2016
  14. hyperv/hn: Remove the redundant rid setting for RNDIS HALT.

    MFC after:	1 week
    Sponsored by:	Microsoft
    Differential Revision:
    sephe committed Aug 24, 2016
  15. net/rndis: Fix RNDIS_STATUS_PENDING definition.

    While I'm here, sort the RNDIS status in ascending order.
    MFC after:	1 week
    Sponsored by:	Microsoft
    Differential Revision:
    sephe committed Aug 24, 2016
  16. net/rndis: Add canonical RNDIS major/minor version as of today.

    Reviewed by:	hps
    MFC after:	1 week
    Sponsored by:	Microsoft
    Differential Revision:
    sephe committed Aug 24, 2016
  17. @cschuber

    Fixup man page formatting.

    Submitted by:	Steve Kargl <>
    Discussed with:	bjk@
    MFC after:	3 days
    cschuber committed Aug 24, 2016
  18. Fix L2 caching for UDP over IPv6

    ip6_output() was missing cache invalidation code analougous to
    ip_output.c. r304545 disabled L2 caching for UDP/IPv6 as a workaround.
    This change adds the missing cache invalidation code and reverts
    Reviewed by:	gnn
    Approved by:	gnn (mentor)
    Tested by:	peter@, Mike Andrews
    MFC after:	3 weeks
    Differential Revision:
    karels committed Aug 24, 2016
  19. @brooksdavis

    Avoid a redecleartion of __getosreldate().

    Sponsored by:	DARPA, AFRL
    brooksdavis committed Aug 24, 2016
  20. @brooksdavis

    Spell MIPS more traditionally in "bfd_elf32_ntradbigmips_vec".

    Sponsored by:	DAPRA, AFRL
    brooksdavis committed Aug 24, 2016
Commits on Aug 23, 2016
  1. @evadot

    Allwinner: Add thermal sensor driver for A10/A20

    The thermal sensor lives in the touch screen controller. Touch screen part
    isn't done for now.
    Temperature is read every ~2 seconds and exposed via sysctl.
    evadot committed Aug 23, 2016
  2. LC_*_MASK bit shifting order was partially broken from the initial co…

    time at year 2012. Only LC_COLLATE_MASK and LC_CTYPE_MASK are in the
    right order.
    The order here should match XLC_* from "xlocale_private.h" which, in turn,
    match LC_* publicly visible order from <locale.h> which determines how
    locale components are stored in the structure.
    LC_*_MASK -> XLC_* translation done as "ffs(mask) - 1" in the querylocale()
    and equivalent shift loop in the newlocale(), so mapped to some wrong
    components (excluding two mentioned above).
    Formally the fix is ABI breakage, but old code using those masks
    never works properly in any case.
    Only newlocale() and querylocale() are affected.
    MFC after:      7 days
    ache committed Aug 23, 2016
  3. @glebius

    The -f check here is used to determine whether we have a single kernel

    config or a list of them.  Put the variable into quotes, to avoid syntax
    error from [ in case of list.  Without this change list is still working,
    but an error is reported in the build log file.
    Reviewed by:	imp
    glebius committed Aug 23, 2016
  4. Fix key delay and repeat, part 1.

    kbdcontrol -r fast is documented to give a non-emulated atkbd's fastest
    rate of 250.34, but is misimplemented to request this as 0.0.  ukbd
    supports many nonstandard rates, although it is currently too inaccurate
    by a factor of several hundred for non-huge nonstandard rates to be
    useful.  It mapped 0.0 to 200.0.  A repeat delay of 0 means a rate of
    infinity which is quite fast, but physical constraints limit this to
    a few MHz and the inaccuracies made it almost usable.
    Convert 0.0 to the documented 250.34.
    Also convert negative args and small args to the 250.34 minimal ones,
    like atkbd does.  This is for KDSETREPEAT -- the 2 versions of the
    deprecated KDSETRAD have bounds checking.  Keep not doing any bounds
    checking or conversions for upper limits since nonstandard large
    delays are useful for testing.
    The inaccuracies are dependent on HZ and the timeout implementation.
    With the old timeout implementation and HZ = 1000, 200.0 probably
    worked better to emulate 250.34 than 250.34 itself.  HZ = 100 gives
    roundoff errors that accidentally reduce the inaaccuracies, and
    event timers reduce the inaccuracies even more, so 200.0 was giving
    more like itself (perhaps 215.15 on average but sometimes close to
    10 msec repeat which is noticebly too fast).  This commit makes 0.0
    noticeably too slow, like 250.34 always was.
    bde committed Aug 23, 2016
  5. @yaneurabeya

    Add support for _PC_ACL_NFS4 as TRUSTEDBSD_ACL_NFS4

    The TRUSTEDBSD prefix was chosen for consistency with the other
    related `_PC_ACL*` prefixed variables.
    MFC after: 3 days
    Sponsored by: EMC / Isilon Storage Division
    yaneurabeya committed Aug 23, 2016
  6. @bdrewery

    FAST_DEPEND: Fix 'make all install' not properly rebuilding based on …

    ….depend.* files.
    An optimization is in place to skip reading the .depend.* files with
    'make install'.  This was too strong and broke 'make all install' and
    'make foo.o foo install'.  Now only skip reading the dependency files
    if all make targets ran are install targets.
    The problem comes about because headers are only added in as a guessed
    dependency if .depend.* files do not yet exist.  If they do exist, even
    if being skipped from being read, then the header dependencies are not
    applied.  This applies to all #included files, and not just headers.
    Reported by:	kib
    MFC after:	1 day
    Sponsored by:	EMC / Isilon Storage Division
    bdrewery committed Aug 23, 2016
  7. @DimitryAndric

    In addition to creating subdirectories under .OBJDIR for SRCS with

    relative paths, also create them for DPSRCS.  This is needed for builds
    that generate files during the depend stage, which cannot be compiled by
    themselves, since those have to be put in DPSRCS.
    DimitryAndric committed Aug 23, 2016
  8. @bdrewery

    Fix in-tree GCC builds after r304681.

    There were a few issues.
    - In-tree GCC won't have X_COMPILER_TYPE defined but will have
      WANT_COMPILER_TYPE==gcc set from the SYSTEM_COMPILER logic that can
      be used.  Make the clang check specific to clang as well to ensure
      -target doesn't leak into a GCC build.
    - When using a cross-compiler GCC (with a default sysroot or arch) and also
      passing --sysroot, it basically forgets all internal paths for
      libraries.  We've already worked around this quite a bit for
      the external toolchains.  Now for the in-tree bootstrap cross-compiler
      GCC, also pass in the needed -B${WORLDTMP}/usr/lib to find the crt
      object files, but also -isystem and -L to fix the paths.  This creates
      quite a spammy build log, but it is clear and still achieves the goals
      and stays consistent between internal and external build flags.
      Reducing the spam by using the '=' prefix feature will help and be
      done later.
    MFC after:	3 days
    X-MFC-With:	r304681
    Reported by:	bz
    Pointyhat to:	bdrewery
    Sponsored by:	EMC / Isilon Storage Division
    bdrewery committed Aug 23, 2016
  9. @yaneurabeya

    Add `MIN_HOLE_SIZE` pathconf(2) support to getconf

    This allows shell programs to programmatically determine whether
    or not a filesystem supports sparse files
    MFC after: 3 days
    Sponsored by: EMC / Isilon Storage Division
    yaneurabeya committed Aug 23, 2016
  10. @yaneurabeya

    Clean up trailing whitespace

    MFC after: 3 days
    Sponsored by: EMC / Isilon Storage Division
    yaneurabeya committed Aug 23, 2016
  11. bhndb(4): Fix unsigned integer underflow in dynamic register window

    handling. This resulted in the window target being left uninitialized
    when an underflow occured.
    Approved by:	adrian (mentor)
    Differential Revision:
    landonf committed Aug 23, 2016
  12. @emaste

    bspatch: apply style(9)

    Make style changes (and trivial refactoring of open calls) now in order
    to reduce noise in diffs for future capsicum changes.
    Reviewed by:	oshogbo
    No objection:	cperciva
    Sponsored by:	The FreeBSD Foundation
    Differential Revision:
    emaste committed Aug 23, 2016
  13. Also adjust the virtual address passed to vm_page_pa_tryrelock.

    Reported by:	alc
    Obtained from:	ABT Systems Ltd
    MFC after:	1 month
    Sponsored by:	The FreeBSD Foundation
    andrew committed Aug 23, 2016
  14. Map memory as read-only in pmap_enter_quick_locked as is done in other

    pmap implementations.
    Obtained from:	ABT Systems Ltd
    MFC after:	1 month
    Sponsored by:	The FreeBSD Foundation
    andrew committed Aug 23, 2016
  15. If we find we have a superpage in pmap_enter_quick_locked return without

    trying to add a new level 3 page.
    Obtained from:	ABT Systems Ltd
    MFC after:	1 month
    Sponsored by:	The FreeBSD Foundation
    andrew committed Aug 23, 2016