]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
6 years agoMFC bmake-20180222
sjg [Tue, 20 Mar 2018 15:57:52 +0000 (15:57 +0000)]
MFC bmake-20180222

PR: 226678
Submitted by: sjg

6 years agoMFC r319510: xz: set noexec stack flag on FreeBSD
emaste [Tue, 20 Mar 2018 02:54:32 +0000 (02:54 +0000)]
MFC r319510: xz: set noexec stack flag on FreeBSD

6 years agoMerge retpoline support from the upstream llvm, clang and lld 5.0
dim [Mon, 19 Mar 2018 18:36:43 +0000 (18:36 +0000)]
Merge retpoline support from the upstream llvm, clang and lld 5.0
branches.  Upstream merge revisions:

  r324007: merging r323155 for llvm
  r324009: merging r323915 for llvm
  r324012: merging r323155 for clang
  r324025: merging r323155 for lld, with modifications to
           handle int3 fill
  r324026: merging r323288 for lld
  r325088: merging r324449 for llvm
  r325089: merging r324645 for llvm
  r325090: merging r325049 for llvm
  r325091: merging r325085 for llvm

Original commit messages:

r323155 (by Chandler Carruth):

  Introduce the "retpoline" x86 mitigation technique for variant #2 of
  the speculative execution vulnerabilities disclosed today,
  specifically identified by CVE-2017-5715, "Branch Target Injection",
  and is one of the two halves to Spectre.

  Summary:
  First, we need to explain the core of the vulnerability. Note that
  this is a very incomplete description, please see the Project Zero
  blog post for details:
  https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html

  The basis for branch target injection is to direct speculative
  execution of the processor to some "gadget" of executable code by
  poisoning the prediction of indirect branches with the address of
  that gadget. The gadget in turn contains an operation that provides a
  side channel for reading data. Most commonly, this will look like a
  load of secret data followed by a branch on the loaded value and then
  a load of some predictable cache line. The attacker then uses timing
  of the processors cache to determine which direction the branch took
  *in the speculative execution*, and in turn what one bit of the
  loaded value was. Due to the nature of these timing side channels and
  the branch predictor on Intel processors, this allows an attacker to
  leak data only accessible to a privileged domain (like the kernel)
  back into an unprivileged domain.

  The goal is simple: avoid generating code which contains an indirect
  branch that could have its prediction poisoned by an attacker. In
  many cases, the compiler can simply use directed conditional branches
  and a small search tree. LLVM already has support for lowering
  switches in this way and the first step of this patch is to disable
  jump-table lowering of switches and introduce a pass to rewrite
  explicit indirectbr sequences into a switch over integers.

  However, there is no fully general alternative to indirect calls. We
  introduce a new construct we call a "retpoline" to implement indirect
  calls in a non-speculatable way. It can be thought of loosely as a
  trampoline for indirect calls which uses the RET instruction on x86.
  Further, we arrange for a specific call->ret sequence which ensures
  the processor predicts the return to go to a controlled, known
  location. The retpoline then "smashes" the return address pushed onto
  the stack by the call with the desired target of the original
  indirect call. The result is a predicted return to the next
  instruction after a call (which can be used to trap speculative
  execution within an infinite loop) and an actual indirect branch to
  an arbitrary address.

  On 64-bit x86 ABIs, this is especially easily done in the compiler by
  using a guaranteed scratch register to pass the target into this
  device.  For 32-bit ABIs there isn't a guaranteed scratch register
  and so several different retpoline variants are introduced to use a
  scratch register if one is available in the calling convention and to
  otherwise use direct stack push/pop sequences to pass the target
  address.

  This "retpoline" mitigation is fully described in the following blog
  post: https://support.google.com/faqs/answer/7625886

  We also support a target feature that disables emission of the
  retpoline thunk by the compiler to allow for custom thunks if users
  want them.  These are particularly useful in environments like
  kernels that routinely do hot-patching on boot and want to hot-patch
  their thunk to different code sequences. They can write this custom
  thunk and use `-mretpoline-external-thunk` *in addition* to
  `-mretpoline`. In this case, on x86-64 thu thunk names must be:
  ```
    __llvm_external_retpoline_r11
  ```
  or on 32-bit:
  ```
    __llvm_external_retpoline_eax
    __llvm_external_retpoline_ecx
    __llvm_external_retpoline_edx
    __llvm_external_retpoline_push
  ```

  And the target of the retpoline is passed in the named register, or
  in the case of the `push` suffix on the top of the stack via a
  `pushl` instruction.

  There is one other important source of indirect branches in x86 ELF
  binaries: the PLT. These patches also include support for LLD to
  generate PLT entries that perform a retpoline-style indirection.

  The only other indirect branches remaining that we are aware of are
  from precompiled runtimes (such as crt0.o and similar). The ones we
  have found are not really attackable, and so we have not focused on
  them here, but eventually these runtimes should also be replicated
  for retpoline-ed configurations for completeness.

  For kernels or other freestanding or fully static executables, the
  compiler switch `-mretpoline` is sufficient to fully mitigate this
  particular attack. For dynamic executables, you must compile *all*
  libraries with `-mretpoline` and additionally link the dynamic
  executable and all shared libraries with LLD and pass `-z
  retpolineplt` (or use similar functionality from some other linker).
  We strongly recommend also using `-z now` as non-lazy binding allows
  the retpoline-mitigated PLT to be substantially smaller.

  When manually apply similar transformations to `-mretpoline` to the
  Linux kernel we observed very small performance hits to applications
  running typical workloads, and relatively minor hits (approximately
  2%) even for extremely syscall-heavy applications. This is largely
  due to the small number of indirect branches that occur in
  performance sensitive paths of the kernel.

  When using these patches on statically linked applications,
  especially C++ applications, you should expect to see a much more
  dramatic performance hit. For microbenchmarks that are switch,
  indirect-, or virtual-call heavy we have seen overheads ranging from
  10% to 50%.

  However, real-world workloads exhibit substantially lower performance
  impact. Notably, techniques such as PGO and ThinLTO dramatically
  reduce the impact of hot indirect calls (by speculatively promoting
  them to direct calls) and allow optimized search trees to be used to
  lower switches. If you need to deploy these techniques in C++
  applications, we *strongly* recommend that you ensure all hot call
  targets are statically linked (avoiding PLT indirection) and use both
  PGO and ThinLTO. Well tuned servers using all of these techniques saw
  5% - 10% overhead from the use of retpoline.

  We will add detailed documentation covering these components in
  subsequent patches, but wanted to make the core functionality
  available as soon as possible. Happy for more code review, but we'd
  really like to get these patches landed and backported ASAP for
  obvious reasons. We're planning to backport this to both 6.0 and 5.0
  release streams and get a 5.0 release with just this cherry picked
  ASAP for distros and vendors.

  This patch is the work of a number of people over the past month:
  Eric, Reid, Rui, and myself. I'm mailing it out as a single commit
  due to the time sensitive nature of landing this and the need to
  backport it. Huge thanks to everyone who helped out here, and
  everyone at Intel who helped out in discussions about how to craft
  this. Also, credit goes to Paul Turner (at Google, but not an LLVM
  contributor) for much of the underlying retpoline design.

  Reviewers: echristo, rnk, ruiu, craig.topper, DavidKreitzer

  Subscribers: sanjoy, emaste, mcrosier, mgorny, mehdi_amini,
  hiraditya, llvm-commits

  Differential Revision: https://reviews.llvm.org/D41723

