]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
5 years agoMFC r336570:
kib [Sat, 18 Aug 2018 16:03:15 +0000 (16:03 +0000)]
MFC r336570:
Enable OFED build (without extras) by default.
For stable/11, this is only done on amd64.

Relnotes: yes
Sponsored by: Mellanox Technologies

5 years agoMFC r337330:
kib [Sat, 18 Aug 2018 10:14:02 +0000 (10:14 +0000)]
MFC r337330:
Swap in WKILLED processes.

5 years agoMFC r336461: bge(4): disable MSI for BGE_ASICREV_BCM5784/BGE_CHIPREV_5784_AX
eugen [Fri, 17 Aug 2018 19:18:59 +0000 (19:18 +0000)]
MFC r336461: bge(4): disable MSI for BGE_ASICREV_BCM5784/BGE_CHIPREV_5784_AX
found in some MacBook Pro.

PR: 229727
Reported by: Stephan Neuhaus <sten@artdecode.de> and others
Tested by: Stephan Neuhaus <sten@artdecode.de>
Approved by: mav (mentor)

5 years agoMFC: r337791
jkim [Fri, 17 Aug 2018 18:32:53 +0000 (18:32 +0000)]
MFC: r337791

Merge OpenSSL 1.0.2p.

5 years agoMFC r337230:
markj [Fri, 17 Aug 2018 16:04:59 +0000 (16:04 +0000)]
MFC r337230:
Verify that each frame pointer lies within the thread's kstack.

5 years agoMFC r337328:
markj [Fri, 17 Aug 2018 16:04:20 +0000 (16:04 +0000)]
MFC r337328:
Don't check rcv sockbuf limits when sending on a unix stream socket.

PR: 181741, 212812

5 years agoMFC r337569: readelf: display NT_GNU_PROPERTY_TYPE_0 note name
emaste [Fri, 17 Aug 2018 12:39:00 +0000 (12:39 +0000)]
MFC r337569: readelf: display NT_GNU_PROPERTY_TYPE_0 note name

NT_GNU_PROPERTY_TYPE_0 in a .note.gnu.property section "contains a
program property note which describes special handling requirements
for linker and run-time loader." (from the System V Application Binary
Interface - Linux Extensions")

Intel CET uses two processor-specific program properties in
NT_GNU_PROPERTY_TYPE_0: GNU_PROPERTY_X86_FEATURE_1_IBT to indicate that
all executable sections are compatible with Indirect Branch Tracking,
and GNU_PROPERTY_X86_FEATURE_1_SHSTK to indicate that sections are
compatible with shadow stack.

A later change should add decoding of the individual properties.

5 years agoMFC r337322:
dim [Fri, 17 Aug 2018 06:31:30 +0000 (06:31 +0000)]
MFC r337322:

Fix build of hyperv with base gcc on i386

Summary:
Base gcc fails to compile `sys/dev/hyperv/pcib/vmbus_pcib.c` for i386,
with the following -Werror warnings:

cc1: warnings being treated as errors
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c: In function 'new_pcichild_device':
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c:567: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c: In function 'vmbus_pcib_on_channel_callback':
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c:940: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c: In function 'hv_pci_protocol_negotiation':
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c:1012: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c: In function 'hv_pci_enter_d0':
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c:1073: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c: In function 'hv_send_resources_allocated':
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c:1125: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c: In function 'vmbus_pcib_map_msi':
/usr/src/sys/dev/hyperv/pcib/vmbus_pcib.c:1730: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

This is because on i386, several casts from `uint64_t` to a pointer
reduce the value from 64 bit to 32 bit.

For gcc, this can be fixed by an intermediate cast to uintptr_t. Note
that I am assuming the incoming values will always fit into 32 bit!

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

5 years agoMFC r337570-r337573
kevans [Fri, 17 Aug 2018 03:05:09 +0000 (03:05 +0000)]
MFC r337570-r337573

r337570:
bwi(4): Set ic->ic_softc before bwi_getradiocaps to avoid bad deref

r337571:
net80211: Drain ageq before cleaning it up.

The comment above ieee80211_ageq_cleanup specifically notes that the queue
is assumed to be empty, and in order to make it so, ieee80211_ageq_drain
must be used.

r337572:
ieee8021_node: fix whitespace issues

r337573:
ath: Minor style cleanups

device_printf => DPRINTF and two whitespace adjustments

5 years agoMFC r336184: net80211: Fix ifdetach w/o ifattach, small whitespace cleanup
kevans [Fri, 17 Aug 2018 03:03:27 +0000 (03:03 +0000)]
MFC r336184: net80211: Fix ifdetach w/o ifattach, small whitespace cleanup

As the comment says, ifdetach might be called during the course of driver
detach if initialization failed. This shouldn't be a total failure, though,
we just have nothing to do there.

This has been modified slightly from Augustin's original commit to move the
bail-out slightly earlier since the ic wouldn't have been added to the
ic list in the first place, and a comment has been added describing when
this might be an issue.

5 years agoMFC r335785, r335812
kevans [Fri, 17 Aug 2018 03:01:01 +0000 (03:01 +0000)]
MFC r335785, r335812

r335785 by eadler:
iwn: Correct Centrino Advanced-N 6235 constants

