Tomohiro Kusumi [Thu, 5 Jul 2018 05:44:02 +0000 (22:44 -0700)]
sys/vfs/hammer: Cleanup CRC functions
The inner cmp in nested `vol_version >= HAMMER_VOL_VERSION_SEVEN`
conditional in hammer_crc_test_xxx() mostly get optimized out by gcc,
so not much reason to have __hammer_crc_get_xxx() in case of retry
using old CRC.
Aaron LI [Thu, 5 Jul 2018 11:49:49 +0000 (19:49 +0800)]
libtelnet: Fix styles in sra.c
Fix various small style(9) issues in sra.c, making some of the logic
clearer.
Aaron LI [Thu, 5 Jul 2018 09:04:51 +0000 (17:04 +0800)]
telnet(1): Disable PAM for the rescue version
This avoids several PAM-related libraries when crunching telnet, and
reduces the size by about 200 KB.
Aaron LI [Thu, 5 Jul 2018 08:50:46 +0000 (16:50 +0800)]
libtelnet: Fix build with NOPAM
Also don't perform a check for "secure" tty for root logins when using
PAM; that is what we provide pam_security(8) for.
Taken-from: NetBSD (lib/libtelnet/sra.c, v1.6)
Aaron LI [Thu, 5 Jul 2018 08:47:29 +0000 (16:47 +0800)]
libtelnet: Some small updates to sra.c from NetBSD
* Define 'SMALL_LEN' and 'XSMALL_LEN' to replace the explicit numbers.
(also replaced the original PASS_SIZE)
* Use 'strlcpy()' and 'snprintf()' when appropriate.
* Clean some type casts.
* Some style(9) tweaks.
Sascha Wildner [Thu, 5 Jul 2018 06:16:36 +0000 (08:16 +0200)]
wcscoll.3: Remove leading '+' from copy/paste from a patch.
Sepherosa Ziehau [Wed, 4 Jul 2018 15:10:20 +0000 (23:10 +0800)]
objcache: Add stat counting # of exhaustion.
Use it to supress exhaustion warning; nuke no longer used 'exhausted'
field in objcache struct.
Sepherosa Ziehau [Wed, 4 Jul 2018 14:57:56 +0000 (22:57 +0800)]
objcache: Move rarely used but useful bits into their own structure.
Sepherosa Ziehau [Wed, 4 Jul 2018 14:17:05 +0000 (22:17 +0800)]
objcache: Use u_long for stats.
Add a new stat to count # of allocation.
Aaron LI [Wed, 4 Jul 2018 03:14:27 +0000 (11:14 +0800)]
initrd: Refactor Makefile and introduce quick{rescue,initrd}
Refactor the Makefile by splitting the original targets into smaller
ones.
Introduce targets quick{rescue,initrd} which skip the clean step.
Such similar behavior was achieved by passing '-DNO_CLEAN' to make.
(suggested-by: swildner)
Aaron LI [Sat, 30 Jun 2018 13:49:45 +0000 (21:49 +0800)]
initrd: Crunch grep/diff/telnet to rescue tools
NOTE: These tools depend on their corresponding internal libraries.
This adds about 1MB to the rescue tools.
Aaron LI [Sat, 30 Jun 2018 13:44:30 +0000 (21:44 +0800)]
mk/crunchgen: Support internal libraries
Add "CRUNCH_INTLIBS" and "CRUNCH_INTLIB_${P}" to support the building
and linkage of internal libraries.
Also properly handle the "obj" etc. targets for internal libraries.
Meanwhile, add "CRUNCH_LIB_${P}" and "CRUNCH_KEEP_${P}" to the comments.
Aaron LI [Sat, 30 Jun 2018 13:36:54 +0000 (21:36 +0800)]
crunchgen(1): Support building and linking internal libraries
Some programs (e.g., grep, diff, telnet) use internal libraries. In
order to crunch such programs, the corresponding internal libraries
must be built together with the programs and then are used to create
the <progname>.lo.
Extend the crunchgen(1)'s "special" command by adding the "lib_int"
keyword, which specifies the internal libraries to be used to create
the <progname>.lo.
The "libs_int" command is also implemented to support building the
needed internal libraries which will be statically linked to create
the final crunched executable.
Aaron LI [Sat, 30 Jun 2018 05:51:12 +0000 (13:51 +0800)]
crunchgen(1): Small updates and cleanups
* Use realpath(3) to replace the hack of using popen/pwd.
* Add function iseq() to replace strcmp().
* Use {} for make variables.
* Various style(9) tweaks.
Aaron LI [Wed, 27 Jun 2018 01:36:05 +0000 (09:36 +0800)]
initrd: Handle ${DESTDIR} when building rescue tools
When building rescue tools for a target system (e.g., create release
build), use tools (e.g., crunchide, crunchgen, cc), headers and libraries
from the target root (${DESTDIR}).
NOTE:
GCC is more tolerant (e.g., doesn't warn about unused variables) to
system headers than user headers, so we have to use "-isystem <inc_dir>"
instead of "-I<dir>", but the former (option syntax) causes difficulty
for <bsd.dep.mk> to filter the options to call mkdep(1). Therefore, we
use "--sysroot=${DESTDIR}" and it's simpler than specifying headers paths
with "-I<dir>" and library paths with "-L<dir>".
Meanwhile, improve the commands logic in Makefile, and set LC_ALL=C.
Aaron LI [Wed, 13 Jun 2018 01:42:47 +0000 (09:42 +0800)]
crunchgen(1): Add "linkopts" to specify linker options
Currently, the link options (e.g., library search directories) are
appended to the "libs" directive. Moreover, crunchgen discards
duplicates in such string lists.
For example, "-L /lib -L /usr/lib" becomes "-L /lib /usr/lib".
Add the "linkopts" directive to record the options for linking the
final crunched binary. This makes the "libs" directive cleaner,
and helps crunchgen to detect duplicates between "libs" and "libs_so".
Update the crunchgen.1 man page.
Update mk/bsd.crunchgen.mk against the new "linkopts" directive.
Clean up crunchgen.c a bit.
Aaron LI [Tue, 12 Jun 2018 01:33:17 +0000 (09:33 +0800)]
crunchgen(1): Improve the skeleton program
* Sort the name of crunched tools (for easier finding available tools).
* Do not print the name of itself in usage.
* Remove the unused crunched_here() function.
* Style updates (taken-from: NetBSD)
Aaron LI [Mon, 11 Jun 2018 12:58:36 +0000 (20:58 +0800)]
initrd: Add real scp(1)
scp(1) and ssh(1) are different tools, so the original "scp" alias
doesn't work actually. Add real scp(1) now.
Meanwhile, alias "ssh" to "slogin" as the same as the base system.
Remove the symbol keep statement as it's no longer needed.
Aaron LI [Sun, 10 Jun 2018 06:43:02 +0000 (14:43 +0800)]
initrd: Reorganize and crunch 70 more rescue tools
* Merge "rescue.sbin" into "rescue" to save space (avoid duplicated
libraries to be linked).
* Move "lvm" out of "rescue.libcrypto" since lvm(8) doesn't need libcrypto.
* Crunch 70 more tools (aliases not counted):
awk, basename, bc, bzip2, cap_mkdb, chflags, chown, cmp, cpio, cut,
date, dirname, dmsetup, dump, ed, env, expr, false, find, fstyp, gzip,
head, hexdump, hostname, id, join, kcollect, kdump, kenv, ktrace,
ldconfig, lsvfs, mount_devfs, nc, paste, patch, pax, pkill, printf,
pw, pwd_mkdb, rcorder, realpath, relpath, restore, rtsold, savecore,
sed, sort, stat, stty, tail, tar, tee, touch, tput, tr, traceroute,
traceroute6, true, truss, uname, uniq, varsym, vi, vipw, vnconfig, wc,
xz, yes
Highlights:
awk, bzip2, chown, cpio, find, gzip, nc, pw, sed, tar, vi, xz
Now the total number of crunched rescue tools more than 230 (including
aliases), but the total size remains almost the same :-)
* Improve the makefiles to be much cleaner.
Aaron LI [Mon, 11 Jun 2018 07:59:11 +0000 (15:59 +0800)]
libedit: No need of the bundled fgetln, vis and wcsdup
All these functions are provided in libc, so remove them from libedit
to avoid symbol conflict (e.g., crunching many tools).
Meanwhile, the libedit's config.h already have proper defines for the
above functions.
Sascha Wildner [Wed, 4 Jul 2018 08:21:55 +0000 (10:21 +0200)]
bsd-family-tree: Sync yet again with FreeBSD.
Aaron LI [Mon, 11 Jun 2018 05:29:31 +0000 (13:29 +0800)]
libssh: No need of compat vis.c as we support VIS_ALL
This helps avoid the vis.o symbol conflicts between libc and libssh.
Aaron LI [Mon, 11 Jun 2018 04:47:36 +0000 (12:47 +0800)]
vis(1): Add option -a to use VIS_ALL
Taken-from: OpenBSD
Aaron LI [Mon, 11 Jun 2018 04:44:07 +0000 (12:44 +0800)]
vis(3): Add VIS_ALL support
OpenSSH requires VIS_ALL and therefore uses the version bundled with
itself, but this causes the vis.o symbol conflicts between libc and
libssh when crunching fstyp(8) with ssh(1).
Bump __DragonFly_version.
Based-on: OpenBSD
Tomohiro Kusumi [Wed, 4 Jul 2018 04:39:34 +0000 (21:39 -0700)]
lib/libdmsg: Fix compile-time warning on Linux
warning: pointer targets in passing argument 2 of 'crypto_algos[0].init' differ in signedness
note: expected 'char *' but argument is of type 'uint8_t *'
Aaron LI [Tue, 3 Jul 2018 12:15:17 +0000 (20:15 +0800)]
Do not auto build rescue tools when ${DESTDIR} != "/"
When installworld to an alternative root (i.e., ${DESTDIR} != "/"),
do not automatically build the rescue tools.
This change won't affect the nrelease build, since it will explicitly
do 'make initrd'.
Suggested-by: swildner
Sepherosa Ziehau [Tue, 3 Jul 2018 14:52:30 +0000 (22:52 +0800)]
objcache: Fix comment indentation.
Sepherosa Ziehau [Tue, 3 Jul 2018 14:46:22 +0000 (22:46 +0800)]
objcache: Use __predict for predictable conditions.
Aaron LI [Tue, 3 Jul 2018 11:42:48 +0000 (19:42 +0800)]
<sys/gpt.h>: Fix a minor comment issue
Sepherosa Ziehau [Mon, 2 Jul 2018 15:55:41 +0000 (23:55 +0800)]
objcache: Fix comment style
Sepherosa Ziehau [Mon, 2 Jul 2018 15:05:07 +0000 (23:05 +0800)]
objcache: Constify object cache name.
Aaron LI [Sun, 1 Jul 2018 05:23:59 +0000 (13:23 +0800)]
Add the initrd.7 man page
This man page is partly based on the removed mkinitrd.8 man page
written by Alex Hornung.
Reviewed-by: Sascha Wildner
Sascha Wildner [Mon, 2 Jul 2018 07:35:56 +0000 (09:35 +0200)]
build.7: Fold CAVEATS into EXAMPLES. No need for an extra section.
Aaron LI [Fri, 15 Jun 2018 04:41:43 +0000 (12:41 +0800)]
Makefile.inc1: Remove the obsolete crunch from bootstrap tools
Since rescue build is now detached from buildworld, so crunchgen(1)
and crunchide(1) are no longer needed by the buildworld.
Aaron LI [Mon, 11 Jun 2018 04:35:33 +0000 (12:35 +0800)]
vi(1): Do not build iconv(3) support for the rescue version
The iconv(3) support requires dynamic library access, which is impossible for
the statically liked rescue version, so disable it.
Taken-from: FreeBSD
Aaron LI [Mon, 2 Jul 2018 01:30:20 +0000 (09:30 +0800)]
initrd: Fix parallel build
Add explicit target orders to oinit/Makefile, because such orders are
set in <bsd.subdir.mk> but not in <bsd.prog.mk>.
Since the make targets (e.g., depend, all, install, clean) are now
ordered, so remove 'clean cleandepend' from the same command as
'depend all install'.
Also allow defining the 'NO_CLEAN" variable to not clean previous builds.
Aaron LI [Mon, 2 Jul 2018 01:06:31 +0000 (09:06 +0800)]
mk/crunchgen: Fix parallel builds by ordering targets
Order the build targets (clean, cleandepend, cleandir, obj, objlink,
depend, all, install) to avoid the race in parallel building. This
change is based on <bsd.subdir.mk>. Meanwhile, add minor comments to
make the hierarchy clearer in <bsd.subdir.mk>.
Add the 'depend' target for the crunchdir's.
Aaron LI [Mon, 2 Jul 2018 01:27:29 +0000 (09:27 +0800)]
mk/crunchgen: Remove the unimplemented ${_+_}
The ${_+_} make variable is introduced by FreeBSD in revision 133369,
but we don't implement it, so remove it.
Aaron LI [Mon, 2 Jul 2018 02:01:19 +0000 (10:01 +0800)]
initrd: Add -lpthread for hammer2
The 'pthread' library was lost from commit
8692d13918892c3f474fc05d37f17fe125bb61bd when rebasing.
François Tigeot [Sun, 1 Jul 2018 20:52:31 +0000 (22:52 +0200)]
install(1): Add a -N option, improving NetBSD and FreeBSD compatibility
* -N is the standard NetBSD and FreeBSD install(1) option to use
alternative user and group databases
* DragonFly previously used -L to do the same thing. Keep this option
but warn to use -N instead.
Aaron LI [Sat, 9 Jun 2018 15:47:31 +0000 (23:47 +0800)]
initrd: Better check the created initrd before installing
Improve mkinitrd.sh to check /sbin/oinit, /bin/sh and /etc/rc on the
created initrd image to avoid installing a broken one.
Update to use "install" to install the created initrd image to ensure
user/group of root/wheel and mode of 444.
(The command to remove the temporary initrd image was committed in a
previous patch due to squashing.)
Aaron LI [Sat, 9 Jun 2018 15:39:49 +0000 (23:39 +0800)]
initrd: Crunch lvm(8) with sbin.libcrypto
Do not build lvm(8) alone since it can be crunched together with
sbin.libcrypto which contains cryptsetup(8). This also saves about
400KB space.
Tidy up the sbin.libcrypto Makefile in the meantime.
Aaron LI [Sat, 9 Jun 2018 15:36:43 +0000 (23:36 +0800)]
lvm(8): Do not build readline support for the rescue version
Make use of the RESCUE make variable to not build the readline support
for its rescue version (to be installed at /rescue).
Clean up the Makefile.
Aaron LI [Sat, 9 Jun 2018 15:35:32 +0000 (23:35 +0800)]
cryptsetup(8): Tidy up Makefile
Aaron LI [Sat, 9 Jun 2018 05:31:22 +0000 (13:31 +0800)]
mk/crunchgen: Remove the unused CRUNCH_BUILDTOOLS support/hack
The CRUNCH_BUILDTOOLS is commented out in initrd/bin/Makefile.
And we already use pregenerated headers for bin/sh in commit
cbb07feb2f78629297b21609f526fcec6e4ad8ee .
Aaron LI [Sat, 9 Jun 2018 12:06:05 +0000 (20:06 +0800)]
initrd: Tell make to use makefiles from the source tree
Otherwise, make uses makefiles from the system installed ones at
/usr/share/mk, therefore, the updated bsd.prog.mk has no effect until
being installed to the system.
Note that the variables assigned by make (i.e., make ... var=value)
will override the shell enviroment variables (e.g., var=value shell
command). So make sure the make variable assignments (e.g., DESTDIR)
are put after the make.
Also fix mkinitrd.sh to remove the used temporary initrd image file.
Aaron LI [Sat, 9 Jun 2018 11:22:14 +0000 (19:22 +0800)]
mk/prog: Support CRUNCH_CFLAGS for crunchgen's buildopts
Taken-from: FreeBSD
Aaron LI [Sat, 9 Jun 2018 05:42:51 +0000 (13:42 +0800)]
mk/crunchgen: Allow to use symlinks for crunched programs
Add support to create symlinks (i.e., soft links) instead of hard links
for the crunched programs.
If the variable CRUNCH_USE_SYMLINKS is set (default: not set), then use
symlinks instead of hard links.
Aaron LI [Sat, 9 Jun 2018 05:39:18 +0000 (13:39 +0800)]
mk/crunchgen: Do not hard code the path to the source directories
Introduce the variable CRUNCH_PATH_${D} to specify the path to the
base source directory ${D}.
Update the description and initrd makefiles accordingly.
Sascha Wildner [Sat, 30 Jun 2018 18:15:41 +0000 (20:15 +0200)]
openpam: Since there is no pam(8) manual page, refer to pam(3).
Sascha Wildner [Sat, 30 Jun 2018 17:54:49 +0000 (19:54 +0200)]
openpam: Revert a useless local comment change for better merging.
Antonio Huete Jimenez [Sat, 30 Jun 2018 19:36:53 +0000 (19:36 +0000)]
vkernel - Do not re-initialize vcons
- Commit
fb3cf125d1 introduced a cninit() call in configure_final()
and vcons should properly handle multiple initialization.
- This fixes the vkernel boot problem in current master.
Sascha Wildner [Sat, 30 Jun 2018 06:43:53 +0000 (08:43 +0200)]
condvar.9: Add MLINKS for recently added functions.
Eitan Adler [Fri, 29 Jun 2018 23:53:21 +0000 (23:53 +0000)]
bsd-family-tree: Add dfly 5.2.2; fbsd 11.2
Tomohiro Kusumi [Sat, 30 Jun 2018 00:19:39 +0000 (17:19 -0700)]
sys/kern: Make condvar(9) support mutex(9)
Sascha Wildner [Fri, 29 Jun 2018 21:23:50 +0000 (23:23 +0200)]
Sync ACPICA with Intel's version
20180629.
* Fix regressions in acpiexec(8) and iasl(8).
* Add a warning to iasl(8) on attempted use of Unload().
* Add some ASL extensions that make various arguments optional.
For detailed list, please see sys/contrib/dev/acpica/changes.txt.
Sascha Wildner [Wed, 27 Jun 2018 12:19:28 +0000 (14:19 +0200)]
Remove old mkinitrd config.
Sascha Wildner [Wed, 27 Jun 2018 09:16:52 +0000 (11:16 +0200)]
Remove the old 'most' and 'installmost' targets (they are broken too).
Aaron LI [Wed, 27 Jun 2018 04:59:19 +0000 (12:59 +0800)]
rmuser(8): Use getopts for commandline options
Improve the option logic a bit and fix whitespaces.
Sascha Wildner [Tue, 26 Jun 2018 18:24:19 +0000 (20:24 +0200)]
Update the pciconf(8) database.
June 25, 2018 snapshot from https://pci-ids.ucw.cz
Sascha Wildner [Tue, 26 Jun 2018 18:22:36 +0000 (20:22 +0200)]
Makefile_upgrade.inc: Sort initrd stuff a bit and add a forgotten file.
Aaron LI [Tue, 26 Jun 2018 11:38:17 +0000 (19:38 +0800)]
updatedb(8): Be simple and search from "/" by default
This reverts the behavior change made in commit
6877ea2d2f7caf9b13202f2524abf3b3cf815b45.
That change causes HAMMER PFSes being ignored from indexing, because the
PFSes, which are null-mounted though, behave like different devices and
thus are ignored by "find -x" (the "-x" option prevents find entering
directories with a different device number).
Workaround or properly deal with the PFSes would be too complex, which I
don't think it's a good idea, therefore revert to the original behavior.
If one person really wants to ignore the root filesystem but have other
directories indexed, he/she should know to configure the search paths.
Meanwhile, tweak comments and fix whitespaces.
Aaron LI [Tue, 26 Jun 2018 01:56:36 +0000 (09:56 +0800)]
lsvfs(1): Remove an unused define; Avoid a type cast
Aaron LI [Tue, 26 Jun 2018 01:53:02 +0000 (09:53 +0800)]
mount(8): Use tab for indentation
Aaron LI [Thu, 11 Jan 2018 11:47:40 +0000 (19:47 +0800)]
dloader: Remove obsolete "linux_load" from config files
Based on the patch submitted by mazocomp in bug #3115.
Tomohiro Kusumi [Sun, 24 Jun 2018 12:27:01 +0000 (05:27 -0700)]
sys/vfs/autofs: Install vnops after root dir is initialized
Tomohiro Kusumi [Sun, 24 Jun 2018 12:52:26 +0000 (05:52 -0700)]
sys/vfs/autofs: Don't dereference vnode pointer if allocation failed
Tomohiro Kusumi [Sun, 24 Jun 2018 12:19:47 +0000 (05:19 -0700)]
sys/vfs/autofs: Simplify vfs_root()
The root dir is created on mount time, and must exist by the time
vfs_root() is called.
Eitan Adler [Sun, 24 Jun 2018 07:58:54 +0000 (07:58 +0000)]
various: remove incorrect comments
These appear to have come from the initial import and never updated.
Sascha Wildner [Fri, 22 Jun 2018 06:19:13 +0000 (08:19 +0200)]
kernel: Remove various definitions related to unimplemented ioctls.
These are: DIOCSMBR, CONS_SSAVER, CONS_GSAVER, BT848GCLIP, METEORCAPFRM,
METEORGETGEO, METEORSCHCV, METEORGCHCV, METEORSBT254,
METEORGBT254, METEORSHWS, METEORGHWS, METEORSVWS, METEORGVWS,
METEORSTS, METEORGTS
Thanks to zrj for testing with a dports bulk.
While here, clean up <sys/diskmbr.h> a bit:
* Use standard types.
* Add a CTASSERT() defintion.
Sascha Wildner [Thu, 21 Jun 2018 12:18:07 +0000 (14:18 +0200)]
kernel: Remove the definition of the unimplemented FD_DEBUG ioctl.
Remove fdcontrol(8)'s bogus -d option. Also remove -s because it is now
the only option and also default.
Finally, do some style(9) cleanups in fdcontrol(8).
Thanks to zrj for testing with a dports bulk.
Sascha Wildner [Wed, 20 Jun 2018 17:13:48 +0000 (19:13 +0200)]
kernel: Remove some old 4.3BSD era ioctls.
Not all of them were implemented even.
Bump __DragonFly_version, just in case.
Thanks to zrj for testing with a dports bulk.
Matthew Dillon [Wed, 20 Jun 2018 06:33:28 +0000 (23:33 -0700)]
hammer2 - Check duplicate H2 partitions during hammer2 cleanup
* hammer2 cleanup operates on the partition the mount resides on,
so if multiple hammer2 snapshots from the same partition are mounted
we do not need to run it for each mount.
François Tigeot [Tue, 19 Jun 2018 21:13:09 +0000 (23:13 +0200)]
drm/i915: Add a module_init() directive
Sascha Wildner [Tue, 19 Jun 2018 19:25:39 +0000 (21:25 +0200)]
diffutils: Update README.DELETED.
Sascha Wildner [Tue, 19 Jun 2018 19:24:53 +0000 (21:24 +0200)]
Merge branch 'vendor/DIFFUTILS'
Sascha Wildner [Tue, 19 Jun 2018 19:21:34 +0000 (21:21 +0200)]
diffutils: Remove some unneeded files from the vendor branch.
Sascha Wildner [Tue, 19 Jun 2018 18:49:12 +0000 (20:49 +0200)]
diffutils: Reconfigure and revert some obsolete local changes.
Our wcwidth() is by now capable of handling UTF-8 so revert the
changes from
d76863bd1dbf9c1e4c04a977e3a7271a23cdb718.
While here, remove two more files from libdiffutils' Makefile.
Sepherosa Ziehau [Tue, 19 Jun 2018 13:16:20 +0000 (21:16 +0800)]
x86_64: Eanble X2APIC if it is available.
Eitan Adler [Sun, 17 Jun 2018 18:44:07 +0000 (18:44 +0000)]
liby: build with WARNS=6; style
- add header rather than include local details
- add const
- remove extraneous void cast
- See discussion on FreeBSD r335270 for motivation for copyright
details.
François Tigeot [Sun, 17 Jun 2018 19:29:59 +0000 (21:29 +0200)]
drm/i915: iic(4) is not used anymore
Tomohiro Kusumi [Sat, 16 Jun 2018 15:40:14 +0000 (08:40 -0700)]
sbin/newfs_hammer2: Explicitly include <sys/ioctl.h>
generally helps become more portable on Linux and other platforms.
Tomohiro Kusumi [Sat, 16 Jun 2018 15:39:48 +0000 (08:39 -0700)]
sbin/hammer: Explicitly include <sys/ioctl.h>
generally helps become more portable on Linux and other platforms.
Tomohiro Kusumi [Sat, 16 Jun 2018 15:37:26 +0000 (08:37 -0700)]
usr.bin/undo: Explicitly include <sys/ioctl.h>
generally helps become more portable on Linux and other platforms.
Matthew Dillon [Fri, 15 Jun 2018 19:33:03 +0000 (12:33 -0700)]
Kernel - Fix getvfsstat()/getfsstat() count w/ NULL buffer
* Return the correct count when a NULL buffer is passed in,
instead of a higher count.
Reported-by: tdfbsd
Matthew Dillon [Fri, 15 Jun 2018 17:24:40 +0000 (10:24 -0700)]
initrd - Add hammer2, fix obj dir
* Include the hammer2 binary in the initrd image.
* Properly make the obj hierarchy so make initrd does not
put temporary object files in /usr/src.
Matthew Dillon [Tue, 12 Jun 2018 17:18:41 +0000 (10:18 -0700)]
Kernel - Enable NX for PROT_READ by default
* We've had NX support for a while, requiring a loader.conf tunable to
enable (machdep.pmap_nx_enable).
* Enhance the feature to support two modes. Mode 1 allows NX support
for PROT_READ mappings, Mode 2 allows NX support for both PROT_READ
and PROT_WRITE mappings.
Third party code should work universally with Mode 1, but apparently
quite a bit still does not work with mode 2.
* Change the default from disabled to Mode 1 in master, lets see if
anyone has any problems with it.
Suggested-by: Theo de Raadt
Tomohiro Kusumi [Tue, 12 Jun 2018 12:25:56 +0000 (05:25 -0700)]
sys/vfs/autofs: Change autofs_softc::sc_lock to use mutex(9)
Sascha Wildner [Tue, 12 Jun 2018 07:11:16 +0000 (09:11 +0200)]
kernel/radeon: Check the right variable in an if ().
This is Linux'
3a61b527b4e1f285d21b6e9e623dc45cf8bb391f.
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/3102>
Sascha Wildner [Tue, 12 Jun 2018 07:04:36 +0000 (09:04 +0200)]
kernel/bktr: Fix variable types.
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/3103>
Taken-from: FreeBSD (r249798)
Matthew Dillon [Mon, 11 Jun 2018 21:30:40 +0000 (14:30 -0700)]
Kernel - Additional cpu bug hardening part 2/2
* Due to speculative instruction execution, the kernel may
speculatively execute instructions using data from registers that
still contain userland-controlled content.
Reduce the chance of this situation arising by proactively clearing
all user registers after saving them for syscalls, exceptions, and
interrupts. In addition, for system calls, zero-out any
unrestored registers on-return to avoid leaking kernel data back to
userland.
* This was discussed over the last few months in various
OS groups and I've decided to implement it. After the FP
debacle, it is prudent to also give general registers similar
protections.
Matthew Dillon [Mon, 11 Jun 2018 20:43:22 +0000 (13:43 -0700)]
Kernel - Additional cpu bug hardening part 1/2
* OpenBSD recently made a commit that scraps the use of delayed FP
state saving due to a rumor that the content of FP registers owned
by another process can be speculatively detected when they are
present for the current process, even when the TS bit is used to
force a DNA trap.
This rumor has been circulating for a while. OpenBSD felt that the
lack of responsiveness from Intel forced their hand. Since they've
gone ahead and pushed a fix for this potential problem, we are
going to as well.
* DragonFlyBSD already synchronously saves FP state on switch-out.
However, it only cleans the state up afterwords by calling fninit
and this isn't enough to actually erase the content in the %xmm
registers. We want to continue to use delayed FP state restores
because it saves a considerable amount of switching time when we do
not have to do a FP restore.
Most programs touch the FP registers at startup due to rtld linking,
and more and more programs use the %xmm registers as general purpose
registers. OpenBSD's solution of always proactively saving and
restoring FP state is a reasonable one. DragonFlyBSD is going to
take a slightly different tact in order to try to retain more optimal
switching behavior when the FP unit is not in continuous use.
* Our first fix is to issue a FP restore on dummy state after our
FP save to guarantee that all FP registers are zerod after FP state
is saved. This allows us to continue to support delayed FP state
loads with zero chance of leakage between processes.
* Our second fix is to add a heuristic which allows the kernel to
detect when the FP unit is being used seriously (verses just during
program startup).
We have added a sysctl machdep.npx_fpu_heuristic heuristic for this
purpose which defaults to the value 32. Values can be:
0 - Proactive FPU state loading disabled (old behavior retained).
Note that the first fix remains active, the FP register state
is still cleared after saving so no leakage can occur. All
processes will take a DNA trap after a thread switch when they
access the FP state.
1 - Proactive FPU state loading is enabled at all times for a thread
after the first FP access made by that thread. Upon returning
from a thread switch, the FPU state will already be ready to go
and a DNA trap will not occur.
N - Proactive FPU state loading enabled for N context switches, then
disabled. The next DNA fault after disablement then re-enables
proactive loading for the next N context switches.
Default value is 32. This ensures that program startup can use
the FP unit but integer-centric programs which don't afterwords
will not incur the FP switching overhead (for either switch-away
or switch-back).
Matthew Dillon [Mon, 11 Jun 2018 20:21:53 +0000 (13:21 -0700)]
kernel - Improve ACPI compatibility with older BIOSes
* ACPI alignment field in ACPI resources can sometimes be 0, leading
to passing 0 for 'align' to acpi_res_set_iorange() which panics the
box with a division-by-zero fault.
* Relax handling of this argument by setting it to 1 if it is found
to be 0.
* Fixes DFly panics with certain older BIOSes.
Reported-by: myu
Tomohiro Kusumi [Mon, 11 Jun 2018 15:47:27 +0000 (08:47 -0700)]
sys/vfs/autofs: Add Copyright
Tomohiro Kusumi [Mon, 11 Jun 2018 15:47:08 +0000 (08:47 -0700)]
sys/vfs/autofs: #if0 unsupported vfs.autofs.mount_on_stat
Keep the code since this should be implemented.
Sascha Wildner [Sun, 10 Jun 2018 19:31:17 +0000 (21:31 +0200)]
bge.4: Fix a typo.
Tomohiro Kusumi [Sun, 10 Jun 2018 18:46:33 +0000 (11:46 -0700)]
sys/vfs/autofs: Add VFCF_MPSAFE
Tomohiro Kusumi [Sun, 10 Jun 2018 18:41:59 +0000 (11:41 -0700)]
sys/vfs/autofs: Drop VFCF_NETWORK
VFCF_NETWORK came from FreeBSD implementation, but autofs really has
nothing to do with network.
Tomohiro Kusumi [Sun, 10 Jun 2018 16:57:05 +0000 (09:57 -0700)]
sys/vfs/autofs: Drop unneeded bzero on node/request ctor
Sascha Wildner [Sun, 10 Jun 2018 14:52:39 +0000 (16:52 +0200)]
mount_msdos.8: Fix typo