]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
3 years agoMFC jail: Handle a possible race between jail_remove(2) and fork(2)
Jamie Gritton [Tue, 16 Feb 2021 19:19:13 +0000 (11:19 -0800)]
MFC jail: Handle a possible race between jail_remove(2) and fork(2)

jail_remove(2) includes a loop that sends SIGKILL to all processes
in a jail, but skips processes in PRS_NEW state.  Thus it is possible
the a process in mid-fork(2) during jail removal can survive the jail
being removed.

Add a prison flag PR_REMOVE, which is checked before the new process
returns.  If the jail is being removed, the process will then exit.
Also check this flag in jail_attach(2) which has a similar issue.

Reported by:    trasz
Approved by:    kib

(cherry picked from commit cc7b73065302005ebc4a19503188c8d6d5eb923d)

3 years agoUse iflib_if_init_locked() during media change instead of iflib_init_locked().
Allan Jude [Sun, 14 Feb 2021 18:39:09 +0000 (18:39 +0000)]
Use iflib_if_init_locked() during media change instead of iflib_init_locked().

iflib_init_locked() assumes that iflib_stop() has been called, however,
it is not called for media changes.
iflib_if_init_locked() calls stop then init, so fixes the problem.

PR: 253473
Sponsored by: Juniper Networks, Inc., Klara, Inc.

(cherry picked from commit 922cf8ac43adc9983f9a9e05cfd838306c1ef483)

3 years agoFree microcode memory later.
Konstantin Belousov [Fri, 17 May 2019 17:11:01 +0000 (17:11 +0000)]
Free microcode memory later.

(cherry picked from commit 8f7f38457f940798c149ae40b73e0d20672812de)

3 years agoffs_vnops.c: Move opt_*.h includes to the top.
Konstantin Belousov [Thu, 28 Jan 2021 18:30:35 +0000 (20:30 +0200)]
ffs_vnops.c: Move opt_*.h includes to the top.

(cherry picked from commit 0281f88e5dbc8d6f819bf3f22dd11239ff5374ea)

3 years agoIgnore generated LINT files
Ravi Pokala [Fri, 19 Feb 2021 00:12:22 +0000 (16:12 -0800)]
Ignore generated LINT files

3 years agoUpdate Subversion to 1.14.1 LTS. See contrib/subversion/CHANGES for a
Dimitry Andric [Sat, 13 Feb 2021 13:38:51 +0000 (14:38 +0100)]
Update Subversion to 1.14.1 LTS. See contrib/subversion/CHANGES for a
summary of changes, or for a more thorough overview:

https://subversion.apache.org/docs/release-notes/1.14

NOTE 1: There is no need to dump and reload repositories, and the
working copy format is still the same as Subversion 1.8 through 1.13.

NOTE 2: The upstream release also contains a fix for a security issue in
mod_dav_svn (CVE-2020-17525), but since we do not build or use any
Apache modules, it is not an issue for the FreeBSD base system.

Relnotes: yes

(cherry-picked from 0ff1014944897f4f3ffa4462406cdee920b53400)

3 years agoarch.7: update 11.x to 11.4 as the last FreeBSD 11 release
Ed Maste [Thu, 28 Jan 2021 20:02:24 +0000 (15:02 -0500)]
arch.7: update 11.x to 11.4 as the last FreeBSD 11 release

armeb and pc98 were both discontinued after FreeBSD 11.  FreeBSD 11.4
is now known to be the final 11.x release, so update to the specific
version.

(cherry picked from commit 4f9548640dd1c7e9602f0d01647b112e51792224)

3 years agoFix incorrect hypotl(3) result with subnormal numbers
Dimitry Andric [Wed, 10 Feb 2021 22:28:43 +0000 (23:28 +0100)]
Fix incorrect hypotl(3) result with subnormal numbers

This adjusts the factor used to scale the subnormal numbers, so it
becomes the right value after adjusting its exponent. Thanks to Steve
Kargl for finding the most elegant fix.

Also enable the hypot tests, and add a test case for this bug.

PR:             253313

(cherry picked from commit d3338f3355a612cf385632291f46c5777bba8d18)

Fix lib/msun/test builds on platforms without 80-bit long doubles

After d3338f3355a612cf385632291f46c5777bba8d18, the lib/msun test case
'hypotl_near_underflow' would fail to compile on platforms where long
doubles weren't 80 bit, like on x86. Disable this particular test on
such platforms for now.

PR:             253313

(cherry picked from commit 25120662284466ecef976df8f86e97bafdedf991)

3 years agoMFC 12148d4300db:
Hans Petter Selasky [Sun, 14 Feb 2021 19:29:16 +0000 (20:29 +0100)]
MFC 12148d4300db:
Fix for locking order reversal in USB audio driver, when using mmap().

Locking the second lock which causes the LOR, can be skipped because
the code updating the shared variables is always executing from the
same USB thread.

lock order reversal:
  1st 0xfffff80005cc3840 pcm7:play:dsp7.p0 (pcm play channel, sleep mutex)
@ usb_transfer.c:2342
  2nd 0xfffff80005cc3860 pcm7:record:dsp7.r0 (pcm record channel, sleep mutex)
@ uaudio.c:2317

lock order pcm record channel -> pcm play channel established at:
witness_checkorder+0x461
__mtx_lock_flags+0x98
dsp_mmap_single+0x151
vm_mmap_cdev+0x65
devfs_mmap_f+0x143
kern_mmap_req+0x594
sys_mmap+0x46
amd64_syscall+0x12e
fast_syscall_common+0xf8

lock order pcm play channel -> pcm record channel attempted at:
witness_checkorder+0xd82
__mtx_lock_flags+0x98
uaudio_chan_play_callback+0xeb
usbd_callback_wrapper+0x7ec
usb_command_wrapper+0x7e
usb_callback_proc+0x8e
usb_process+0xf3
fork_exit+0x80
fork_trampoline+0xe

Found by: Stefan Ehmann <shoesoft@gmx.net>
Sponsored by: Mellanox Technologies // NVIDIA Networking

(cherry picked from commit 12148d4300dbbd93260bf2801cdb9eda8b3b05a4)

3 years agoGiant: move back Giant removal until 14
Warner Losh [Wed, 17 Feb 2021 16:28:41 +0000 (09:28 -0700)]
Giant: move back Giant removal until 14

Update the Giant Lock warning message to FreeBSD 14. It's growing increasling
clear that this won't be done before 13.0.