r323915 (by Chandler Carruth):

  [x86] Make the retpoline thunk insertion a machine function pass.

  Summary:
  This removes the need for a machine module pass using some deeply
  questionable hacks. This should address PR36123 which is a case where
  in full LTO the memory usage of a machine module pass actually ended
  up being significant.

  We should revert this on trunk as soon as we understand and fix the
  memory usage issue, but we should include this in any backports of
  retpolines themselves.

  Reviewers: echristo, MatzeB

  Subscribers: sanjoy, mcrosier, mehdi_amini, hiraditya, llvm-commits

  Differential Revision: https://reviews.llvm.org/D42726

r323288 (by Rui Ueyama):

  Fix retpoline PLT header size for i386.

  Differential Revision: https://reviews.llvm.org/D42397

r324449 (by Chandler Carruth):

  [x86/retpoline] Make the external thunk names exactly match the names
  that happened to end up in GCC.

  This is really unfortunate, as the names don't have much rhyme or
  reason to them. Originally in the discussions it seemed fine to rely
  on aliases to map different names to whatever external thunk code
  developers wished to use but there are practical problems with that
  in the kernel it turns out. And since we're discovering this
  practical problems late and since GCC has already shipped a release
  with one set of names, we are forced, yet again, to blindly match
  what is there.

  Somewhat rushing this patch out for the Linux kernel folks to test
  and so we can get it patched into our releases.

  Differential Revision: https://reviews.llvm.org/D42998

r324645 (by David Woodhouse):

  [X86] Support 'V' register operand modifier

  This allows the register name to be printed without the leading '%'.
  This can be used for emitting calls to the retpoline thunks from
  inline asm.

r325049 (by Reid Kleckner):

  [X86] Use EDI for retpoline when no scratch regs are left

  Summary:
  Instead of solving the hard problem of how to pass the callee to the
  indirect jump thunk without a register, just use a CSR. At a call
  boundary, there's nothing stopping us from using a CSR to hold the
  callee as long as we save and restore it in the prologue.

  Also, add tests for this mregparm=3 case. I wrote execution tests for
  __llvm_retpoline_push, but they never got committed as lit tests,
  either because I never rewrote them or because they got lost in merge
  conflicts.

  Reviewers: chandlerc, dwmw2

  Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

  Differential Revision: https://reviews.llvm.org/D43214

r325085 (by Reid Kleckner):

  [X86] Remove dead code from retpoline thunk generation

Differential Revision: https://reviews.freebsd.org/D14720

6 years agoMFC r331015:
dab [Mon, 19 Mar 2018 17:37:51 +0000 (17:37 +0000)]
MFC r331015:

Modify rc.d/fsck to handle new status from fsck/fsck_ffs

r328013 introduced a new error code from fsck_ffs that indicates that
it could not completely fix the file system; this happens when it
prints the message PLEASE RERUN FSCK. However, this status can happen
when fsck is run in "preen" mode and the rc.d/fsck script does not
handle that error code. Modify rc.d/fsck so that if "fsck -p"
("preen") returns the new status code (16) it will run "fsck -y", as
it currently does for a status code of 8 (the "standard error exit").

Reported by:    markj
Sponsored by:   Dell EMC

6 years agoMFC: r328834
marius [Mon, 19 Mar 2018 14:28:20 +0000 (14:28 +0000)]
MFC: r328834

o Let rtld(1) set up psABI user trap handlers prior to executing the
  objects' init functions instead of doing the setup via a constructor
  in libc as the init functions may already depend on these handlers
  to be in place. This gets us rid of:
  - the undefined order in which libc constructors as __guard_setup()
    and jemalloc_constructor() are executed WRT __sparc_utrap_setup(),
  - the requirement to link libc last so __sparc_utrap_setup() gets
    called prior to constructors in other libraries (see r122883).
  For static binaries, crt1.o still sets up the user trap handlers.
o Move misplaced prototypes for MD functions in to the MD prototype
  section of rtld.h.
o Sprinkle nitems().

6 years agoMFC r330792:
ae [Mon, 19 Mar 2018 09:52:16 +0000 (09:52 +0000)]
MFC r330792:
  Do not try to reassemble IPv6 fragments in "reass" rule.

  ip_reass() expects IPv4 packet and will just corrupt any IPv6 packets
  that it gets. Until proper IPv6 fragments handling function will be
  implemented, pass IPv6 packets to next rule.

  PR: 170604

