r348079 jhibbits May 22, 2019, 2:43 a.m.
The MSR[EE] bit does not require synchronization when changing.  This is a
trivial micro-optimization, removing the trailing isync from mtmsr().

MFC after:	1 week
r348078 cem May 22, 2019, 1:22 a.m.
It's invalid to reference a C++ string's c_str() buffer after the object
goes out of scope.  Adjust the scope of the string to match the use in
write(2) to fix the misuse.

CID:		1393383
Reported by:	Coverity
r348077 asomers May 22, 2019, 1:11 a.m.
Reviewed by:	kib
MFC after:	3 days
MFC-With:	r341689
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D20339
r348076 cem May 22, 2019, 12:21 a.m.
Konstantin points out that lockmgr probably requires the whole lock.h anyway.

Requested by:	kib
r348075 kib May 21, 2019, 10:56 p.m.
If MDS mitigation is enabled by the tunable but MDS microcode is not
early-loaded, software mitigation is selected.  This causes
initializecpu() to try to allocate memory which makes boot process
very unhappy.

Create SYSINIT that runs sufficiently late to succeed.

Reported by:	naddy
PR:	237968
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
r348074 mckusick May 21, 2019, 10:24 p.m.
found by Coverity. However, upon closer inspection the implementation of
fsck_ffs's fsck_readdir() and dircheck() functions is both nearly impossible
to follow and fails to check / fix directories in several cases. So, this
revision is an entire rewrite of these two functions to clarify what they
are doing and also to get something that works properly.

Referred by:  cem
Reviewed by:  kib, David G Lawrence
MFC after:    3 days
CID 1401317:  namlen may be used uninitialized
r348073 allanjude May 21, 2019, 10:17 p.m.
r348072 allanjude May 21, 2019, 10:11 p.m.
PR:		148987
Submitted by:	Dan Lukes <dan@obluda.cz> (original version)
MFC after:	1 week
Sponsored by:	Klara Systems
Event:	Waterloo Hackathon 2019
r348071 allanjude May 21, 2019, 9:39 p.m.
r348070 cem May 21, 2019, 9:35 p.m.
After r347984, these macros live in sys/_lock.h.  No functional change.

Sponsored by:	Dell EMC Isilon
r348069 emaste May 21, 2019, 9:27 p.m.
There were several (apparently) copy-pasted NEED validation macros,
leading to the same error string for different issues.  Change the
YP and NTP tags so they are distinct.

PR:		30863
Submitted by:	Dan Lukes <dan@obluda.cz>
Reviewed by:	markj
MFC after:	1 week
Event:		Waterloo Hackathon 2019
r348068 allanjude May 21, 2019, 9:26 p.m.
This allows the user to enable, disable, and adjust the I/O deadman at
runtime. This can be especially useful when a pool is backed by remote
storage (such as iscsi, ggated, etc).

PR:		221906
Submitted by:	Fabian Keil <fk@fabiankeil.de>
Obtained from:	ElectroBSD
MFC after:	1 week
Sponsored by:	Klara Systems
Event:		Waterloo Hackathon 2019
r348067 cem May 21, 2019, 9:26 p.m.
"." and ".." names are not maintained in the mqueuefs dirent datastructure and
cannot be opened as mqueues.  Creating or removing them is invalid; return
EINVAL instead of crashing.

PR:		236836
Submitted by:	Torbjørn Birch Moltu <t.b.moltu AT lyse.net>
Discussed with:	jilles (earlier version)
r348066 markj May 21, 2019, 9:22 p.m.
PR:		30854
Submitted by:	Dan Lukes <dan@obluda.cz>
Reviewed by:	imp (previous version)
MFC after:	1 week
Event:		Waterloo Hackathon 2019
Differential Revision:	https://reviews.freebsd.org/D2581
r348065 allanjude May 21, 2019, 9:14 p.m.
Previously, if a system had multiple batteries, the remaining life
percentage was calculated as the average of each battery's percent
remaining. This results in rather incorrect values when you consider the
case of the Thinkpad X270 that has a small 3 cell internally battery, and
a hot-swappable 9 cell battery that is used first. Battery 0 is at 100%,
but battery 1 is at 10%, you do not infact have 55% of your capacity

The new method calculates the percentage based on remaining capacity
out of total capacity, giving a much more accurate reading.

PR:		229818
Submitted by:	Keegan Drake H.P. <kd-dev@pm.me>
MFC after:	2 weeks
Sponsored by:	Klara Systems
Event:		Waterloo Hackathon 2019