The iwn 6235 is a 2x2 device (see
https://ark.intel.com/products/66890/Intel-Centrino-Advanced-N-6235-Dual-Band)

r335812 by eadler:
iwn: Add the missing IWN_SDID_6035_5 subdevice

5 years agoMFC r337558, r337560
cy [Fri, 17 Aug 2018 02:46:36 +0000 (02:46 +0000)]
MFC r337558, r337560

r337558:
Identify the return value (rval) that led to the IPv4 NAT failure
in ipf_nat_checkout() and report it in the frb_natv4out and frb_natv4in
dtrace probes.

This is currently being used to diagnose NAT failures in PR/208566. It's
rather handy so this commit makes it available for future diagnosis and
debugging efforts.

PR: 208566

r337560:
Correct a comment. Should have been detected by ipf_nat_in() not
ipf_nat_out().

5 years agoMFC r337559: Makefile.inc1: Add libl to -legacy as well
kevans [Fri, 17 Aug 2018 01:52:15 +0000 (01:52 +0000)]
MFC r337559: Makefile.inc1: Add libl to -legacy as well

libl is needed for config(8), which is a bootstrap-tool. It is possible to
build a system WITHOUT_TOOLCHAIN to exclude lex and thus, libl. We still
need to support building from this kind of host, though.

While here, group the config(8) dependencies together and add a small
explanation. These can likely both be scoped more clearly, but this will
need some further investigation.

5 years agoMFC r337770:
kib [Fri, 17 Aug 2018 00:49:35 +0000 (00:49 +0000)]
MFC r337770:
Fix typo.

5 years agoDocument SA-18:09 through SA-18:11.
gjb [Thu, 16 Aug 2018 15:32:17 +0000 (15:32 +0000)]
Document SA-18:09 through SA-18:11.

Sponsored by: The FreeBSD Foundation

5 years agoMFC r337727:
brooks [Thu, 16 Aug 2018 15:27:19 +0000 (15:27 +0000)]
MFC r337727:

Copy out from kernel to data, not the other way around.

Sponsored by: DARPA, AFRL

5 years agoMFC r337717, r337718:
gjb [Thu, 16 Aug 2018 15:17:22 +0000 (15:17 +0000)]
MFC r337717, r337718:

 r337717:
  Add lang/python2, lang/python3, and lang/python to GCE images
  to help avoid hard-coding 'python<MAJOR>.<MINOR>' in several
  scripts in the client-side scripts. [1]

 r337718:
  Add a space between a variable and escaped new line.

PR: 230248 [1]
Sponsored by: The FreeBSD Foundation

5 years agoMFC r337469:
ae [Thu, 16 Aug 2018 09:42:09 +0000 (09:42 +0000)]
MFC r337469:
  Use host byte order when comparing mss values.

  This fixes tcp-setmss action on little endian machines.

  PR: 225536
  Submitted by: John Zielinski

5 years agoMFC r337527:
hselasky [Thu, 16 Aug 2018 08:12:36 +0000 (08:12 +0000)]
MFC r337527:
Use atomic_fcmpset_XXX() instead of atomic_cmpset_XXX() when possible
in the LinuxKPI.

Suggested by: mjg @
Sponsored by: Mellanox Technologies

5 years agoMFC r337376:
hselasky [Thu, 16 Aug 2018 08:11:17 +0000 (08:11 +0000)]
MFC r337376:
Implement current_work() function in the LinuxKPI.

Tested by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

5 years agoMFC r337374:
hselasky [Thu, 16 Aug 2018 08:10:11 +0000 (08:10 +0000)]
MFC r337374:
Implement atomic_long_cmpxchg() function in the LinuxKPI.

Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

5 years agoMFC r337373:
hselasky [Thu, 16 Aug 2018 08:09:26 +0000 (08:09 +0000)]
MFC r337373:
Define __poll_t type in the LinuxKPI.

Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

5 years agoMFC r337232:
hselasky [Thu, 16 Aug 2018 08:08:30 +0000 (08:08 +0000)]
MFC r337232:
Implement ktime_add_ms() and ktime_before() in the LinuxKPI.

Submitted by: Johannes Lundberg <johalun0@gmail.com>
Sponsored by: Mellanox Technologies

5 years agoMFC r337529:
hselasky [Thu, 16 Aug 2018 08:05:04 +0000 (08:05 +0000)]
MFC r337529:
Implement missing atomic_fcmpset_XXX() support for i386.

Sponsored by: Mellanox Technologies

5 years agoRevert r337826: MFC of ls(1) COLORTERM honoring
kevans [Thu, 16 Aug 2018 01:18:20 +0000 (01:18 +0000)]
Revert r337826: MFC of ls(1) COLORTERM honoring

It was not ready, and was much-objected-to.

5 years agoLoad filesystem modules associated with allow.mount permissions.
jamie [Wed, 15 Aug 2018 22:32:43 +0000 (22:32 +0000)]
Load filesystem modules associated with allow.mount permissions.

PR: 192092

5 years agoMFC r331332:
jamie [Wed, 15 Aug 2018 21:38:10 +0000 (21:38 +0000)]
MFC r331332:

  If a jail parameter isn't found, try loading a related kernel module.

PR: 192092

5 years agoMFC r321649:
loos [Wed, 15 Aug 2018 16:34:31 +0000 (16:34 +0000)]
MFC r321649:

Remove the unused mutex since r273220.

Sponsored by: Rubicon Communications, LLC (Netgate)

5 years agoMFC r317800:
loos [Wed, 15 Aug 2018 16:27:52 +0000 (16:27 +0000)]
MFC r317800:

Add support for the no-1-8-v and wp-inverted properties in generic SDHCI
FDT glue.

Sponsored by: Rubicon Communications, LLC (Netgate)

5 years agoMFC r313911:
loos [Wed, 15 Aug 2018 16:16:59 +0000 (16:16 +0000)]
MFC r313911:

Spell VMXNET3_LEGACY_TX correctly.

5 years agoMFC r312953:
loos [Wed, 15 Aug 2018 16:12:13 +0000 (16:12 +0000)]
MFC r312953:

The stf(4) interface name does not conform with the default naming
convention for interfaces, because only one stf(4) interface can exist
in the system.

This disallow the use of unit numbers different than 0, however, it is
possible to create the clone without specify the unit number (wildcard).

In the wildcard case we must update the interface name before return.

This fix an infinite recursion in pf code that keeps track of network
interfaces and groups:

1 - a group for the cloned type of the interface is added (stf in this
    case);
2 - the system will now try to add an interface named stf (instead of
    stf0) to stf group;
3 - when pfi_kif_attach() tries to search for an already existing 'stf'
    interface, the 'stf' group is returned and thus the group is added
    as an interface of itself;

This will now cause a crash at the first attempt to traverse the groups
which the stf interface belongs (which loops over itself).

Obtained from: pfSense
Sponsored by: Rubicon Communications, LLC (Netgate)

5 years agoMFC r337819 (cy@): MFV r337818: WPA: Ignore unauthenticated encrypted EAPOL-Key
delphij [Wed, 15 Aug 2018 05:03:54 +0000 (05:03 +0000)]
MFC r337819 (cy@): MFV r337818: WPA: Ignore unauthenticated encrypted EAPOL-Key
data

Approved by: so
Security: CVE-2018-14526
Security: FreeBSD-SA-18:11.hostapd

5 years agoMFC r333919, r333922, r333944, r337442:
eadler [Wed, 15 Aug 2018 02:14:46 +0000 (02:14 +0000)]
MFC r333919, r333922, r333944, r337442:

Update file to file 5.34 (through 5.33)

5 years agoMFC r337506: ls(1): Enable colors with COLORTERM is set in the environment
kevans [Wed, 15 Aug 2018 01:29:02 +0000 (01:29 +0000)]
MFC r337506: ls(1): Enable colors with COLORTERM is set in the environment

COLORTERM is the de facto standard, while CLICOLOR is generally specific to
FreeBSD and ls(1).

PR: 230101

5 years agoMFC r337504: apply(1): Fix magic number substitution with a magic space
kevans [Wed, 15 Aug 2018 01:24:43 +0000 (01:24 +0000)]
MFC r337504: apply(1): Fix magic number substitution with a magic space

Using a space as the magic character would result in problems if the command
started with a number:

- For a 'valid' number n, n < size of argv, it would erroneously get
  replaced with that argument; e.g. `apply -a ' ' -d 1rm x => `execxrm x`

- For an 'invalid' number n, n >= size of argv, it would segfault.
  e.g. `apply -a ' ' 2to3 test.py` would try to access argv[2]

This problem occurred because apply(1) would prepend "exec " to the command
string before doing the actual magic number replacements, so it would come
across "exec 2to3 1" and assume that the " 2" is also a magic number to be
replaced.

Re-work this to instead just append "exec " to the command sbuf and
workaround the ugliness. This also simplifies stuff in the process.

PR: 226948

5 years agoMFC r337458, r337618:
pfg [Tue, 14 Aug 2018 22:57:28 +0000 (22:57 +0000)]
MFC r337458, r337618:
Fix printf(1) ignores width and precision in %b format.

The precision with the conversion specifier b is specified by POSIX: see
point 7 in the reference documentation.

Include fix from jilles@ to avoid breaking the testsuite.

Reference: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html

PR: 229641
Reported by: Rudolf Cejka
Submitted by: Garrett D'Amore (illumos)

5 years agoMFC r336203, r336499, r336501-r336502, r336506, r336510, r336512-r336513, r336515...
cy [Tue, 14 Aug 2018 20:02:01 +0000 (20:02 +0000)]
MFC r336203, r336499, r336501-r336502, r336506, r336510, r336512-r336513, r336515, r336528-r336531

r336203:
MFV r324714:

Update wpa 2.5 --> 2.6.

r336499:
MFV: r336485

Address: hostapd: Avoid key reinstallation in FT handshake

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0001-hostapd-Avoid-key-\
reinstallation-in-FT-handshake.patch

r336501:
MFV: r336486

Prevent reinstallation of an already in-use group key.
Upline git commit cb5132bb35698cc0c743e34fe0e845dfc4c3e410.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0002-Prevent-reinstallation-\
of-an-already-in-use-group-ke.patch

r336502:
MFV r336487:

Import upline security patch: Extend protection of GTK/IGTK
reinstallation of WNM-Sleep Mode cases.  This git commit
87e2db16bafcbc60b8d0016175814a73c1e8ed45.

This commit is is simply a pops change as r324696 already plugged
this vulnerability. To maintain consistency with the vendor branch
props will be changed.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0003-Extend-protection-of-GTK-IGTK-\
reinstallation-of-WNM-.patch

r336506:
MFV r336490:

Prevent installation of an all-zero TK.
This is also upline git commit 53bb18cc8b7a4da72e47e4b3752d0d2135cffb23.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0004-Prevent-installation-\
of-an-all-zero-TK.patch

r336510:
MFV r336493:

Fix PTK rekeying to generate a new ANonce.
This is also upline git commit 0adc9b28b39d414d5febfff752f6a1576f785c85.

This commit is a NOP, just changing props as the heavy lifting was
done by r324696. This just brings us into line with the vendor branch.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0005-Fix-PTK-rekeying-to-\
generate-a-new-ANonce.patch

r336512:
MFV r336494:

TDLS: Reject TPK-TK reconfiguration.
This is also upline git commmit ff89af96e5a35c86f50330d2b86c18323318a60c.

Once again this is a NOP as this is a props change to sync up with
the vendor branch. The real commit is in r324696.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0006-TDLS-Reject-TPK-TK-\
reconfiguration.patch

r336513:
MFV r336495:

Another props change. The real work was done by r324696. We're simply
syncing up with the vendor branch again.

mport upline security patch:  WNM: Ignore WNM-Sleep Mode Request in
wnm_sleep_mode=0 case. This is also upline git commit
114f2830d2c2aee6db23d48240e93415a256a37c.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0007-WNM-Ignore-WNM-Sleep-Mode-\
Response-without-pending-r.patch

r336515:
MFV r336496:

A props change to sync up with the vendor branch. The real work was
done by r324696.

FILS: Do not allow multiple (Re)Association Response frames.
This is also upline git commit e760851176c77ae6de19821bb1d5bf3ae2cb5187.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0008-FT-Do-not-allow-multiple-\
Reassociation-Response-fram.patch

r336528:
Revert r336501. It was a of the wrong rev from the vendor branch.

r336529:
MFV: r336486

Prevent reinstallation of an already in-use group key.
Upline git commit cb5132bb35698cc0c743e34fe0e845dfc4c3e410.

Obtained from: https://w1.fi/security/2017-1/\
rebased-v2.6-0002-Prevent-reinstallation-\
of-an-already-in-use-group-ke.patch

r336530:
To reduce our diff between our sources and our upline, sync up
with upline. Also making it easier to read.

Obtained from: diffing base with ports

r336531:
Remove a redundant declaration.

While at it add a blank line, conforming with the convention
used in this file.

5 years agoMFC r337520: Fix WITHOUT_LOADER_GELI (gptboot) and isoboot in general
kevans [Tue, 14 Aug 2018 19:44:36 +0000 (19:44 +0000)]
MFC r337520: Fix WITHOUT_LOADER_GELI (gptboot) and isoboot in general

gptboot was broken when r316078 added the LOADER_GELI_SUPPORT #ifdef to
not pass geliargs via __exec.  KARGS_FLAGS_EXTARG must not be used if we're
not going to pass an additional argument to __exec.

PR: 228151

5 years agoubldr: Bump heap size, 1MB -> 2MB
kevans [Tue, 14 Aug 2018 19:42:18 +0000 (19:42 +0000)]
ubldr: Bump heap size, 1MB -> 2MB

1MB was leaving very little margin in some of the worse-case scenarios with
lualoader. 2MB is still low enough that we shouldn't have any problems with
UBoot-supported boards.

5 years agoMFC r337788:
jtl [Tue, 14 Aug 2018 18:17:05 +0000 (18:17 +0000)]
MFC r337788:
  Update the inet(4) and inet6(4) man pages to reflect the changes made
  to the reassembly code in r337778, r337780, r337781, r337782, and
  r337783.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337787:
jtl [Tue, 14 Aug 2018 18:15:10 +0000 (18:15 +0000)]
MFC r337787:
  Lower the default limits on the IPv6 reassembly queue.

  Currently, the limits are quite high. On machines with millions of
  mbuf clusters, the reassembly queue limits can also run into
  the millions. Lower these values.

  Also, try to ensure that no bucket will have a reassembly
  queue larger than approximately 100 items. This limits the cost to
  find the correct reassembly queue when processing an incoming
  fragment.

  Due to the low limits on each bucket's length, increase the size of
  the hash table from 64 to 1024.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337786:
jtl [Tue, 14 Aug 2018 18:13:36 +0000 (18:13 +0000)]
MFC r337786:
  Lower the default limits on the IPv4 reassembly queue.

  In particular, try to ensure that no bucket will have a reassembly
  queue larger than approximately 100 items. This limits the cost to
  find the correct reassembly queue when processing an incoming
  fragment.

  Due to the low limits on each bucket's length, increase the size of
  the hash table from 64 to 1024.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337784:
jtl [Tue, 14 Aug 2018 18:12:02 +0000 (18:12 +0000)]
MFC r337784:
  Drop 0-byte IPv6 fragments.

  Currently, we process IPv6 fragments with 0 bytes of payload, add them
  to the reassembly queue, and do not recognize them as duplicating or
  overlapping with adjacent 0-byte fragments. An attacker can exploit this
  to create long fragment queues.

  There is no legitimate reason for a fragment with no payload. However,
  because IPv6 packets with an empty payload are acceptable, allow an
  "atomic" fragment with no payload.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337783:
jtl [Tue, 14 Aug 2018 18:10:25 +0000 (18:10 +0000)]
MFC r337783:
  Implement a limit on on the number of IPv6 reassembly queues per bucket.

  There is a hashing algorithm which should distribute IPv6 reassembly
  queues across the available buckets in a relatively even way. However,
  if there is a flaw in the hashing algorithm which allows a large number
  of IPv6 fragment reassembly queues to end up in a single bucket, a per-
  bucket limit could help mitigate the performance impact of this flaw.

  Implement such a limit, with a default of twice the maximum number of
  reassembly queues divided by the number of buckets. Recalculate the
  limit any time the maximum number of reassembly queues changes.
  However, allow the user to override the value using a sysctl
  (net.inet6.ip6.maxfragbucketsize).

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337782:
jtl [Tue, 14 Aug 2018 18:06:59 +0000 (18:06 +0000)]
MFC r337782:
  Add a limit of the number of fragments per IPv6 packet.

  The IPv4 fragment reassembly code supports a limit on the number of
  fragments per packet. The default limit is currently 17 fragments.
  Among other things, this limit serves to limit the number of fragments
  the code must parse when trying to reassembly a packet.

  Add a limit to the IPv6 reassembly code. By default, limit a packet
  to 65 fragments (64 on the queue, plus one final fragment to complete
  the packet). This allows an average fragment size of 1,008 bytes, which
  should be sufficient to hold a fragment. (Recall that the IPv6 minimum
  MTU is 1280 bytes. Therefore, this configuration allows a full-size
  IPv6 packet to be fragmented on a link with the minimum MTU and still
  carry approximately 272 bytes of headers before the fragmented portion
  of the packet.)

  Users can adjust this limit using the net.inet6.ip6.maxfragsperpacket
  sysctl.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337781:
jtl [Tue, 14 Aug 2018 17:59:42 +0000 (17:59 +0000)]
MFC r337781:
 Make the IPv6 fragment limits be global, rather than per-VNET, limits.

 The IPv6 reassembly fragment limit is based on the number of mbuf clusters,
 which are a global resource. However, the limit is currently applied
 on a per-VNET basis. Given enough VNETs (or given sufficient customization
 on enough VNETs), it is possible that the sum of all the VNET fragment
 limits will exceed the number of mbuf clusters available in the system.

 Given the fact that the fragment limits are intended (at least in part) to
 regulate access to a global resource, the IPv6 fragment limit should
 be applied on a global basis.

 Note that it is still possible to disable fragmentation for a particular
 VNET by setting the net.inet6.ip6.maxfragpackets sysctl to 0 for that
 VNET. In addition, it is now possible to disable fragmentation globally
 by setting the net.inet6.ip6.maxfrags sysctl to 0.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337780:
jtl [Tue, 14 Aug 2018 17:54:39 +0000 (17:54 +0000)]
MFC r337780:
  Implement a limit on on the number of IPv4 reassembly queues per bucket.

  There is a hashing algorithm which should distribute IPv4 reassembly
  queues across the available buckets in a relatively even way. However,
  if there is a flaw in the hashing algorithm which allows a large number
  of IPv4 fragment reassembly queues to end up in a single bucket, a per-
  bucket limit could help mitigate the performance impact of this flaw.

  Implement such a limit, with a default of twice the maximum number of
  reassembly queues divided by the number of buckets. Recalculate the
  limit any time the maximum number of reassembly queues changes.
  However, allow the user to override the value using a sysctl
  (net.inet.ip.maxfragbucketsize).

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337778:
jtl [Tue, 14 Aug 2018 17:52:06 +0000 (17:52 +0000)]
MFC r337778:
  Add a global limit on the number of IPv4 fragments.

  The IP reassembly fragment limit is based on the number of mbuf clusters,
  which are a global resource. However, the limit is currently applied
  on a per-VNET basis. Given enough VNETs (or given sufficient customization
  of enough VNETs), it is possible that the sum of all the VNET limits
  will exceed the number of mbuf clusters available in the system.

  Given the fact that the fragment limit is intended (at least in part) to
  regulate access to a global resource, the fragment limit should
  be applied on a global basis.

  VNET-specific limits can be adjusted by modifying the
  net.inet.ip.maxfragpackets and net.inet.ip.maxfragsperpacket
  sysctls.

  To disable fragment reassembly globally, set net.inet.ip.maxfrags to 0.
  To disable fragment reassembly for a particular VNET, set
  net.inet.ip.maxfragpackets to 0.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337785:
kib [Tue, 14 Aug 2018 17:51:12 +0000 (17:51 +0000)]
MFC r337785:
Provide part of the mitigation for L1TF-VMM.

Security: CVE-2018-3646
Approved by: so (insta-MFC)

5 years agoMFC r337777:
kib [Tue, 14 Aug 2018 17:49:52 +0000 (17:49 +0000)]
MFC r337777:
Add definitions related to the L1D flush operation capability and MSR.

Approved by: so (insta-MFC)

5 years agoMFC r337774:
kib [Tue, 14 Aug 2018 17:48:28 +0000 (17:48 +0000)]
MFC r337774:
Reserve page at the physical address zero on amd64.

Approved by: so (insta-MFC)

5 years agoMFC r337776:
jtl [Tue, 14 Aug 2018 17:46:54 +0000 (17:46 +0000)]
MFC r337776:
  Improve IPv6 reassembly performance by hashing fragments into buckets.

  Currently, all IPv6 fragment reassembly queues are kept in a flat
  linked list. This has a number of implications. Two significant
  implications are: all reassembly operations share a common lock,
  and it is possible for the linked list to grow quite large.

  Improve IPv6 reassembly performance by hashing fragments into buckets,
  each of which has its own lock. Calculate the hash key using a Jenkins
  hash with a random seed.

Approved by: so
Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337775:
jtl [Tue, 14 Aug 2018 17:43:11 +0000 (17:43 +0000)]
MFC r337775:
  Improve hashing of IPv4 fragments.

  Currently, IPv4 fragments are hashed into buckets based on a 32-bit
  key which is calculated by (src_ip ^ ip_id) and combined with a random
  seed. However, because an attacker can control the values of src_ip
  and ip_id, it is possible to construct an attack which causes very
  deep chains to form in a given bucket.

  To ensure more uniform distribution (and lower predictability for
  an attacker), calculate the hash based on a key which includes all
  the fields we use to identify a reassembly queue (dst_ip, src_ip,
  ip_id, and the ip protocol) as well as a random seed.

Security: FreeBSD-SA-18:10.ip
Security: CVE-2018-6923

5 years agoMFC r337508:
brooks [Tue, 14 Aug 2018 16:22:04 +0000 (16:22 +0000)]
MFC r337508:

Terminate filter_create_ext() args with NULL, not 0.

filter_create_ext() is documented to take a NULL terminated set of
arguments.  0 is promoted to an int so this would fail on 64-bit
systems if the value was not passed in a register.  On all currently
supported 64-bit architectures it is.

Obtained from: CheriBSD
Sponsored by: DARPA, AFRL

5 years agoMFC r337426:
markj [Tue, 14 Aug 2018 14:17:55 +0000 (14:17 +0000)]
MFC r337426:
ifconfig: Fix use of _Noreturn

5 years agoMFC r337425:
markj [Tue, 14 Aug 2018 14:17:20 +0000 (14:17 +0000)]
MFC r337425:
Recognize ICS1893C PHYs.

5 years agoMFC r337430, r337436:
kib [Tue, 14 Aug 2018 14:01:12 +0000 (14:01 +0000)]
MFC r337430, r337436:
Add missed handling of local relocs against ifunc target in the obj modules.

5 years agoMFC r322325: cat: fix build with -DNO_UDOM_SUPPORT
kevans [Tue, 14 Aug 2018 01:45:22 +0000 (01:45 +0000)]
MFC r322325: cat: fix build with -DNO_UDOM_SUPPORT

PR: 230489

5 years agoMFC r337555, r337556:
gjb [Mon, 13 Aug 2018 14:24:00 +0000 (14:24 +0000)]
MFC r337555, r337556:
 r337555:
  Update and replace old rc daemons for GCE images.

 r337556:
  Invoke the growfs rc script for each boot on GCE.

PR: 229000, 230275
Sponsored by: The FreeBSD Foundation

5 years agoMFC r335249:
mmel [Mon, 13 Aug 2018 08:47:54 +0000 (08:47 +0000)]
MFC r335249:

  Fix handling of enable counter for shared GPIO line in fixed regulator.

5 years agoRemove mention of FreeBSD 9.x which is EoL'ed now.
delphij [Sun, 12 Aug 2018 21:42:21 +0000 (21:42 +0000)]
Remove mention of FreeBSD 9.x which is EoL'ed now.

5 years agoMFC r336569:
kib [Sun, 12 Aug 2018 08:45:23 +0000 (08:45 +0000)]
MFC r336569:
Move mostly useless examples binaries from OFED, as well as the Subnet
Manager, under the new option WITH_OFED_EXTRA, disabled by default.

5 years agoMFC r336568:
kib [Sun, 12 Aug 2018 08:42:06 +0000 (08:42 +0000)]
MFC r336568:
Move OFED libraries libmlx5.so.1 and libibverbs.so.1 to /lib.

5 years agoMFC r336855
truckman [Sun, 12 Aug 2018 03:22:28 +0000 (03:22 +0000)]
MFC r336855

Fix the long term ULE load balancer so that it actually works.  The
initial call to sched_balance() during startup is meant to initialize
balance_ticks, but does not actually do that since smp_started is
still zero at that time.  Since balance_ticks does not get set,
there are no further calls to sched_balance().  Fix this by setting
balance_ticks in sched_initticks() since we know the value of
balance_interval at that time, and eliminate the useless startup
call to sched_balance().  We don't need to randomize the intial
value of balance_ticks.

Since there is now only one call to sched_balance(), we can hoist
the tests at the top of this function out to the caller and avoid
the overhead of the function call when running a SMP kernel on UP
hardware.

PR: 223914
Reviewed by: kib

5 years agoMFC r337331: efirt: Don't enter EFI context early, convert addrs to KVA
kevans [Sun, 12 Aug 2018 00:33:24 +0000 (00:33 +0000)]
MFC r337331: efirt: Don't enter EFI context early, convert addrs to KVA

efi_enter here was needed because efi_runtime dereference causes a fault
outside of EFI context, due to runtime table living in runtime service
space. This may cause problems early in boot, though, so instead access it
by converting paddr to KVA for access.

While here, remove the other direct PHYS_TO_DMAP calls and the explicit DMAP
requirement from efidev.

5 years agoMFC r337316:
kib [Sat, 11 Aug 2018 17:52:58 +0000 (17:52 +0000)]
MFC r337316:
Add END()s for amd64 linux futex support routines.

5 years agoMFC SVN r336350: Send sysrc(8) error message to stderr (not stdout)
dteske [Fri, 10 Aug 2018 20:07:59 +0000 (20:07 +0000)]
MFC SVN r336350: Send sysrc(8) error message to stderr (not stdout)

PR: bin/229806
Reported by: Andreas Sommer <andreas.sommer87@googlemail.com>
Sponsored by: Smule, Inc.

5 years agoMFC r337189:
oshogbo [Fri, 10 Aug 2018 14:47:16 +0000 (14:47 +0000)]
MFC r337189:
bhyve: set title before entering capability mode

PR: 230082
Submitted by: Yuichiro NAITO <naito.yuichiro@gmail.com>

5 years agoMFC r337236:
kib [Fri, 10 Aug 2018 06:11:04 +0000 (06:11 +0000)]
MFC r337236:
Some updates to vm_map(9).

5 years agoMFC r337549: libnv: Remove -I${SRCTOP}/sys
kevans [Fri, 10 Aug 2018 01:43:05 +0000 (01:43 +0000)]
MFC r337549: libnv: Remove -I${SRCTOP}/sys

This should have been done as part of r336019 -- including ${SRCTOP}/sys is
not a good business model for something that's build in legacy/bootstrap
stages.

Beyond that, libnv seems to build quite alright as legacy, part of
buildworld, and standalone without. Axe it.

Approved by: re (bdrewery)

5 years agoMFC r337133:
markj [Thu, 9 Aug 2018 15:35:48 +0000 (15:35 +0000)]
MFC r337133:
Add a rudimentary test for procstat kstack.

5 years agoMFC r336121+r336127(cem): Don't delete outfile unconditionally.
delphij [Thu, 9 Aug 2018 02:27:18 +0000 (02:27 +0000)]
MFC r336121+r336127(cem): Don't delete outfile unconditionally.

5 years agoMFC r336695
davidcs [Thu, 9 Aug 2018 01:17:35 +0000 (01:17 +0000)]
MFC r336695
Remove support for QLNX_RCV_IN_TASKQ - i.e., Rx only in TaskQ.
Added support for LLDP passthru
Upgrade ECORE to version 8.33.5.0
Upgrade STORMFW to version 8.33.7.0
Added support for SRIOV

5 years agoMFC r336680
davidcs [Thu, 9 Aug 2018 01:03:53 +0000 (01:03 +0000)]
MFC r336680
Update man page with support for 41000 Series adapters

5 years agoMFC r336438
davidcs [Thu, 9 Aug 2018 00:39:39 +0000 (00:39 +0000)]
MFC r336438

Fixes for  the following issues:
1. Fix taskqueues drain/free to fix panic seen when interface is being
   bought down and in parallel asynchronous link events happening.

2. Fix bxe_ifmedia_status()

Submitted by: Vaishali.Kulkarni@cavium.com and Anand.Khoje@cavium.com

5 years agoMFC r326569:
bdrewery [Wed, 8 Aug 2018 22:42:03 +0000 (22:42 +0000)]
MFC r326569:

  Fix cyclic dependency after r326552.

5 years agoMFC r320280,r320281,r320282,r320283,r320284,r320285,r320692,r322362,r322401,r322402...
bdrewery [Wed, 8 Aug 2018 19:36:28 +0000 (19:36 +0000)]
MFC r320280,r320281,r320282,r320283,r320284,r320285,r320692,r322362,r322401,r322402,r336181:

  r320280:
    packages: Allow stageworld/stagekernel to run with make jobs.
  r320281:
    packages: Allow staging world/kernel in parallel.
  r320282:
    packages: Allow creating kernel/world packages in parallel.
  r320283:
    packages: Allow actually building individual world packages in parallel.
  r320284:
    packages: Parallelize individual kernel packaging.
  r320285:
    Expose only the create-packages-* targets since they set needed
    DEST/DIRDIR.
  r320692:
    Fix create-kernel-packages with multiple BUILDKERNELS after r320284
  r322362:
    Indent nested conditionals for readability.
  r322401:
    Avoid creating kernel-dbg.txz distribution sets and kernel-debug packages
    when MK_DEBUG_FILES is 'no'.
  r322402:
    Fix indentation from r322401.
  r336181:
    Fix parsing of create-kernel-packages

5 years agoRevert r325808 (MFC r322401) to re-MFC with larger set
bdrewery [Wed, 8 Aug 2018 19:32:28 +0000 (19:32 +0000)]
Revert r325808 (MFC r322401) to re-MFC with larger set

5 years agoMFC r320274:
bdrewery [Wed, 8 Aug 2018 19:21:08 +0000 (19:21 +0000)]
MFC r320274:

  Set compiler metadata for stageworld/distributeworld.

PR: 212877

5 years agoMFC r320191:
bdrewery [Wed, 8 Aug 2018 19:03:06 +0000 (19:03 +0000)]
MFC r320191:

  objwarn should be .PHONY.

5 years agoMFC r320286:
bdrewery [Wed, 8 Aug 2018 19:00:53 +0000 (19:00 +0000)]
MFC r320286:

  compiler-metadata: Properly handle cross-build OBJDIR.

5 years agoMFC r321333:
bdrewery [Wed, 8 Aug 2018 18:59:22 +0000 (18:59 +0000)]
MFC r321333:

  Properly set userid for truncate_test.

5 years agoMFC r321491:
bdrewery [Wed, 8 Aug 2018 18:58:09 +0000 (18:58 +0000)]
MFC r321491:

  Remove unneeded dependency for libzfs.

5 years agoMFC r321492:
bdrewery [Wed, 8 Aug 2018 18:56:34 +0000 (18:56 +0000)]
MFC r321492:

  Only build libzfs_core in 'make libraries' if needed.

5 years agoMFC r322565,r323323:
bdrewery [Wed, 8 Aug 2018 18:55:32 +0000 (18:55 +0000)]
MFC r322565,r323323:

  r322565:
    Use -S for library installations except for -DNO_ROOT builds.
  r323323:
    Tweak comment for install -S usage since it does not impact the build.

5 years agoMFC r323620:
bdrewery [Wed, 8 Aug 2018 18:53:34 +0000 (18:53 +0000)]
MFC r323620:

  Fix the raise tests.

5 years agoMFC r324103:
bdrewery [Wed, 8 Aug 2018 18:52:37 +0000 (18:52 +0000)]
MFC r324103:

  __setrunelocale: Fix asprintf(3) failure not returning an error.

5 years agoMFC r337055:
kib [Wed, 8 Aug 2018 18:51:39 +0000 (18:51 +0000)]
MFC r337055:
Avoid assertion in /dev/ufssuspend when the suspend ioctl is
(incorrectly) called while another suspension is already active.

PR: 230220

5 years agoMFC r326552:
bdrewery [Wed, 8 Aug 2018 18:50:32 +0000 (18:50 +0000)]
MFC r326552:

  Fix DPSRCS not getting .depend.* files.

5 years agoMFC r335922:
bdrewery [Wed, 8 Aug 2018 18:48:40 +0000 (18:48 +0000)]
MFC r335922:

  Use OBJS_DEPEND_GUESS for forced opt_global.h dependency.

5 years agoMFC r335912:
bdrewery [Wed, 8 Aug 2018 18:46:03 +0000 (18:46 +0000)]
MFC r335912:

  Fix .depend.foo.o tracking for sys/conf/files defined compilations.

5 years agoMFC r335923:
bdrewery [Wed, 8 Aug 2018 18:41:27 +0000 (18:41 +0000)]
MFC r335923:

  META_MODE: Fix wanting a meta file in source tree.

5 years agoMFC r335733:
bdrewery [Wed, 8 Aug 2018 18:05:14 +0000 (18:05 +0000)]
MFC r335733:

  Don't use CCACHE for linking.

5 years agoMFC r310789,r314901:
bdrewery [Wed, 8 Aug 2018 18:03:57 +0000 (18:03 +0000)]
MFC r310789,r314901:

  r310789:
    Use compiler driver to build relocatable object
  r314901:
    Use LDFLAGS rather than CFLAGS when linking.

5 years agoMFC r335709:
bdrewery [Wed, 8 Aug 2018 17:59:33 +0000 (17:59 +0000)]
MFC r335709:

  CCACHE_BUILD: Avoid ccache when looking up compiler metadata.

5 years agoMFC r335708:
bdrewery [Wed, 8 Aug 2018 17:58:38 +0000 (17:58 +0000)]
MFC r335708:

  tinderbox: Give details about kernel builds.

5 years agoMFC r335704:
bdrewery [Wed, 8 Aug 2018 17:57:45 +0000 (17:57 +0000)]
MFC r335704:

  Rework check for libclang_rt to see if the needed library exists.

5 years agoMFC r335244:
bdrewery [Wed, 8 Aug 2018 17:50:43 +0000 (17:50 +0000)]
MFC r335244:

  Assert that a build is done before an install.

5 years agoMFC r335183:
bdrewery [Wed, 8 Aug 2018 17:48:02 +0000 (17:48 +0000)]
MFC r335183:

  proc0_post: Fix some locking issues

5 years agoMFC r337265:
markj [Wed, 8 Aug 2018 17:22:41 +0000 (17:22 +0000)]
MFC r337265:
Add the required page accounting to kmem_bootstrap_free().