6 years agoMFC r324860:
eadler [Mon, 19 Mar 2018 07:37:36 +0000 (07:37 +0000)]
MFC r324860:

Modernise this man page somewhat.

1. Add a reference to a good 3rd party list of compatible cables, but
provide suggestions for 'known good' vendors.

2. Change IP-based USB host-host example to a modern Ethernet one which
works 'out of box' with current Linux systems.

3. Explain that USB 3.0 is host-host, even though point-to-point soft
Ethernet can be achieved.

6 years agoMFC r324858:
eadler [Mon, 19 Mar 2018 07:37:13 +0000 (07:37 +0000)]
MFC r324858:

Add Prolific PL27A1 USB 3.0 Host-Host device to udbp(4).

Tested with a Plugable cable in VirtualBox against Linux 4.11.

6 years agoMFC r324806:
eadler [Mon, 19 Mar 2018 07:35:35 +0000 (07:35 +0000)]
MFC r324806:

Use the .Fx macro consistently.

Sponsored by: Spectra Logic Corp

6 years agoMFC r322674:
eadler [Mon, 19 Mar 2018 07:34:24 +0000 (07:34 +0000)]
MFC r322674:

Add Thunderbolt Apple interfaces to the bge(4) supported list.
Document message reported by kernel upon removal in DIAGNOSTIC section.
Document shortcomings in BUGS section.

6 years agoMFC r320178:
eadler [Mon, 19 Mar 2018 07:33:12 +0000 (07:33 +0000)]
MFC r320178:

Add some device IDs for Intel Denverton SoCs.

6 years agoMFC r320268,r320276:
eadler [Mon, 19 Mar 2018 07:28:54 +0000 (07:28 +0000)]
MFC r320268,r320276:

ipfw: dummynet: Add 'G' and 'g' suffix for bandwidth configuration/display

6 years agoMFC r322013:
eadler [Mon, 19 Mar 2018 07:08:14 +0000 (07:08 +0000)]
MFC r322013:

Document -w flag is an extension to POSIX.

PR: 201937

6 years agoMFC r320992,r320993:
eadler [Mon, 19 Mar 2018 07:07:03 +0000 (07:07 +0000)]
MFC r320992,r320993:

Add a complete example to tsearch(3)

6 years agoMFC r315986:
eadler [Mon, 19 Mar 2018 07:03:02 +0000 (07:03 +0000)]
MFC r315986:

Fix 3 entries in mode tables related to mono and 90-column text modes.
Newer VGAs don't support any mono modes, but bugs in the tables created
2 virtual mono modes (#45 90x43 and #112 80x43) that behaved more
strangely than crashing.  90-column modes are tweaked 80-column ones
and also fail to work on newer VGAs.  #45 did crash (hang) on some
hardware.

6 years agoMFC r313818:
eadler [Mon, 19 Mar 2018 07:00:15 +0000 (07:00 +0000)]
MFC r313818:

Small inclusion guard comment fix.

6 years agoMFC r325112:
eadler [Mon, 19 Mar 2018 06:57:41 +0000 (06:57 +0000)]
MFC r325112:

Add P5010/P5010E for completeness

6 years agoMFC r325113:
eadler [Mon, 19 Mar 2018 06:56:30 +0000 (06:56 +0000)]
MFC r325113:

Add Microchip 1-MBit SPI flash ID

Used on the AmigaOne X5000.

6 years agoMFC r326183:
eadler [Mon, 19 Mar 2018 06:55:26 +0000 (06:55 +0000)]
MFC r326183:

Add stdio.h to the synopsis for sysdecode functions that take a FILE *.

6 years agoMFC r326356:
eadler [Mon, 19 Mar 2018 06:54:53 +0000 (06:54 +0000)]
MFC r326356:

Replace a reference to a license in another file with the license text.

The relevant file was recently renamed, so the reference was stale.
In addition, explicit licenses are more typical in our sources.

6 years agoMFC r326437:
eadler [Mon, 19 Mar 2018 06:54:16 +0000 (06:54 +0000)]
MFC r326437:

Correct history for Unix 2nd Edition through 6th Edition for the
system calls. Man pages are missing for v2 and v5, so any entries for
those versions were inferred by new implementations of these functions
in libc.

6 years agoMFC r326859:
eadler [Mon, 19 Mar 2018 06:49:49 +0000 (06:49 +0000)]
MFC r326859:

Add identifier for POWER9 CPU to CPU list

Without the identifier in the list booting FreeBSD results in printing the
following (from a PowerKVM boot):

cpu0: Unknown PowerPC CPU revision 0x1201, 2550.00 MHz

For now, add the same feature list as POWER8.  As new capabilities are added to
support POWER9 specific features, they will be added to this.

PR: 224344

6 years agoMFC r316422:
eadler [Mon, 19 Mar 2018 06:45:40 +0000 (06:45 +0000)]
MFC r316422:

Remove checks that background (bg) colors are not bright and buggy
attempts to keep them that way.  The bg brightness bit is interpreted
as blinking in some modes, but it would barely be useful to disallow
setting it when it would give blinking in code which knew when that
is.  The old code mostly knew this wrong, and added handling errors.
It is in fact impossible to know, since future mode switches may
change the meaning of the bit many times on the screen and in history.

Old versions of vidcontrol disallowed bg color numbers >= 8 in all
cases.  This is very VGA/syscons-centric.  Syscons uses the VGA defaults
of blinking fg instead of bright bg in text mode and bright bg in
graphics mode.  On VGA, this is very easy to toggle at any time, and
vt blows away the VGA text mode default at boot time.

r146736 changed this to try to allow bg color numbers in graphics mode
only.  This is even more VGA/syscons-centric, and there are many bugs
in this, and many nearby bugs in the parser.  These are increased or
decreased by differences and bugs in vt and teken.

Perhaps the most obvious bug was that almost any vidcontrol command
which changes any color or the mode causes an error if the initial fg
color is bright.  E.g., in syscons text mode, after "vidcontrol
lightwhite" to make the fg bright, another "vidcontrol lightwhite" is
rejected and buggy fixup code changes the fg to white.  This is because
the bright fg color creates a bright bg color for the phantom reverse
video attribute, so was rejected.  (The reverse video attribute is
phantom because teken ignores the user's setting of it and simply
reverses the fg attributes to create the bg attributes.  Sometimes
some layer masks off the brightness/blinking bit, but not here.)

Perhaps the next most obvious one was that "vidcontrol lightgreen
lightblue" was misparsed as 2 settings of the fg instead of 1 setting
of the fg and 1 invalid setting of the bg.  This is because the
parser supports an undocumented syntax with many parsing bugs (an
ambiguity gives this one).

I recently fix bugs in teken that broke setting of bright fg's and
bg's in the normal way.  This gave more settings of then, so the old
bugs showed up more often.

6 years agoMFC r327184:
eadler [Mon, 19 Mar 2018 06:40:11 +0000 (06:40 +0000)]
MFC r327184:

Change the remaining files using my personnal email address to my freebsd one

6 years agoMFC r328300:
eadler [Mon, 19 Mar 2018 06:37:59 +0000 (06:37 +0000)]
MFC r328300:

copyright.h: Update license text to 'THE AUTHOR'

This matches the license text at
https://www.freebsd.org/copyright/freebsd-license.html

6 years agoMFC r305306:
eadler [Mon, 19 Mar 2018 04:16:37 +0000 (04:16 +0000)]
MFC r305306:

dhclient: add support for interface-mtu (26)

Make dhclient set interface MTU if it was provided.

This version implements MTU setting in dhclient itself before it runs
dhclient-script.

PR: 206721

6 years agoMFC r313264:
eadler [Mon, 19 Mar 2018 04:08:22 +0000 (04:08 +0000)]
MFC r313264:

Avoid using Sun compiler-specific flags.

6 years agoMFC r328262:
eadler [Mon, 19 Mar 2018 04:06:18 +0000 (04:06 +0000)]
MFC r328262:

This comment is bogus. This is a legit release.

6 years agoMFC r328162:
eadler [Mon, 19 Mar 2018 04:03:55 +0000 (04:03 +0000)]
MFC r328162:

Improve support for USB based 3G/4G/5G dongles from Huawei.

PR: 192345

6 years agoMFC r328586:
eadler [Mon, 19 Mar 2018 03:57:14 +0000 (03:57 +0000)]
MFC r328586:

Use more verbose panic messages.

6 years agoMFC r328785:
eadler [Mon, 19 Mar 2018 03:55:42 +0000 (03:55 +0000)]
MFC r328785:

Use standard 2-clause license where copyright is held by the FreeBSD Foundation

6 years agoMFC r312887:
eadler [Mon, 19 Mar 2018 03:53:46 +0000 (03:53 +0000)]
MFC r312887:

Hide unneeded message under bootverbose.

6 years agoMFC r328640:
eadler [Mon, 19 Mar 2018 03:49:54 +0000 (03:49 +0000)]
MFC r328640:

psm: Add a kludge to support 0x46 identity middle byte Synaptics touchpads

Most synaptics touchpads return 0x47 in middle byte in responce to identify
command as stated in p.4.4 of "Synaptics PS/2 TouchPad Interfacing Guide".
But some devices e.g. found on HP EliteBook 9470m return 0x46 here.
Allow them to be identified as Synaptics as well as 0x47.
ExtendedQueries return incorrect data on such a touchpads so we ignore
their result and set conservative defaults.

PR: 222667

6 years agoMFC r328638:
eadler [Mon, 19 Mar 2018 03:47:46 +0000 (03:47 +0000)]
MFC r328638:

psm(4): Reduce psm watchdog verbosity

Modern touchpads do not issue interrupts on inactivity so "lost interrupt"
message became annoying spam nowadays. This change quiets the message
if debug.psm.loglevel=5 (or less) is set in /boot/loader.conf

Approved by: gonzo

6 years agoMFC r328636:
eadler [Mon, 19 Mar 2018 03:46:12 +0000 (03:46 +0000)]
MFC r328636:

psm(4): Add support for HP EliteBook 1040 ForcePads.

ForcePads do not have any physical buttons, instead they detect click
based on finger pressure. Forcepads erroneously report button click
if there are 2 or more fingers on the touchpad breaking multifinger
gestures. To workaround this start reporting a click only after
4 consecutive single touch packets has been received. Skip these packets
in case more contacts appear.

PR: 223369

6 years agoMFC r326249:
eadler [Mon, 19 Mar 2018 03:44:19 +0000 (03:44 +0000)]
MFC r326249:

Update intro(6) - remove hint that doesn't work, add explicit list
of games instead, and mention the "bsdgames" port.

6 years agoMFC r303812:
eadler [Mon, 19 Mar 2018 03:38:59 +0000 (03:38 +0000)]
MFC r303812:

Use a more conventional spelling of "breakpoint".

6 years agoMFC r326482:
eadler [Mon, 19 Mar 2018 03:37:00 +0000 (03:37 +0000)]
MFC r326482:

lib/msun: remove trailing whitespace from e_pow.c

6 years agoMFC r314622:
eadler [Mon, 19 Mar 2018 03:34:40 +0000 (03:34 +0000)]
MFC r314622:

As suggested by several people, note that I prefer to communicate by email.

6 years agoMFC r326913:
eadler [Mon, 19 Mar 2018 03:28:24 +0000 (03:28 +0000)]
MFC r326913:

Sync with NetBSD's /usr/share/dict/words, with the exception of quim
due to its vulgar nature.

6 years agoMFC r320210:
eadler [Mon, 19 Mar 2018 03:22:43 +0000 (03:22 +0000)]
MFC r320210:

join(1): Fix field ordering for -v output

Per POSIX, join(1) (in modes other than -o) is a concatenation of selected
character fields.  The joined field is first, followed by fields in the
order they occurred in the input files.

Our join(1) utility previously handled this correctly for lines with a match
in the other file.  But it failed to order output fields correctly for
unmatched lines, printed in -a and -v modes.

A simple test case is:

$ touch a
$ echo "2 1" > b
$ join -v2 -2 2 a b
1 2

PR: 217711

6 years agoMFC r303412:
eadler [Mon, 19 Mar 2018 03:20:35 +0000 (03:20 +0000)]
MFC r303412:

Remove myself from kern_timeout.c yeah!

6 years agoMFC r325091:
eadler [Mon, 19 Mar 2018 03:19:29 +0000 (03:19 +0000)]
MFC r325091:

Prefer using https over http

6 years agoMFC r317798:
eadler [Mon, 19 Mar 2018 03:15:33 +0000 (03:15 +0000)]
MFC r317798:

bnxt: Add support for new Broadcom 100Gb adapter BCM57454

6 years agoMFC r317570:
eadler [Mon, 19 Mar 2018 03:13:42 +0000 (03:13 +0000)]
MFC r317570:

editline.3: Add missing argument to H_SET description

The H_SET operation of the history() function takes an int argument which is
the position of the item to which the cursor should be moved to.

6 years agoMFC r304725:
eadler [Mon, 19 Mar 2018 03:06:27 +0000 (03:06 +0000)]
MFC r304725:

Bring datasheet URL up to date.

6 years agoMFC r314052:
eadler [Mon, 19 Mar 2018 03:04:19 +0000 (03:04 +0000)]
MFC r314052:

Document what the different flags mean for locking.

6 years agoMFC r322991:
eadler [Mon, 19 Mar 2018 02:46:17 +0000 (02:46 +0000)]
MFC r322991:

Fix a day-one typo in tty.4 - the sysctls in question are "tty", not "tk"

6 years agoMFC r323135:
eadler [Mon, 19 Mar 2018 02:44:42 +0000 (02:44 +0000)]
MFC r323135:

Spelling.

6 years agoMFC r326601:
eadler [Mon, 19 Mar 2018 02:43:20 +0000 (02:43 +0000)]
MFC r326601:

mdocml: Add IEEE Std 1003.1-2008, 2016 edition

Also document IEEE Std 1003.1-2008, 2013 edition in mdoc(7) (as well as the
2016 edition).

6 years agoMFC r328525:
eadler [Mon, 19 Mar 2018 02:38:07 +0000 (02:38 +0000)]
MFC r328525:

ftp(1): Use closefrom() instead of individual close()s.

6 years agoMFC r303150:
eadler [Sun, 18 Mar 2018 22:55:07 +0000 (22:55 +0000)]
MFC r303150:

[mx25l] add new device id.

6 years agoMFC r314955:
eadler [Sun, 18 Mar 2018 22:42:32 +0000 (22:42 +0000)]
MFC r314955:

o Typo in the comment fixed.

6 years agoMFC r325215,r325216:
eadler [Sun, 18 Mar 2018 22:36:21 +0000 (22:36 +0000)]
MFC r325215,r325216:

Update tuning(7) some more

At this point its unclear how much help tuning(7) is whatsoever
but leave it around in case someone decides to spend some time on
it.

6 years agoMFC r315190:
eadler [Sun, 18 Mar 2018 22:29:41 +0000 (22:29 +0000)]
MFC r315190:

Add constants and descriptions for some new PCI class definitions

6 years agoMFC r319274:
eadler [Sun, 18 Mar 2018 22:24:29 +0000 (22:24 +0000)]
MFC r319274:

- Add a simple example to uname(1) manual page to show how the hardware
  platform (returned by -m) can be different from the machine's processor
  architecture (-p)
- Document that make(1) sets universal MACHINE and MACHINE_ARCH variables
  based on these values

6 years agoMFC r303452,r303482,r303483,r303484,r303485,r303487,r303489,r303498,r303499,r303502...
eadler [Sun, 18 Mar 2018 22:19:52 +0000 (22:19 +0000)]
MFC r303452,r303482,r303483,r303484,r303485,r303487,r303489,r303498,r303499,r303502,r303523,r303525,r303570,r303571,r303588,r303596,r303597,r303598,r303599,r303600,r303601,r303625,r303629,r303718,r304651,r304684,r304686,r305983,r309217,r309219,r309341,r309342,r309343,r309382,r309415,r309417,r309418,r309419,r310863,r311141,r314613,r318471,r321382,r321383,r321396:

indent(1): avoid calling write(2) with a negative second parameter.
indent(1): Avoid out of bound access of array codebuf.
indent(1): Avoid potential use-after-free.
indent(1): Fix breakage caused by single comment following "else".
indent(1) simply wasn't taught that "else" may be followed by a comment
without any opening brace anywhere on the line, so it was very confused
in such cases.
indent(1): fix struct termination detection.
indent(1): fix struct termination detection.
indent(1): Removed whitespace shouldn't be considered in column calculations.
indent(1): Support "f" and "F" floating constant suffixes.
indent(1): Use NULL instead of zero for pointers.
indent(1): Attempt to preserve some consistent style.
indent(1): Yet more style issues.
indent(1): Consistently indent declarations.
indent(1): Bail out if there's no more space on the parser stack.
indent(1): Remove dead code relating to unix-style comments.
indent(1): Simplify pr_comment().
indent(1): Fix wrapping of some lines in comments.
indent(1): Untangle the connection between pr_comment.c and io.c.
indent(1): Don't newline on cpp lines like #endif unless -bacc is on.
indent(1): replace function call to bzero with memset.
indent(1): Rearrange option parsing code to squelch clang's static analyzer.
indent(1): Use a dash in the license headers.
indent(1): accept offsetof(3) as a keyword.
indent(1): add some comments to quiet down Coverity.
indent(1): remove dead assignments.
indent(1): have the memset invocation somewhat more canonical.
indent(1): Capsicumify
indent(1): minor off-by-one error.
indent(1): fix regression introduced in r303596.
indent(1): Avoid out of bound access of array in_buffer
indent(1): Don't ignore newlines after comments that follow braces.
indent(1): Don't unnecessarily add a blank before a comment ends.
indent(1): Do not define opchar unless it will be used.
indent(1): Optimize parser stack usage.
indent(1): Remove an extra newline added in a previous commit.
indent(1): Avoid out-of-bound accesses of arrays.
indent(1): Avoid out-of-bound accesses of array ps.p_stack.
indent(1): Avoid out of bounds access of array ps.paren_indents
indent(1): add a piece missed in r311138.
indent(1): Support binary integer literals.
indent(1): don't produce unnecessary blank lines.
indent(1): rename the profile file.
indent(1): better alignment of comments on code.

6 years agoMFC: r331140
imp [Sun, 18 Mar 2018 19:07:07 +0000 (19:07 +0000)]
MFC: r331140

Merge ahead of schedule to fix pc98 build issues.

6 years agoDirect commit to stable
imp [Sun, 18 Mar 2018 19:05:06 +0000 (19:05 +0000)]
Direct commit to stable

Remove libstand32 here. pc98 is a 32-bit platform, so it shouldn't compile
the extra 32-bit copy of libsa. The copy built in libstand is already 32-bit.
Add a comment saying we need an empty Makefile.pc98 since otherwise it would
pull in Makefile.i386 and there is no EFI on pc98, and the machines are too
old to have ZFS or GELI be a viable option (and besides, those don't compile).

Note: We also need r331140 to be MFC'd for pc98 build to work in all cases.

6 years agoMFC r331016:
markj [Sun, 18 Mar 2018 16:57:40 +0000 (16:57 +0000)]
MFC r331016:
Add a space between a section number and a following comma.

6 years agoMFC r329950:
kp [Sun, 18 Mar 2018 11:25:39 +0000 (11:25 +0000)]
MFC r329950:

pf: Cope with overly large net.pf.states_hashsize

If the user configures a states_hashsize or source_nodes_hashsize value we may
not have enough memory to allocate this. This used to lock up pf, because these
allocations used M_WAITOK.

Cope with this by attempting the allocation with M_NOWAIT and falling back to
the default sizes (with M_WAITOK) if these fail.

PR: 209475
Submitted by: Fehmi Noyan Isi <fnoyanisi AT yahoo.com>

6 years agoMFC r330843:
eadler [Sun, 18 Mar 2018 02:59:14 +0000 (02:59 +0000)]
MFC r330843:

efirtc: Pass a dummy tmcap pointer to efi_get_time_locked

As noted in the comment, UEFI spec claims the capabilities pointer is
optional, but some implementations will choke and attempt to dereference it
without checking. This specific problem was found on a Lenovo Thinkpad X220
that would panic in efirtc_identify.

Requested by: kevans

6 years agoMFC r327958, r329601, r329602:
bryanv [Sat, 17 Mar 2018 20:37:01 +0000 (20:37 +0000)]
MFC r327958, r329601, r329602:

Sync VirtIO IDs with Linux

Add VirtIO bus config_generation method

Add more virtqueue getter methods

6 years agoMFC r329598:
bryanv [Sat, 17 Mar 2018 20:20:29 +0000 (20:20 +0000)]
MFC r329598:

Add PCI methods to iterate over the PCI capabilities

VirtIO V1 provides configuration in multiple VENDOR capabilities so this
allows all of the configuration to be discovered.

Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D14325

6 years agoRevert r330471 (MFC of r311861), since it results in compile errors
dim [Sat, 17 Mar 2018 19:04:36 +0000 (19:04 +0000)]
Revert r330471 (MFC of r311861), since it results in compile errors
like:

sys/net80211/ieee80211_tdma.c:179: error: 'IEEE80211_MODE_VHT_2GHZ' undeclared (first use in this function)
sys/net80211/ieee80211_tdma.c:180: error: 'IEEE80211_MODE_VHT_5GHZ' undeclared (first use in this function)

The IEEE80211_MODE_VHT_2GHZ and IEEE80211_MODE_VHT_5GHZ enum values are
defined in r310147, but that commit cannot be MFCd as-is, because it
likely breaks ABI.

6 years agoRepair obvious mismerge in r330897, resulting in misleading gcc error
dim [Sat, 17 Mar 2018 18:55:46 +0000 (18:55 +0000)]
Repair obvious mismerge in r330897, resulting in misleading gcc error
messages like "sys/net/if_fddisubr.c:1: error: expected '=', ',', ';',
'asm' or '__attribute__' before '-' token".

6 years agoMFC r328509:
eadler [Sat, 17 Mar 2018 07:04:41 +0000 (07:04 +0000)]
MFC r328509:

tools: remove note about diffburst.

Said tool was removed in 1999 in r51579

6 years agoMFC r317870:
eadler [Sat, 17 Mar 2018 06:44:39 +0000 (06:44 +0000)]
MFC r317870:

[mx25l] add new device ids.

6 years agoMFC r326387:
eadler [Sat, 17 Mar 2018 06:36:39 +0000 (06:36 +0000)]
MFC r326387:

Fix typo

6 years agoMFC r327941:
eadler [Sat, 17 Mar 2018 06:31:24 +0000 (06:31 +0000)]
MFC r327941:

timed: slave is an infinite loop, mark it as such

6 years agoMFC r328831:
eadler [Sat, 17 Mar 2018 06:05:33 +0000 (06:05 +0000)]
MFC r328831:

pthread: adding missing header to man page

6 years agoMFC r328839:
eadler [Sat, 17 Mar 2018 05:43:26 +0000 (05:43 +0000)]
MFC r328839:

Add the ThinkPad X1 (sandybridge) to the bsdinstall blacklist

Reviewed by: AllanJude (for mfc)

6 years agoMFC r328959:
eadler [Sat, 17 Mar 2018 05:36:51 +0000 (05:36 +0000)]
MFC r328959:

fsync.2: Cross-reference fsync(1)

6 years agoMFC r328430,r328431:
eadler [Sat, 17 Mar 2018 05:04:38 +0000 (05:04 +0000)]
MFC r328430,r328431:

devd: minor nits

- mark usage as noreturn

6 years agoMFC r328428:
eadler [Sat, 17 Mar 2018 05:00:07 +0000 (05:00 +0000)]
MFC r328428:

example cdev: use make_dev_s

Make use of make_dev_s in the example cdev. While here, fix warnings.

6 years agoMFC r328427:
eadler [Sat, 17 Mar 2018 03:00:24 +0000 (03:00 +0000)]
MFC r328427:

dd(1): Use a local swapbytes() function.

swab(3) has restrict qualifiers for src and dst.
Avoid relying on undefined overlapping swab behavior.

Obtained From: OpenBSD

6 years agoMFC r326959:
eadler [Sat, 17 Mar 2018 01:27:54 +0000 (01:27 +0000)]
MFC r326959:

arc lint: ignore /tests/ in chmod

shell scripts in scripts don't need
to be chmod +x to work. In fact most are not.
Of the tests I found from a simple search:
65 are chmod +x
84 are chmod -x

simply disable the check for test shell scripts.

6 years agoRevert attempted MFC. It included unwanted changes.
lidl [Fri, 16 Mar 2018 23:39:49 +0000 (23:39 +0000)]
Revert attempted MFC.  It included unwanted changes.

6 years agoMFC r328861: improve blacklist-helper shell script
lidl [Fri, 16 Mar 2018 23:34:44 +0000 (23:34 +0000)]
MFC r328861: improve blacklist-helper shell script

6 years agoMFC r329279: add support for user-supplied Host-Uniq tag to ng_pppoe(4).
eugen [Fri, 16 Mar 2018 15:04:13 +0000 (15:04 +0000)]
MFC r329279: add support for user-supplied Host-Uniq tag to ng_pppoe(4).

Submitted by: ale
Approved by: avg (mentor), mav (mentor)
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D9270

6 years agoMFC r330681: Fix Bad file descriptor error.
ume [Fri, 16 Mar 2018 14:05:45 +0000 (14:05 +0000)]
MFC r330681: Fix Bad file descriptor error.

6 years agoMFC r330940:
eadler [Fri, 16 Mar 2018 08:45:28 +0000 (08:45 +0000)]
MFC r330940:

Update to 2018-03-06

6 years agoMFC r327344:
eadler [Fri, 16 Mar 2018 08:44:44 +0000 (08:44 +0000)]
MFC r327344:

locale: add cnr (Montenegrin)

See https://www.loc.gov/standards/iso639-2/php/code_changes.php

6 years agoMFC r303041,r303320,r305905,r310087,r310346,r319368,r321879,r321923,r321979,r327554...
eadler [Fri, 16 Mar 2018 08:39:37 +0000 (08:39 +0000)]
MFC r303041,r303320,r305905,r310087,r310346,r319368,r321879,r321923,r321979,r327554,r329124,r329210,:

organizations.dot - misc changes

6 years agoMFC r311106,r311109,r311110,r320579,r327063,r327064,:
eadler [Fri, 16 Mar 2018 05:29:30 +0000 (05:29 +0000)]
MFC r311106,r311109,r311110,r320579,r327063,r327064,:

patch(1): replace strnlen() with a simpler strlen().
patch(1): add support for git generated diffs.
patch: rejname[] is also -r option buffer, and should be PATH_MAX.
patch: further cleanup to git-style diffs.

6 years agoMFC r305373,r312344,r318095,r319117,r320948,r320953,r328528:
eadler [Fri, 16 Mar 2018 02:44:18 +0000 (02:44 +0000)]
MFC r305373,r312344,r318095,r319117,r320948,r320953,r328528:

siba(4): Add missing bhnd_device/bhnd_device_quirk table terminator entries.

This resulted in an over-read on siba chipsets that failed to match the
existing entries.

r312344 | sbruno | 2017-01-17 14:52:48 +0000 (Tue, 17 Jan 2017) | 7 lines

Add 4k quirk for Micron 5100 and Intel S3610 SSDs

r318095 | loos | 2017-05-09 19:01:57 +0000 (Tue, 09 May 2017) | 9 lines

Add a new SDHCI quirk, SDHCI_QUIRK_BROKEN_AUTO_STOP, to workaround
controllers that do not support or have broken ACMD12 implementations.

r319117 | wma | 2017-05-29 09:22:53 +0000 (Mon, 29 May 2017) | 16 lines

Introduce Genesys GL3224 quirks

The Genesys chip is failing when issueing READ_CAP(16) command.
Force a quirk to disable it and use READ_CAP(10) instead.

Also, depending on used firmware, GL3224 can be recognized
either as 'storage device' or 'mass storage class' -
enable both variants in scsi_quirk_table.

r320948 | sbruno | 2017-07-13 15:33:08 +0000 (Thu, 13 Jul 2017) | 6 lines

Add 4K quirks for Samsung 750 EVO SSD

r320953 | sbruno | 2017-07-13 16:56:26 +0000 (Thu, 13 Jul 2017) | 5 lines

Add 4k and NCQ_TRIM_BROKEN quirks for Samsung 845 SSDs.

r328528 | ian | 2018-01-29 03:24:02 +0000 (Mon, 29 Jan 2018) | 3 lines

Add a NO_GETMAXLUN quirk for the JMicron JMS567 USB to SATA bridge, to
prevent lengthy timeout pauses while probing/attaching drives.

6 years agoMFC: r327929
marius [Thu, 15 Mar 2018 23:02:49 +0000 (23:02 +0000)]
MFC: r327929

Use the correct revision specifier (EXT_CSD revision rather than
system specification version) for deciding whether the EXT_CSD
register includes the EXT_CSD_GEN_CMD6_TIME field.

Submitted by: Masanobu SAITOH

6 years agoMFC: r327355, r327926
marius [Thu, 15 Mar 2018 23:01:00 +0000 (23:01 +0000)]
MFC: r327355, r327926

- Don't allow userland to switch partitions; it's next to impossible
  to recover from that, especially when something goes wrong.
- When userland changes EXT_CSD, update the kernel copy before using
  relevant EXT_CSD bits in mmcsd_switch_part().

6 years agoMFC: r327339, r327924
marius [Thu, 15 Mar 2018 22:58:31 +0000 (22:58 +0000)]
MFC: r327339, r327924

- There is no need to keep the tuning error and re-tuning interrupts
  enabled (though, no interrupt generation enabled for them) all the
  time as soon as (re-)tuning is supported; only enable them and let
  them generate interrupts when actually using (re-)tuning.
- Also disable all interrupts except SDHCI_INT_DATA_AVAIL ones while
  executing tuning and not just their signaling.
- Set the tuning error and re-tuning interrupt enable bits based on
  the SDHCI_TUNING_ENABLED rather than the SDHCI_TUNING_SUPPORTED flag,
  i. e. only when (re-)tuning is actually used. Currently, this change
  makes no net difference, though.

6 years agoMFC: r327315
marius [Thu, 15 Mar 2018 22:51:10 +0000 (22:51 +0000)]
MFC: r327315

Add quirks for Intel Denverton eMMC 5.0 controllers.

6 years agoMFC r330257: Add a function to retrieve the EFI realtime clock capabilities.
kevans [Thu, 15 Mar 2018 20:46:34 +0000 (20:46 +0000)]
MFC r330257: Add a function to retrieve the EFI realtime clock capabilities.

6 years agoMFC r324191: Hide kernel stuff from userspace.
kevans [Thu, 15 Mar 2018 20:40:27 +0000 (20:40 +0000)]
MFC r324191: Hide kernel stuff from userspace.

6 years agoMFC (partially) r326066, r326121: Add an EFI RTC Driver
kevans [Thu, 15 Mar 2018 20:29:48 +0000 (20:29 +0000)]
MFC (partially) r326066, r326121: Add an EFI RTC Driver

This is effectively a direct commit to stable/11 to avoid the arm64 bits, as
those are unfortunately not able to MFC'd.

MFC r326066:
Add a driver for the EFI RTC. This uses the EFI Runtime Services to query
the system time.

MFC r326121:
Zero struct efi_tm before setting the needed values. We don't use the dst
or timezone fields so ensure these are set.

6 years agoRevert r331022: MFC of EFI Runtime Service support on aarch64
kevans [Thu, 15 Mar 2018 20:09:24 +0000 (20:09 +0000)]
Revert r331022: MFC of EFI Runtime Service support on aarch64

Apologies; this is NOT an MFC'able change. It requires a good number of pcb
changes that would break KBI.

Pointy hat to: me

6 years agoMFC r324495: Support the EFI Runtime Services on arm64. As with amd64 we use
kevans [Thu, 15 Mar 2018 19:56:44 +0000 (19:56 +0000)]
MFC r324495: Support the EFI Runtime Services on arm64. As with amd64 we use
the 1:1 mapping. This uses the new common code shared with amd64.

The RTC should only be accessed via EFI. There is no locking around it as
the spec only has this as a requirement for the PC-AT CMOS device.

NOTE: r326311's changes to arm64/efirt_machdep.c have been hand-applied to
this import of efirt_machdep.c due to r326311 having already been merged.

6 years agor322279: Don't create /dev/efi without EFI runtime
kevans [Thu, 15 Mar 2018 19:41:26 +0000 (19:41 +0000)]
r322279: Don't create /dev/efi without EFI runtime

Turns out to be even simpler to just not create /dev/efi if we don't
have a efi runtime.

6 years agoMFC r322278,324177: EFIRT Improvements
kevans [Thu, 15 Mar 2018 19:31:39 +0000 (19:31 +0000)]
MFC r322278,324177: EFIRT Improvements

r322278 (imp): Fail to open efirt device when no EFI on system.

libefivar expects opening /dev/efi to indicate if the we can make efi
runtime calls. With a null routine, it was always succeeding leading
efi_variables_supported() to return the wrong value. Only succeed if
we have an efi_runtime table. Also, while I'm hear, out of an
abundance of caution, add a likely redundant check to make sure
efi_systbl is not NULL before dereferencing it. I know it can't be
NULL if efi_cfgtbl is non-NULL, but the compiler doesn't.

r324177 (andrew):
To prepare for adding EFI runtime services support on arm64 move the
machine independent parts of the existing code to a new file that can be
shared between amd64 and arm64.

Care has been taken to ensure that the MFC of r324177 did not clobber
cherry-picked MFC's.

6 years agoMFC r317055,r317056 (glebius): Include sys/vmmeter.h as included
kevans [Thu, 15 Mar 2018 19:08:33 +0000 (19:08 +0000)]
MFC r317055,r317056 (glebius): Include sys/vmmeter.h as included

r317055: All these files need sys/vmmeter.h, but now they got it implicitly
included via sys/pcpu.h.

r317056: Typo!

6 years agoMFC r328395: Install uefi.8 also on arm64
emaste [Thu, 15 Mar 2018 12:59:15 +0000 (12:59 +0000)]
MFC r328395: Install uefi.8 also on arm64

Our standard boot method for arm64 is via UEFI, so install the man page
that describes the boot process.

Sponsored by: The FreeBSD Foundation

6 years agoMFC r329370, r330239: Rationalize license text on Linuxolator files
emaste [Thu, 15 Mar 2018 12:56:22 +0000 (12:56 +0000)]
MFC r329370, r330239: Rationalize license text on Linuxolator files

Many licenses on Linuxolator files contained small variations from the
standard FreeBSD license text.  To avoid license proliferation switch to
the standard 2-clause FreeBSD license for those files where I have
permission from each of the listed copyright holders.

Approved by: dchagin, kan, marcel, rdivacky, sos
Sponsored by: The FreeBSD Foundation