MFC: Insta (re@'s request)
Approved by: re@ (gjb for 13.0 release cycle)
(cherry picked from commit 00065c7630c25850298dd3ba6919c2d3628e8ad9)

3 years agomount_nfs: update man page description for oneopenown
Rick Macklem [Mon, 18 Jan 2021 03:00:41 +0000 (19:00 -0800)]
mount_nfs: update man page description for oneopenown

A recent email discussion indicated that a large
accumulation of NFSv4 Opens was occurring on
a mount. This appears to have been caused by a
shared library within the mount being used by
several processes, such that there is always at
least one of these processes running.
A new Open was created by each process and
were not closed, since all the Opens were never
closed. This is alleviated by using the
"oneopenown" mount option.

This man page update attempts to indicate the
use of "oneopenown" for this case.

This is a content change.

(cherry picked from commit 448de00de556753575ec0a2e705712e7c606e680)

3 years agossh: remove unused variable
Ed Maste [Fri, 12 Feb 2021 03:21:40 +0000 (22:21 -0500)]
ssh: remove unused variable

This was introduced in 03f6c5cd93ec, which added use of
sysctl net.inet.ip.portrange.reservedhigh instead of IPPORT_RESERVED,
but it appears the rest of that change was lost in some subsequent
update.

The change should probably be restored, but until then there is no
reason to leave an unused variable around.

Sponsored by: The FreeBSD Foundation

(cherry picked from commit 9e14b918f956c532d0b81c945160bd9bc85c5604)

3 years agossh: remove ssh-hpn leftovers
Ed Maste [Fri, 12 Feb 2021 14:09:00 +0000 (09:09 -0500)]
ssh: remove ssh-hpn leftovers

This was introduced in 8998619212f3a, and left behind when the hpn-ssh
patches were removed in 60c59fad8806.  Although Being able to log
SO_RCVBUF in debug mode might have some small value on its own, it's
not worth carrying an extra diff against upstream.

Reviewed by: kevans
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D28610

(cherry picked from commit a62dc346f6171ef1bd52bb8795eaf2d64394ac24)

3 years agossh: diff reduction against OpenBSD, remove unused includes
Ed Maste [Fri, 12 Feb 2021 01:41:02 +0000 (20:41 -0500)]
ssh: diff reduction against OpenBSD, remove unused includes

These appear to be leftovers from ca86bcf2531c7 and f7167e0ea0bf5

Sponsored by: The FreeBSD Foundation

(cherry picked from commit 154adbbeb8fc2a0d183ec3a4db32cd13668205e8)

3 years agosshd: allow UseBlocklist alias for UseBlacklist
Ed Maste [Wed, 29 Jul 2020 00:34:24 +0000 (00:34 +0000)]
sshd: allow UseBlocklist alias for UseBlacklist

blacklistd has been renamed to blocklistd upstream, and a future
import into FreeBSD will follow that change.  Support the new name
as an alias in config files.

Reviewed by: bz, delphij
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D25865

(cherry picked from commit e426c74375ef7cb3afda3c8e3010a7ea2dbd69d0)

3 years agoopenssh: refer to OpenSSL not SSLeay
Ed Maste [Wed, 15 Jul 2020 15:35:26 +0000 (15:35 +0000)]
openssh: refer to OpenSSL not SSLeay

This change was made upstream between 7.9p1 and 8.0p1.  We've made local
changes in the same places for handling the version_addendum; apply the
SSLeay_version to OpenSSL_version change in advance of importing 8.0p1.

Obtained from: OpenSSH-portable a65784c9f9c5
Sponsored by: The FreeBSD Foundation

(cherry picked from commit 6471c6bd75af57acde7dc39f5202d9a7adf4130a)

openssh: refer to OpenSSL not SSLeay, part 2

(cherry picked from commit ea64ebd08c80e4c0a7b8ed207caba45e9374908e)

3 years agoUpdate version in openssh FREEBSD-vendor metadata
Ed Maste [Fri, 14 Feb 2020 22:32:33 +0000 (22:32 +0000)]
Update version in openssh FREEBSD-vendor metadata

It appears that FREEBSD-vendor is an idea that never really took off
and we should probably just remove it, but until then we might as well
record the correct version.

(cherry picked from commit 23f6a81e4930c69f1fdcbb90de30ce03561bb4cf)

3 years agoAllow setting alias port ranges in libalias and ipfw.
Neel Chauhan [Tue, 2 Feb 2021 21:24:17 +0000 (13:24 -0800)]
Allow setting alias port ranges in libalias and ipfw.

This will allow a system to be a true RFC 6598 NAT444 setup, where each
network segment (e.g. user, subnet) can have their own dedicated port
aliasing ranges.

Reviewed by: donner, kp
Approved by: 0mp (mentor), donner, kp
Differential Revision: https://reviews.freebsd.org/D23450

(cherry picked from commit a08cdb6cfb1c84b80b5337d46c574b55d0e15c63)

3 years agokenv: avoid sleepable alloc for integer tunables
Jason A. Harmening [Fri, 14 Aug 2020 21:37:38 +0000 (21:37 +0000)]
kenv: avoid sleepable alloc for integer tunables

Avoid performing a potentially-blocking malloc for kenv lookups that will only
perform non-destructive integer conversions on the returned buffer. Instead,
perform the strtoq() in-place with the kenv lock held.

While here, factor the logic around kenv_lock acquire and release into
kenv_acquire() and kenv_release(), and use these functions for some light
cleanup. Collapse getenv_string_buffer() into kern_getenv(), as the former
no longer has any other callers and the only additional task performed by
the latter is a WITNESS check that hasn't been useful since r362231.

PR: 248250
Reported by: gbe
Reviewed by: mjg
Tested by: gbe
Differential Revision: https://reviews.freebsd.org/D26010

3 years agoWiden ifnet_detach_sxlock coverage
Kristof Provost [Mon, 8 Feb 2021 09:04:27 +0000 (10:04 +0100)]
Widen ifnet_detach_sxlock coverage

Widen the ifnet_detach_sxlock to cover the entire vnet sysuninit code.
This ensures that we can't end up having the vnet_sysuninit free the UDP
pcb while the detach code is running and trying to purge the UDP pcb.

MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D28530

(cherry picked from commit 6d2a10d96fb5d4ee42fd67b0b07a6d098db5d55a)

3 years agopf: Slightly relax pf_rule_addr validation
Kristof Provost [Sat, 13 Feb 2021 15:31:52 +0000 (16:31 +0100)]
pf: Slightly relax pf_rule_addr validation

Ensure we don't reject no-route / urpf-failed addresses.

PR: 253479
Reported by: michal AT microwave.sk
Revied by: donner@
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D28650

(cherry picked from commit 5e42cb139fc17f165c9c93ac97069dc7770490e2)

3 years agoOpenSSL: Regen assembly files and manual pages for OpenSSL 1.1.1j
Jung-uk Kim [Wed, 17 Feb 2021 05:07:24 +0000 (00:07 -0500)]
OpenSSL: Regen assembly files and manual pages for OpenSSL 1.1.1j

3 years agoOpenSSL: Merge OpenSSL 1.1.1j
Jung-uk Kim [Wed, 17 Feb 2021 04:38:21 +0000 (23:38 -0500)]
OpenSSL: Merge OpenSSL 1.1.1j

Merge commit '4f55bd5321b72491d4eff396e4928e9ab0706735' into stable/12

3 years agocxgbe(4): Fixes to tx coalescing.
Navdeep Parhar [Mon, 1 Feb 2021 11:00:09 +0000 (03:00 -0800)]
cxgbe(4): Fixes to tx coalescing.

- The behavior implemented in r362905 resulted in delayed transmission
  of packets in some cases, causing performance issues.  Use a different
  heuristic to predict tx requests.

- Add a tunable/sysctl (hw.cxgbe.tx_coalesce) to disable tx coalescing
  entirely.  It can be changed at any time.  There is no change in
  default behavior.

(cherry picked from commit 3447df8bc5b342bd88d565641435284ff620ee2a)

3 years agocxgbe(4): Check for descriptors before writing a TLS or raw work request.
Navdeep Parhar [Mon, 31 Aug 2020 22:44:59 +0000 (22:44 +0000)]
cxgbe(4): Check for descriptors before writing a TLS or raw work request.

(cherry picked from commit 565b8fce23e6250b673a956ce753e37b201a5847)

3 years agoImport OpenSSL 1.1.1j.
Jung-uk Kim [Tue, 16 Feb 2021 19:54:02 +0000 (14:54 -0500)]
Import OpenSSL 1.1.1j.

3 years agonetgraph/ng_source: Allow ng_source to inject into any netgraph network
Lutz Donnerhacke [Sun, 17 Jan 2021 20:35:28 +0000 (21:35 +0100)]
netgraph/ng_source: Allow ng_source to inject into any netgraph network

PR: 240530
Reviewed by: kp
Differential Revision: https://reviews.freebsd.org/D21968

(cherry picked from commit 75e7ef74dfc12e01b1ef4706110d238639e04543)

3 years agoinetd: fix unix sockaddr's length assignment
Kyle Evans [Fri, 12 Feb 2021 19:19:43 +0000 (13:19 -0600)]
inetd: fix unix sockaddr's length assignment

unsz was always exactly '1' here due to an unfortunate mispositioning
of closing parenthesis. While it's generally irrelevant because bind(2)
is passed the (accurate) sep->se_ctrladdr_size instead, it's not very
helpful for anything locally that wants to use it rather than assuming
that sep->se_ctrladdr_size perfectly fits the end of sun_path.

Just drop unsz entirely and use the result of SUN_LEN() for it.

(cherry picked from commit 1253835121cb38fd93478849e32a4a4c13436fb2)

3 years agofmtree: add a deprecation notice to the manpage
Kyle Evans [Wed, 10 Feb 2021 15:10:52 +0000 (09:10 -0600)]
fmtree: add a deprecation notice to the manpage

Note that this mtree(8) is actually installed as fmtree(8), while
mtree(8) is located in ^/contrib/mtree -- thus, the reference to
mtree(8) makes a lot more sense in the context in which folks would
actually notice it. Shout-out to Ravi for pointing out that this may
not be an obvious fact.

Relnotes: yes

(cherry picked from commit 6fea22cebe5cb1e51e98c894a738bea910b7bc2f)

3 years agoMFC 57785538c6e0d7e8ca0f161ab95bae10fd304047 and
Cy Schubert [Sun, 7 Feb 2021 03:22:52 +0000 (19:22 -0800)]
MFC 57785538c6e0d7e8ca0f161ab95bae10fd304047 and
    1e811efbc591699b872bea42b9de419c373199df:

57785538c6e0d7e8ca0f161ab95bae10fd304047:

Simplify the FreeBSD check using __FreeBSD__ compiler macro.

Rather than rely on __FreeBSD_version, defined in sys/param.h, use
__FreeBSD__ defined by the compiler.

Reported by: emaste
MFC after: 1 week

(cherry picked from commit 57785538c6e0d7e8ca0f161ab95bae10fd304047)

1e811efbc591699b872bea42b9de419c373199df:

Fix non-IPv6 build post 57785538c6e0d7e8ca0f161ab95bae10fd304047.

57785538c6e0d7e8ca0f161ab95bae10fd304047 change the test for FreeBSD
from __FreeBSD_version to __FreeBSD__. However this test was performed
before sys/param.h was included, therefore __FreeBSD_version was never
defined. As the test was never true opt_random_ip_id.h was never included.

Submitted by: bdragon
Reported by: bdragon

(cherry picked from commit 1e811efbc591699b872bea42b9de419c373199df)

3 years agoMFC d20f7a5a3da1aa5bccdabb89c181ca0c49385ecd:
Cy Schubert [Sun, 7 Feb 2021 03:15:27 +0000 (19:15 -0800)]
MFC d20f7a5a3da1aa5bccdabb89c181ca0c49385ecd:

Simply FreeBSD check using __FreeBSD__ and remove OpenBSD

(cherry picked from commit d20f7a5a3da1aa5bccdabb89c181ca0c49385ecd)

3 years agoMFC 344f1083e128d8d41ca31853dac513ca3efd9d1f:
Cy Schubert [Fri, 5 Feb 2021 14:26:04 +0000 (06:26 -0800)]
MFC 344f1083e128d8d41ca31853dac513ca3efd9d1f:

ipfilter: Use the softn (NAT softc) host map size in ip_nat6 calculation.

The ipfilter NAT table host map size is a tunable that defaults to
a macro value defined at build time. HOSTMAP_SIZE is saved in softn
(the ipnat softc) at initialization. It can be tuned (changed) at runtime
using the ipf -T command. If the hostmap_size tunable is adjusted the
calculation to determine where to put new entries in the table was
incorrect. Use the tunable in the NAT softc instead of the static build
time value.

(cherry picked from commit 344f1083e128d8d41ca31853dac513ca3efd9d1f)

3 years agoMFC 10990cb46027b4cc4339540b1217117863b2cd15:
Cy Schubert [Wed, 3 Feb 2021 03:24:05 +0000 (19:24 -0800)]
MFC 10990cb46027b4cc4339540b1217117863b2cd15:

Simplify FreeBSD check.

(cherry picked from commit 10990cb46027b4cc4339540b1217117863b2cd15)

3 years agoMFC commit e673debe7db8ba95e4ee3b549d2570e71d19b596:
Cy Schubert [Wed, 3 Feb 2021 03:18:48 +0000 (19:18 -0800)]
MFC commit e673debe7db8ba95e4ee3b549d2570e71d19b596:

Simplify BSD macro tests.

All FreeBSD and NetBSD are BSD >= 199306 and have been for a long time.

(cherry picked from commit e673debe7db8ba95e4ee3b549d2570e71d19b596)

3 years agoMFC 0f34c80f376345b98a972940dd4757e58d7beb06:
Cy Schubert [Thu, 28 Jan 2021 05:50:04 +0000 (21:50 -0800)]
MFC 0f34c80f376345b98a972940dd4757e58d7beb06:

Replace the redundant MENTAT macro with SOLARIS.

MENTAT and SOLARIS are synonymous. Remove the extraneous duplicate
macro.

(cherry picked from commit 0f34c80f376345b98a972940dd4757e58d7beb06)

3 years agoCirrus-CI: use FreeBSD 12.2 image
Ed Maste [Mon, 15 Feb 2021 22:04:42 +0000 (17:04 -0500)]
Cirrus-CI: use FreeBSD 12.2 image

Direct commit to stable/12 as main has other changes here, using the
llvm package to avoid building the toolchain.

3 years agomca: Handle inconsistent CMCI capability reporting
Mark Johnston [Mon, 8 Feb 2021 19:42:54 +0000 (14:42 -0500)]
mca: Handle inconsistent CMCI capability reporting

A BIOS bug may apparently cause the BSP to report that it does not
implement CMCI, with some APs reporting that they do.  In this scenario,
avoid a NULL pointer dereference that occurs in cmci_monitor() because
cmc_state was not allocated by the BSP.

PR: 253272
Reported by: asomers, mmacy
Reviewed by: kib (previous version)

(cherry picked from commit b5770470276268acef21368b3e77a325df883500)

3 years agoFix incorrect powf(3) result with x near 1 and |y| much larger than 1
Steve Kargl [Mon, 8 Feb 2021 19:45:30 +0000 (20:45 +0100)]
Fix incorrect powf(3) result with x near 1 and |y| much larger than 1

This adjusts the check to trigger overflow/underflow to a slightly lower
value.

Before: powf(9.999995e-01, -1.342177e+08) -> inf
After:  powf(9.999995e-01, -1.342177e+08) -> 1.858724e+31

(cherry picked from commit 93fc67896550548f91b307dbe3053f11db5d4a8a)

Add test case for 93fc67896550 (incorrect powf(3) result)

This adds the test case to contrib/netbsd-tests/lib/libm/t_pow.c, as it
is currently the only place testing pow(3) and friends.

(cherry picked from commit 51af03328755c9095e94d20858a8d10acfe412ae)

3 years agousleep(3): replace 'process' with 'calling thread'
Konstantin Belousov [Thu, 11 Feb 2021 03:49:25 +0000 (05:49 +0200)]
usleep(3): replace 'process' with 'calling thread'

PR: 253395

(cherry picked from commit 4956af2a8f0d7723cb09c98e7f5295b156136f70)

3 years agotest_inf_inputs: Use atf_tc_expect_fail() instead of atf_tc_skip()
Alex Richardson [Fri, 29 Jan 2021 09:28:40 +0000 (09:28 +0000)]
test_inf_inputs: Use atf_tc_expect_fail() instead of atf_tc_skip()

Reviewed By: lwhsu
Differential Revision: https://reviews.freebsd.org/D28396

(cherry picked from commit 4d2edf3af1dbd8a3e7cf1b22343a1ecfc2dd41ba)

Fix lib/msun's ctrig_test/test_inf_inputs test case with clang >= 10

This sprinkles a few strategic volatiles in an attempt to defeat clang's
optimization interfering with the expected floating-point exception
flags.

Reported by: lwhsu
PR: 244732

(cherry picked from commit ac76bc1145dd7f4476e5d982ce8f355f71015713)

3 years agoPrint DeviceHandle and PhysicalId in hex.
Alexander Motin [Fri, 5 Feb 2021 21:13:55 +0000 (16:13 -0500)]
Print DeviceHandle and PhysicalId in hex.

The first is actually a bitfield.  The second is printed in hex by
dmidecode, so uniformidy should be good.

MFC after: 1 week

(cherry picked from commit 92d0d6bb14d24abea0786edf546af316ff4a2afe)

3 years agoImprove ACPI_NFIT_CONTROL_REGION formatting.
Alexander Motin [Fri, 5 Feb 2021 15:07:37 +0000 (10:07 -0500)]
Improve ACPI_NFIT_CONTROL_REGION formatting.

MFC after: 1 week

(cherry picked from commit 35e39fd95fda64699b638192f3bab955d0f1cf0c)

3 years agogrep: fix -A handling in conjunction with -m match limitation
Kyle Evans [Mon, 8 Feb 2021 18:31:17 +0000 (12:31 -0600)]
grep: fix -A handling in conjunction with -m match limitation

The basic issue here is that grep, when given -m 1, would stop all
line processing once it hit the match count and exit immediately.  The
problem with exiting immediately is that -A processing only happens when
subsequent lines are processed and do not match.

The fix here is relatively easy; when bsdgrep matches a line, it resets
the 'tail' of the matching context to the value supplied to -A and
dumps anything that's been queued up for -B. After the current line has
been printed and tail is reset, we check our mcount and do what's
needed. Therefore, at the time that we decide we're doing nothing, we
know that 'tail' of the context is correct and we can simply continue
on if there's still more to pick up.

With this change, we still bail out immediately if there's been no -A
flag. If -A was supplied, we signal that we should continue on. However,
subsequent lines will not even bothere to try and process the line.  We
have reached the match count, so even if the next line would match then
we must process it if it hadn't. Thus, the loop in procfile() can
short-circuit and just process the line as a non-match until
procmatches() indicates that it's safe to stop.

A test has been added to reflect both that we should be picking up the
next line and that the next line should be considered a non-match even
if it should have been.

PR: 253350

(cherry picked from commit 3e2d96ac974db823255a6f40b90eeffa6e38d022)

3 years agogrep: turn off -w if -x is specified
Kyle Evans [Thu, 4 Feb 2021 21:35:58 +0000 (15:35 -0600)]
grep: turn off -w if -x is specified

-x overcomes -w in gnugrep, and it should here as well.  Flip it off as
needed to avoid confusing other parts of grep.

(cherry picked from commit 2373acbbb77d694b997d90f3251810c6edf5d6d8)

3 years agogrep: fix null pattern and empty pattern file behavior
Kyle Evans [Thu, 4 Feb 2021 21:26:45 +0000 (15:26 -0600)]
grep: fix null pattern and empty pattern file behavior

The null pattern semantics were terrible because I tried to match gnugrep,
but I got it wrong.  Let's unwind that:

- The null pattern should match every line if neither -w nor -x.
- The null pattern should match empty lines if -x.
- The null pattern should not match any lines if -w.

The first two will stop processing (shortcut) even if additional patterns
are specified. In any other case, we will continue processing other
patterns.  If no other patterns are specified beside a null pattern, then
we match if neither -w nor -x or set and do not match if either of those
are specified.

The justification for -w is that it should match on a whole word, but the
null pattern deos not have a whole word to match on.

Empty pattern files should never match anything, and more importantly, -v
should cause everything to be written.

PR: 253209

(cherry picked from commit f823c6dc730b0dd08b54a53be1d8fd587eee7021)

3 years agozgrep: fix exit status with multiple files
Eric van Gyzen [Thu, 1 Oct 2020 21:48:22 +0000 (21:48 +0000)]
zgrep: fix exit status with multiple files

zgrep should exit with success when given multiple files and the
pattern is found in at least one file.  Prior to this change,
it would exit with success only if the pattern was found in _every_ file.

(cherry picked from commit 63c8336d4de15085d50c9d8c855cdc97ee018a04)

3 years agoacpi: limit the AMDI0020/AMDI0010 workaround to an option
Warner Losh [Mon, 8 Feb 2021 21:43:25 +0000 (14:43 -0700)]
acpi: limit the AMDI0020/AMDI0010 workaround to an option

It appears that production versions of EPYC firmware get the _STA method right
for these nodes. In fact, this workaround breaks on production hardware by
including too many uart nodes. This work around was for pre-release hardware
that wound up not having a large deployment. Move this work around to a kernel
option since the machines that needed it have been powered off and are difficult
to resurrect. Should there be a more significant deployment than is understood,
we can restrict it based on smbios strings.

Discussed with: mmacy@, seanc@, jhb@
MFC After: 3 days

(cherry picked from commit 35af933173d516101f4c44af328fbe2d6e587869)

3 years agonvdimm: Fix error path mis-free
Conrad Meyer [Wed, 2 Oct 2019 19:13:35 +0000 (19:13 +0000)]
nvdimm: Fix error path mis-free

(diff applied manually due to refactoring)

Regression introduced in r343629 when malloc result was renamed from spa to
spa_mapping and the 'spa' name was instead used to iterate a table, but the
free() target was not updated.

Reviewed by: kib, scottph
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D21871

(cherry picked from commit 31f1c8fc84c850d73e74781126e12efceb50032b)

3 years agoUpgrade to OpenPAM Tabebuia.
Dag-Erling Smørgrav [Mon, 25 Feb 2019 18:41:16 +0000 (18:41 +0000)]
Upgrade to OpenPAM Tabebuia.

PR: 235903
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D28528

(cherry picked from commit 23d17223345108c52b96dcc5d7e6dab29e95f3e9)

3 years agoreadelf: decode LA48 and ASG_DISABLE feature flags
Ed Maste [Wed, 3 Feb 2021 21:16:45 +0000 (16:16 -0500)]
readelf: decode LA48 and ASG_DISABLE feature flags

Sponsored by: The FreeBSD Foundation

(cherry picked from commit e79b51e2b2e35d6256a1ef5311ce02ec4032d21f)

3 years agoMFC 7071734fae6019d1e3e44daf7deb4478582081cc:
Cy Schubert [Wed, 27 Jan 2021 15:25:00 +0000 (07:25 -0800)]
MFC 7071734fae6019d1e3e44daf7deb4478582081cc:

Indentation cleanup resulting from the cleanup of #ifdefs.

The conscious decision was made not to perform any indentation or
whitespace cleanup while cleaning out old redunant #ifdefs. The
reason for this was to avoid confusing future readers of history and
diffs with cosmetic changes, making bisection of any possible bugs
introduced more difficult. This commit cleans up the whitespace
detritus left behind from the previous #ifdef cleanup commits.

(cherry picked from commit 7071734fae6019d1e3e44daf7deb4478582081cc)

3 years agoMFC 4cd1807c7d2a67b633dd0c0bfde15091543a2514:
Cy Schubert [Tue, 26 Jan 2021 06:24:28 +0000 (22:24 -0800)]
MFC 4cd1807c7d2a67b633dd0c0bfde15091543a2514:

Retire the K&R/STD C __P prototype declarations.

In the old days when K&R C and STD C were each in use a workaround
(read hack) was required to allow the same code to work on each
without modification. All C compilers support STD C. We can finally
put the __P prototype to rest.

(cherry picked from commit 4cd1807c7d2a67b633dd0c0bfde15091543a2514)

3 years agortld: Fix null-pointer dereference
David Chisnall [Tue, 2 Feb 2021 14:06:33 +0000 (16:06 +0200)]
rtld: Fix null-pointer dereference

(cherry picked from commit 43d44842aef3972cc86ce673e84e31f372257b15)

3 years agoamd64 GENERIC: compile in mlx5en(4)
Konstantin Belousov [Wed, 3 Feb 2021 12:19:12 +0000 (14:19 +0200)]
amd64 GENERIC: compile in mlx5en(4)

(cherry picked from commit 5832a3e398642f721381dc2bdc8e954ae43c17a7)

3 years agocpucontrol(8): Fix display.
Konstantin Belousov [Fri, 5 Feb 2021 01:00:27 +0000 (03:00 +0200)]
cpucontrol(8): Fix display.

(cherry picked from commit 856789c123d69de86684c5aa1ad8a53427dd47fc)

3 years agoWITH_OFED build option: fix
Konstantin Belousov [Tue, 2 Feb 2021 13:01:26 +0000 (15:01 +0200)]
WITH_OFED build option: fix

(cherry picked from commit ff975f15d86001d5b948ab538de1e4aca852d2f5)

3 years agonfs client: block vnode_pager_setsize() calls from nfscl_loadattrcache in nfs_write
Konstantin Belousov [Fri, 22 Jan 2021 21:47:06 +0000 (23:47 +0200)]
nfs client: block vnode_pager_setsize() calls from nfscl_loadattrcache in nfs_write

(cherry picked from commit aa8c1f8d84d2638a354e71f9593e978d00878243)
(cherry picked from commit bd01a69f4836994b50b492883fb5367db41fb506)

3 years agoelf: add some definitions for i386 and amd64 relocations
Konstantin Belousov [Sun, 17 Jan 2021 07:03:31 +0000 (09:03 +0200)]
elf: add some definitions for i386 and amd64 relocations

(cherry picked from commit f7d181543fd96a89b84878ddb2d5ac010fadd9b8)

3 years agox86 vdso gettc: Add RDTSCP support
Konstantin Belousov [Wed, 6 Jan 2021 15:05:09 +0000 (17:05 +0200)]
x86 vdso gettc: Add RDTSCP support

Tested by: pho

(cherry picked from commit cd240c9cf100bec3def38ceb4a320611b1d02693)
(cherry picked from commit 523d94dbeab5ccb1cce21b8cad350b700c3d01b2)

3 years agox86 vdso gettc: eliminate duplicated code in ifunc selectors.
Konstantin Belousov [Wed, 6 Jan 2021 15:00:48 +0000 (17:00 +0200)]
x86 vdso gettc: eliminate duplicated code in ifunc selectors.

Tested by: pho

(cherry picked from commit 5bf4bafd13a4044b7c3d2e8246684a597c6f2134)

3 years agox86 vdso gettc: reorganize ifunctions.
Konstantin Belousov [Tue, 5 Jan 2021 21:14:11 +0000 (23:14 +0200)]
x86 vdso gettc: reorganize ifunctions.

Tested by: pho

(cherry picked from commit de898cb96042a026ef703d81aea6cdf1ffce8f32)

3 years agotsc: add RDTSCP or faster variants of get_timecount()
Konstantin Belousov [Tue, 5 Jan 2021 21:00:14 +0000 (23:00 +0200)]
tsc: add RDTSCP or faster variants of get_timecount()

Tested by: pho

(cherry picked from commit 9e680e4005b77e3028d28377ee3722a5260f4422)
(cherry picked from commit a013e285dfd6b89b1908ca13febb0fdb0a7f3b1f)
(cherry picked from commit 9f47eeffa3cfdcb512e2011fb00fc23c7c1a7d75)

3 years agoAdd ddb 'show timecounter' command.
Konstantin Belousov [Mon, 18 Jan 2021 07:25:36 +0000 (09:25 +0200)]
Add ddb 'show timecounter' command.

(cherry picked from commit 36bcc44e2c578dd016940c9c5068c348e1d77f99)

3 years agox86 busdma_bounce: use malloc_domainset_aligned(9).
Konstantin Belousov [Thu, 14 Jan 2021 04:02:21 +0000 (06:02 +0200)]
x86 busdma_bounce: use malloc_domainset_aligned(9).

Tested by: pho

(cherry picked from commit f3ea417f96b011a7eb4f43e3142e572833287ef4)

3 years agoImplement malloc_domainset_aligned(9).
Konstantin Belousov [Thu, 14 Jan 2021 03:59:34 +0000 (05:59 +0200)]
Implement malloc_domainset_aligned(9).

Tested by: pho

(cherry picked from commit 3b15beb30b3b4ba17bae3d1d43c8c04ff862bb57)
(cherry picked from commit 0781c79d4872a84a8ebeee3b5eb5520a682b8e7b)
(cherry picked from commit 1ac7c34486ab9177c2472278739568d4607e1acc)

3 years agojobc: rework detection of orphaned groups.
Konstantin Belousov [Tue, 29 Dec 2020 00:41:56 +0000 (02:41 +0200)]
jobc: rework detection of orphaned groups.

Tested by: pho

For MFC, pg_jobc member is left in struct pgrp, but it is unused now.

(cherry picked from commit 5844bd058aed6f3d0c8cbbddd6aa95993ece0189)

3 years agokinfo_proc: move job-control related data collection into a new helper.
Konstantin Belousov [Thu, 31 Dec 2020 22:46:20 +0000 (00:46 +0200)]
kinfo_proc: move job-control related data collection into a new helper.

Tested by: pho

(cherry picked from commit cf4f802e77a3a438bce5335b67c88ac6f0e21a6e)

3 years agoLock proctree in around fill_kinfo_proc().
Konstantin Belousov [Thu, 31 Dec 2020 22:29:40 +0000 (00:29 +0200)]
Lock proctree in around fill_kinfo_proc().

Tested by: pho

(cherry picked from commit 4daea938130b4a219e01d678e9499f0bdb715f82)

3 years agopgrp: Prevent use after free.
Konstantin Belousov [Thu, 31 Dec 2020 13:44:32 +0000 (15:44 +0200)]
pgrp: Prevent use after free.

Tested by: pho

(cherry picked from commit ef739c7373d8b3833979ad471b31cb9e215411fd)

3 years agoMFC 85d8d30f9f70:
Hans Petter Selasky [Tue, 26 Jan 2021 14:01:38 +0000 (15:01 +0100)]
MFC 85d8d30f9f70:
Don't allow allocating a new send tag on an INP which is being torn down.
This fixes a potential send tag leak.

Reviewed by: rrs@
Sponsored by: Mellanox Technologies // NVIDIA Networking

(cherry picked from commit 85d8d30f9f7046f5e89295352ded49135b25fbe3)

3 years agoAdd a manual page for axp(4) / AMD 10G Ethernet driver
Gordon Bergling [Sun, 24 Jan 2021 13:57:16 +0000 (14:57 +0100)]
Add a manual page for axp(4) / AMD 10G Ethernet driver

Submitted by: Rajesh Kumar <rajesh1 dot kumar at amd dot com>
Reviewed by: bcr, brueffer, rpokala
Differential Revision: https://reviews.freebsd.org/D27800

(cherry picked from commit 1f73236b0302cdf47630c99687c2dfd4e514ab54)

3 years agoukbd(4): Push LED events in ioctl handler rather than in xfer callback
Vladimir Kondratyev [Thu, 24 Dec 2020 19:08:04 +0000 (22:08 +0300)]
ukbd(4): Push LED events in ioctl handler rather than in xfer callback

If LED state is set through evdev interface, than asynchronous nature
of USB transfer callback can lead to change of order of events echoed
back to userland as it causes LED events to be echoed with some lag.

Fix that with echoing of LED events synchronously in ioctl handler.

Reviewed by: hselasky
Obtained from: sysutils/iichid
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D27750

(cherry picked from commit 30f34a519372ebce29c4439d0e6a7bc8c2df0566)

3 years agoukbd(4): Do not serialize evdev key events
Vladimir Kondratyev [Thu, 24 Dec 2020 18:56:33 +0000 (21:56 +0300)]
ukbd(4): Do not serialize evdev key events

Unlike AT keyboards, HID devices are able to send all pc105 key
states within a single report. Let evdev to transmit all key state
changes within a single report too.

Reviewed by: hselasky
Obtained from: sysutils/iichid
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D27749

(cherry picked from commit 769935a4edf8a75805000900d44a66ad5d2eaabe)

3 years agopsm(4): Always initialize Synaptics touchpad report range with defaults
Vladimir Kondratyev [Tue, 22 Dec 2020 20:44:42 +0000 (23:44 +0300)]
psm(4): Always initialize Synaptics touchpad report range with defaults

Otherwise libinput refuses to recoginize some Synaptics touchpads with
"kernel bug: device has min == max on ABS_X" message in Xorg.log.

PR: 251149
Reported-by: Jens Grassel <freebsd-ports@jan0sch.de>
Tested-by: Jens Grassel <freebsd-ports@jan0sch.de>
MFC-after: 2 weeks
(cherry picked from commit 2ac1c1927258e649e3ca3269aea40fb4c63e2296)

3 years agoCorrect description for kern.proc.proc_td
Ed Maste [Tue, 2 Feb 2021 21:55:51 +0000 (16:55 -0500)]
Correct description for kern.proc.proc_td

kern.proc.proc_td returns the process table with an entry for each
thread.  Previously the description included "no threads", presumably
a cut-and-pasteo in 2648efa621748.

Description suggested by PauAmma.

PR: 253146
MFC after: 3 days
Sponsored by: The FreeBSD Foundation

(cherry picked from commit edc374e7c41d3d9e28e0b3a76bc9ed021d7db571)

3 years agoRevert "opencrypto: Fix assignment of crypto completions to worker threads"
Mark Johnston [Thu, 4 Feb 2021 14:43:10 +0000 (09:43 -0500)]
Revert "opencrypto: Fix assignment of crypto completions to worker threads"

atomic_fetchadd_64 is not available on all platforms on stable/12.

This reverts commit 10ed8ab4ab9bd0239f2913ac2f35af9b9f76221d.

Reported by: Mark Millard

3 years agoipfw(8) crashes when ext6hdr option is omitted
Evgeniy Khramtsov [Mon, 1 Feb 2021 19:03:57 +0000 (20:03 +0100)]
ipfw(8) crashes when ext6hdr option is omitted

Verify that the option is passed, error out if it's not.
The problem can be trivially triggered with `ipfw add allow ext6hdr`.

PR: 253169
Reviewed by: kp@
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D28447

(cherry picked from commit 682c31db4ecfb8fc6cac0e8ad4945c03379ea3d1)

3 years agobridge: fix STP roles and protos strings
Jonah Caplan [Sat, 30 Jan 2021 13:54:09 +0000 (14:54 +0100)]
bridge: fix STP roles and protos strings

Add the missing commas that got lost in e5539fb618cc7.

PR: 252532
Reviewd by: kp@, donner@, freqlabs@
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D28425

(cherry picked from commit 88be0e11205e4a2dc77e29f7b4a2e82b8d7c9a5c)

3 years agocron(8): set the environment variables of the user and/or login class
Andrew Gierth [Wed, 5 Feb 2020 04:35:54 +0000 (04:35 +0000)]
cron(8): set the environment variables of the user and/or login class

Prior to processing environment variable set in the crontab file as those
should be of higher precedent, pull in the user or login class environment.

This is another supporting feature for allowing one to configure system-wide
settings that may affect both regular cron jobs as well as services.

This is the final part of D21481.

(cherry picked from commit 7466dbd684879cbe8d034f388f0c7da703e00c31)

3 years agoservice(8): set the environment of the "daemon" class before invoking
Andrew Gierth [Wed, 5 Feb 2020 04:32:49 +0000 (04:32 +0000)]
service(8): set the environment of the "daemon" class before invoking

As mentioned in r357562, this gives the user a single place to configure
environment variables that need to be used for various services -- the
"daemon" class -- for, e.g., configuring a system-wide HTTP proxy.

This is a part of D21481.

(cherry picked from commit 736a5a6d1dbbdae68eb102c2ba9c114aafd61821)

3 years agoinit(8): set environment variables from the "daemon" class as well
Andrew Gierth [Wed, 5 Feb 2020 04:27:44 +0000 (04:27 +0000)]
init(8): set environment variables from the "daemon" class as well

Specifically, when running /etc/rc. This allows one to specify via
login.conf(5) an environment that should be used when running services to
ease, e.g., setting up env vars for an HTTP proxy consistently across cron
and services alike.

Future changes will extend cron(8)/service(8) to use environment vars
pecified in login.conf(5) as well to promote a more cohesive experience.

This is a part of D21481.

(cherry picked from commit 21c1a93c048fdd9c276899e72dcb8dc93cc18e09)

3 years agologin.conf(5): set a default PATH for the daemon class
Andrew Gierth [Wed, 5 Feb 2020 04:27:08 +0000 (04:27 +0000)]
login.conf(5): set a default PATH for the daemon class

This is a sensible default used by, e.g., cron(8), and useful if one wanted
to honor it.

This is a part of D21481.

(cherry picked from commit ed6f64ff8a90eee579fefef510329b5e9f1f9a65)

3 years agoRemove FirstBurstLength limit for software iSCSI.
Alexander Motin [Thu, 21 Jan 2021 02:33:14 +0000 (21:33 -0500)]
Remove FirstBurstLength limit for software iSCSI.

For hardware offload solicited data may potentially be handled more
efficiently than unsolicited due to direct data placement.  Or there
can be some unsolicited write buffering limitations.  It may create
situations where FirstBurstLength limit is really useful.

Software driver though has no those factors, having to do memcopy()
any way and having no so hard limit on the temporary storage.  Same
time more active use of unsolicited transfers allows to avoid some
of Ready To Transfer (R2T) PDU round-trip times and processing.

This change effectively doubles from 64KB to 128KB the maximum size
of write command that can be transferred within one link RTT.  Tests
of (64KB, 128KB] QD1 writes mixed with simultaneous QD8 reads over
the same connection, increasing RTT, shows almost double write speed
and half latency, while we should be able to afford few megabytes of
RAM for additional buffering on a target these days.

Sponsored by: iXsystems, Inc.

(cherry picked from commit ff751ee05c939eceab25c26ad60b1d56f989aec9)

3 years agonewvers: tweak uname to be more useful
Warner Losh [Mon, 25 Jan 2021 19:53:31 +0000 (12:53 -0700)]
newvers: tweak uname to be more useful

The current uname is branch-cXXXX-gHASH

Three changes to make uname more useful.
1. Move from using git rev-list --count to git rev-lis --count --first-parent
   since that gives a better, incrementing number.
2. Report this count as 'nXXXXX' rather than 'cXXXXX' because c is part of
   a hash and we've changed the sematnics of XXXXX
3. Remove g to make HASH cut and pastable.

Durting review, #1 & #3 had the largest consensus. There was a diversity of
opinion on #2, but on the whole it was positive so I'll acknowledge the dissent,
but move forward with something seems to have support since the dissent was all
about what letter to use where I chose 'n'.

MFC After: 3 days
Reviewed by: rgrimes, emaste (earlier version)
Differential Revision: https://reviews.freebsd.org/D28338

(cherry picked from commit 8a51f14a7833fd14e1f125e63a0af9d260dcd287)

3 years agoopencrypto: Fix assignment of crypto completions to worker threads
Mark Johnston [Wed, 20 Jan 2021 01:34:35 +0000 (20:34 -0500)]
opencrypto: Fix assignment of crypto completions to worker threads

Since r336439 we simply take the session pointer value mod the number of
worker threads (ncpu by default).  On small systems this ends up
funneling all completion work through a single thread, which becomes a
bottleneck when processing IPSec traffic using hardware crypto drivers.
(Software drivers such as aesni(4) are unaffected since they invoke
completion handlers synchonously.)

Instead, maintain an incrementing counter with a unique value per
session, and use that to distribute work to completion threads.

Reviewed by: cem, jhb
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D28159

(cherry picked from commit 98d788c867b9e1d7a7e290254443b87ea77d8ab1)

3 years agopf: Improve pf_rule input validation
Kristof Provost [Tue, 26 Jan 2021 07:56:51 +0000 (08:56 +0100)]
pf: Improve pf_rule input validation

Move the validation checks to pf_rule_to_krule() to reduce duplication.
This also makes the checks consistent across different ioctls.

Reported-by: syzbot+e9632d7ad17398f0bd8f@syzkaller.appspotmail.com
Reviewed by: tuexen@, donner@
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D28362

(cherry picked from commit 7a808c5ee3296fdb72d8e8bc6c7ad6f316a520ab)

3 years agolualoader: position hyphens at the beginning of character classes
Kyle Evans [Sun, 31 Jan 2021 15:51:39 +0000 (09:51 -0600)]
lualoader: position hyphens at the beginning of character classes

According to the Lua 5.4 manual section 6.4.1 ("Patterns"), the interaction
between ranges and classes is not defined and hyphens must be specified at
either the beginning or the end of a set if they are not escaped.

Move all such occurrences to the beginning.

(cherry picked from commit b24872cf7b13314669ed2136c0262bb2eb007695)

3 years agostand: lua: enhance lfs.dir() to speed up kernels_autodetect
Kyle Evans [Sun, 24 Jan 2021 01:32:38 +0000 (19:32 -0600)]
stand: lua: enhance lfs.dir() to speed up kernels_autodetect

This eliminates a lot of stat() calls that happen when lualoader renders the
menu with the default settings, and greatly speeds up rendering on my
laptop.

ftype is nil if loader/loader.efi hasn't been updated yet, falling back to
lfs.attributes() to test.

This is technically incompatible with lfs, but not in a particularly
terrible way.

(cherry picked from commit e25ee296c919d6567aa76058a7049eac974797fb)

3 years agocxgb(4): Remove assumption of physically contiguous mbufs.
Alexander Motin [Sun, 31 Jan 2021 17:46:57 +0000 (12:46 -0500)]
cxgb(4): Remove assumption of physically contiguous mbufs.

Investigation of iSCSI target data corruption reports brought me to
discovery that cxgb(4) expects mbufs to be physically contiguous, that
is not true after I've started using m_extaddref() in software iSCSI
for large zero-copy transmissions.  In case of fragmented memory the
driver transmitted garbage from pages following the first one due to
simple use of pmap_kextract() for the first pointer instead of proper
bus_dmamap_load_mbuf_sg().  Seems like it was done as some optimization
many years ago, and at very least it is wrong in a world of IOMMUs.

This patch just removes that optimization, plus limits packet coalescing
for mbufs crossing page boundary, also depending on assumption of one
segment per packet.

Sponsored by: iXsystems, Inc.

(cherry picked from commit 9dc7c250b8bd2d5e669c7633e189a700a02c0571)

3 years agofstyp(8): fix exfat detection
Conrad Meyer [Sun, 17 Jan 2021 19:55:06 +0000 (11:55 -0800)]
fstyp(8): fix exfat detection

In the presence of high-level errors (spec violations, bad boot blocks
checksum), report non-detection instead of detection.

PR: 252787 (related, but does not fully address)
(cherry picked from commit ddf61156132b610915325769cbb93ea11be0d433)

3 years agofstyp(8): Show exFAT volume labels with -l flag
Conrad Meyer [Sun, 22 Dec 2019 03:19:17 +0000 (03:19 +0000)]
fstyp(8): Show exFAT volume labels with -l flag

exfat is fundamentally the same design as fat32.  The superblock differs
marginally, and there are some additional optional features irrelevant to
fstype(8); the structure of dirents has changed slightly to enable, among
other things, larger files; the directory entries are no longer DOS 8.3
ASCII or local 8-bit encoding, but instead explicitly UCS-2-LE.

(As a result, this change uses iconv to convert a found exfat volume label
to the user's locale.)

Locating the volume label is identical to FAT32: locate the root directory
and walk through dirents until you find a volume label.  Like FAT32, follow
the FAT chain between root directory clusters as necessary.

PR: 242225
Reported by: Victor Sudakov <vas AT sibptus.ru>

(cherry picked from commit 85b4c344c8c69ff7993bc0ac833aaf9a8108b88d)

fstyp(8): Fix WITHOUT_ICONV build

Reported by: olivier

(cherry picked from commit 5ab1cb52b21fdc5524bd970e9b5cdff21a5bcabf)

3 years agoixl: Permit 802.1ad frames to pass though the chip
Lutz Donnerhacke [Tue, 2 Feb 2021 14:42:38 +0000 (15:42 +0100)]
ixl: Permit 802.1ad frames to pass though the chip

This patch is a quick hack to change the internal Ethertype used
within the chip.  All frames with this type are dropped silently.
This patch allows you to overwrite the factory default 0x88a8, which
is used by IEEE 802.1ad VLAN stacking.

Reviewed by: kp, philip, brueffer
Approved by: philip (mentor)
Differential Revision: https://reviews.freebsd.org/D24179

(cherry picked from commit fa6662b3689eeb71cb63c2b230ca08e7342cabf0)

3 years agomarvell: ap806_clock: add missing frequency modes
Marcin Wojtas [Tue, 26 Jan 2021 10:49:35 +0000 (11:49 +0100)]
marvell: ap806_clock: add missing frequency modes

In the driver init routine the CPU clock frequency
value is obtained from a dedicated register. Until now
only part of the values were handled by the mv_ap806_clock
driver. Fix that by adding missing cases.

Submitted by: Zyta Szpak <zr@semihalf.com>
MFC after: 1 week
Obtained from: Semihalf
Sponsored by: Marvell

(cherry picked from commit a86b0839d7bf3fc06b1ae9c50e055b53c50a9d0b)

3 years agonetgraph/ng_tag: permit variable length data
Lutz Donnerhacke [Sat, 2 Jan 2021 13:58:17 +0000 (14:58 +0100)]
netgraph/ng_tag: permit variable length data

ng_tag(4) operate on arbitrary data of mbuf_tags(9).  Those structures
are padded to the next multiple of the alignment by the compiler.
Hence a valid argument has be at most as long as the data received.

PR: 241462
Reviewed by: kp
Approved by: philip (mentor)
Differential Revision: https://reviews.freebsd.org/D22140

(cherry picked from commit 7c7c231c14246a709270bf3f3a4593208e84d01a)

3 years agoMFC 064009e79462:
Hans Petter Selasky [Mon, 25 Jan 2021 10:22:55 +0000 (11:22 +0100)]
MFC 064009e79462:
Add support for enabling and disabling IFCAP_VLAN_HWTSO via
ifconfig(8) in mlx5en(4).

Sponsored by: Mellanox Technologies // NVIDIA Networking

(cherry picked from commit 064009e79462dea517aa7f1a857fb4d5393caa69)

3 years agotmpfs: push VEXEC check into tmpfs_lookup()
Kyle Evans [Thu, 28 Jan 2021 14:27:28 +0000 (08:27 -0600)]
tmpfs: push VEXEC check into tmpfs_lookup()

vfs_cache_lookup() has already done the appropriate VEXEC check, therefore
we must not re-check in VOP_CACHEDLOOKUP.

This fixes O_SEARCH semantics on tmpfs and removes a redundant descent into
VOP_ACCESS() in the common case.

Reported-by: arichardson (via CheriBSD Jenkins CI)

(cherry picked from commit 0f919ed4ae4df082eefb517afe02752b1790afd3)

3 years agoDecode NFIT Platform Capabilities.
Alexander Motin [Mon, 25 Jan 2021 21:08:06 +0000 (16:08 -0500)]
Decode NFIT Platform Capabilities.

(cherry picked from commit 1b109c69ed625ebf292c1d16f7a3efcab96722e5)

3 years agoAdd missing newlines.
Alexander Motin [Thu, 28 Jan 2021 23:18:53 +0000 (18:18 -0500)]
Add missing newlines.

(cherry picked from commit 8fee65d0c70c99999b2fe5b49b267547b7ed2a49)

3 years agonetmap: simplify parameter passing
Vincenzo Maffione [Sun, 24 Jan 2021 21:59:02 +0000 (21:59 +0000)]
netmap: simplify parameter passing

Changes imported from the netmap github.

(cherry picked from commit ee0005f11f2b38a714bc66b7d79832108f6fee77)

3 years agoiflib: netmap: move per-packet operation out of fragments loop
Vincenzo Maffione [Sun, 24 Jan 2021 21:38:59 +0000 (21:38 +0000)]
iflib: netmap: move per-packet operation out of fragments loop

MFC after: 1 week

(cherry picked from commit f80efe5016ba01b2948ca1f0eb8fe34adab5b864)