14 months agolibc: Remove an unneeded .PATH.
Sascha Wildner [Sun, 30 Jun 2019 23:29:08 +0000 (01:29 +0200)]
libc: Remove an unneeded .PATH.

14 months agoinit(8): Put utmp/wtmp specific code under SUPPORT_UTMP.
Sascha Wildner [Sun, 30 Jun 2019 12:44:37 +0000 (14:44 +0200)]
init(8): Put utmp/wtmp specific code under SUPPORT_UTMP.

14 months agodrm: Start using flush_delayed_work()
François Tigeot [Sun, 30 Jun 2019 12:41:52 +0000 (14:41 +0200)]
drm: Start using flush_delayed_work()

14 months ago<sys/conf.h>: Move SPECNAMELEN to <sys/param.h>.
Sascha Wildner [Sun, 30 Jun 2019 10:25:56 +0000 (12:25 +0200)]
<sys/conf.h>: Move SPECNAMELEN to <sys/param.h>.

Some dports and also stuff in our tree depend on it being public, which
all compensate with local defines for now, some of them not having been
adjusted when SPECNAMELEN was bumped from 15 to 63, such as in
sysutils/{mfi,mpt}d. Patches for these ports have been submitted.

They all could have got at it by defining _KERNEL_STRUCTURES before
including <sys/conf.h> but that didn't catch up it seems.

It's public in <sys/param.h> in FreeBSD and I see no reason why we
shouldn't follow.

Reported-by: aly
14 months ago<sys/signal.h>: Adjust a number of struct member types to POSIX.
Sascha Wildner [Sat, 29 Jun 2019 19:08:15 +0000 (21:08 +0200)]
<sys/signal.h>: Adjust a number of struct member types to POSIX.

* siginfo_t's si_pid and si_uid, and stack_t's ss_size. For all of
  these, there are no changes in type sizes and signs.

* Also define the pid_t, uid_t and size_t types, as required by
  the standard.

14 months agoshm_open.3: Some miscellaneous cleanup.
Sascha Wildner [Sat, 29 Jun 2019 09:16:18 +0000 (11:16 +0200)]
shm_open.3: Some miscellaneous cleanup.

* Bump .Dd

* Start sentences on new lines.

* Put DragonFly specific implementation details into IMPLEMENTATION NOTES.

14 months agoRemove .Ud in some manual pages.
Sascha Wildner [Sat, 29 Jun 2019 06:41:03 +0000 (08:41 +0200)]
Remove .Ud in some manual pages.

14 months agoisa.4: Remove obsolete reference.
Sascha Wildner [Sat, 29 Jun 2019 02:03:05 +0000 (04:03 +0200)]
isa.4: Remove obsolete reference.

14 months agommap.2: Improve markup.
Sascha Wildner [Sat, 29 Jun 2019 02:02:17 +0000 (04:02 +0200)]
mmap.2: Improve markup.

14 months agodrm/linux: Add flush_delayed_work()
François Tigeot [Sat, 29 Jun 2019 05:06:10 +0000 (07:06 +0200)]
drm/linux: Add flush_delayed_work()

14 months agodrm/linux: Fix a NULL pointer dereference in signal_pending_state()
François Tigeot [Sat, 29 Jun 2019 05:00:40 +0000 (07:00 +0200)]
drm/linux: Fix a NULL pointer dereference in signal_pending_state()

Not all kernel threads have an associated userland lwp.

Reported-by: dillon
14 months agokernel - VM rework part 21 - Fix excessive paging to swap bug
Matthew Dillon [Fri, 28 Jun 2019 22:35:18 +0000 (15:35 -0700)]
kernel - VM rework part 21 - Fix excessive paging to swap bug

* Fix a bug where pages on the inactive queue would sometimes not
  get moved to the cache queue after being paged out, and also not
  get its [M]odify bit cleared, causing the pageout demon to repeatedly
  write numerous pages out without making progress.

  This may require some additional work to avoid a double-pageout
  condition, but it fixes the main issue.

* Returns us back to the 'feel' of paging prior to the VM rework,
  and should reduce stuttering in chrome and other paging-related lag
  users might experience.

  The bug was introduced due to differences in how the pmap code
  handle vm_page_protect(..., VM_PROT_READ).

14 months agodocs - Update shm_open(3) manual page
Matthew Dillon [Fri, 28 Jun 2019 16:22:39 +0000 (09:22 -0700)]
docs - Update shm_open(3) manual page

* Update to detail recent work.

Submitted-by: Lassi Kortela
14 months agoahci - Enforce 10-second poll of chipset
Matthew Dillon [Fri, 28 Jun 2019 05:54:44 +0000 (22:54 -0700)]
ahci - Enforce 10-second poll of chipset

* Enforce a poll every 10-seconds when the chipset is idle to try to
  catch any potential lost interrupts.  We have observed a number of
  'impossible' timeouts where the chipset registers indicate command
  completion, which should only be possible if a completion interrupt
  is lost.

14 months agokernel - Add TPS balancing mode to scsi_da (da* disks)
Matthew Dillon [Fri, 28 Jun 2019 04:58:49 +0000 (21:58 -0700)]
kernel - Add TPS balancing mode to scsi_da (da* disks)

* This feature brings write tps down to match read tps when both are
  pending.  Normally both read and write I/Os get at least a few tags,
  but because write I/O is buffered by devices, even giving it one tag
  can complete destroy read performance.

  To accomplish this the feature monitors approximate TPS using a counter
  with exponential decay and will temporarily sets write openings in the
  device queue to zero.

* SSDs usually do a better job on their own, but this feature won't hurt
  so we do not distinguish between HDDs and SSDs.

* New sysctls for this feature (feature is enabled by default):

  kern.cam.da.balance_enable 1 (0=disable, 1=enable)
  kern.cam.da.balance_ratio 100 (read:write ratio, 1:1 is 100)
  kern.cam.da.balance_debug 0 (log to console each second)

  You can adjust the read:write tps ratio as desired.  For example,
  the value 200 will adjust the ratio to 2:1.

15 months agoTest commit.
Sascha Wildner [Thu, 27 Jun 2019 09:48:37 +0000 (11:48 +0200)]
Test commit.

15 months agoftpd.8: Adjust for recent opie(4) removal.
Sascha Wildner [Thu, 27 Jun 2019 09:40:50 +0000 (11:40 +0200)]
ftpd.8: Adjust for recent opie(4) removal.

15 months agodrm/radeon: Switch to Linux i2c APIs
François Tigeot [Wed, 26 Jun 2019 21:12:18 +0000 (23:12 +0200)]
drm/radeon: Switch to Linux i2c APIs

* Enable radeon.hw_i2c by default

* Sync some code with Linux 3.19.8 in passing

15 months agokernel/genassym: Remove some unneeded assyms.
Sascha Wildner [Wed, 26 Jun 2019 15:40:35 +0000 (17:40 +0200)]
kernel/genassym: Remove some unneeded assyms.

15 months agokernel - Change tcp keepalive options from ms to seconds (DISRUPTIVE) (2)
Matthew Dillon [Wed, 26 Jun 2019 04:48:20 +0000 (21:48 -0700)]
kernel - Change tcp keepalive options from ms to seconds (DISRUPTIVE) (2)

* Refactor the code slightly to adopt the same limits and behavior
  as linux.  Instead of capping out we return EINVAL on any out-of-
  bound value.

* Also note that my history was wrong.  Sephe actually implemented
  these options, not me, and it was in 2011 (8 years ago, not 15+).
  So much for my vague memory!  At the time other operating used wildly
  different metrics, and we chose to use milliseconds.  But in the
  intervening years it looks like the main systems have adopted a
  1-second interval.

  In changing our parameters to match, we avoid a lot of pain when
  porting third party applications that use it, particularly chrome.
  But also a few others.

  If we need sub-second parameters in the future we will implement
  new option keywords for it.

15 months agobuild - Bump __DragonFly_version to 500702 in master
Matthew Dillon [Wed, 26 Jun 2019 02:03:27 +0000 (19:03 -0700)]
build - Bump __DragonFly_version to 500702 in master

* Bump __DragonFly_version to 500702 for the TCP_KEEP* socket
  options API change from milliseconds to seconds.

  This change corrected a 15+ year old mistake.  Most operating
  systems pass these parameters in seconds, but thinking a finer-grain
  would be grand (long ago), I changed the parameters to milliseconds.
  And we've been paying for it ever since.

15 months agoman - Adjust tcp(4) for API change
Matthew Dillon [Tue, 25 Jun 2019 17:38:18 +0000 (10:38 -0700)]
man - Adjust tcp(4) for API change

* Adjust tcp(4) for the TCP_KEEP* API change.

15 months agokernel - Change tcp keepalive options from ms to seconds (DISRUPTIVE)
Matthew Dillon [Tue, 25 Jun 2019 17:33:22 +0000 (10:33 -0700)]
kernel - Change tcp keepalive options from ms to seconds (DISRUPTIVE)

  milliseconds to seconds, matching most other operating system

  This is after the Nth time we've hit problems porting applications.

* I've decided to make this change, even though it is disruptive
  (a significant API change).  It shouldn't effect most use cases
  and it fixes things like chromium without us having to continuously
  patch the chromium sources.

* Fixes numerous too-fast-a-timeout issues with chrome.

15 months agokernel - Increase elf limits
Matthew Dillon [Tue, 25 Jun 2019 17:30:56 +0000 (10:30 -0700)]
kernel - Increase elf limits

* Increase the MAXTSIZ default from 256MB to 32GB.  Certain debug
  executables, such as chromium, exceeded the original limit.

* Leave the default data limit at 128MB for the moment, but it will
  be increased as soon as we work out low-memory hinting vs heap

15 months agodhcpcd.conf.5/swapon.8: Fix some typos.
Sascha Wildner [Mon, 24 Jun 2019 11:05:31 +0000 (13:05 +0200)]
dhcpcd.conf.5/swapon.8: Fix some typos.

15 months agodhcpcd.8/tcplay.8: Whitespace fixes.
Sascha Wildner [Mon, 24 Jun 2019 10:46:54 +0000 (12:46 +0200)]
dhcpcd.8/tcplay.8: Whitespace fixes.

15 months agoAdd some missing whitespace/linefeeds in a few manpages.
Sascha Wildner [Mon, 24 Jun 2019 09:21:25 +0000 (11:21 +0200)]
Add some missing whitespace/linefeeds in a few manpages.

15 months agobsd-family-tree: Sync with FreeBSD (add DragonFly 5.6.1).
Sascha Wildner [Mon, 24 Jun 2019 08:55:05 +0000 (10:55 +0200)]
bsd-family-tree: Sync with FreeBSD (add DragonFly 5.6.1).

15 months agobuild - Allow buildworld to run from a 4.9 base
Matthew Dillon [Mon, 24 Jun 2019 01:40:51 +0000 (18:40 -0700)]
build - Allow buildworld to run from a 4.9 base

* Make an adjustment that allows the latest buildworld to
  be run on an old 4.9 system base.

* Generally speaking mkmagic should be using the (generated) magic.h
  from the build anyway, and not the one in /usr/include which might
  be incompatible.

15 months agokernel - Fix pmap placemarker timing race
Matthew Dillon [Sun, 23 Jun 2019 15:24:24 +0000 (08:24 -0700)]
kernel - Fix pmap placemarker timing race

* Fix a timing race that could cause a thread to get stuck in
  "pvplw" indefinitely.  The timing window is very short and the
  race is fairly difficult to reproduce.

* For this race to occur, more than one interaction must take
  place on other cpus against the placemarker being waited on
  by pv_placemarker_wait().  It takes multiple interactions for
  the WAKEUP bit to be lost.

  The first interaction can clear the WAKEUP bit and issue a
  wakeup() before we manage to interlock.  The second interaction
  can then reserve the placemarker so our conditional fails and
  we tsleep().  The result is that we block forever.

  pv_placemarker_wait(pmap_t pmap, vm_pindex_t *pmark)
          if (*pmark != PM_NOPLACEMARK) {
                  atomic_set_long(pmark, PM_PLACEMARK_WAKEUP);
                  tsleep_interlock(pmark, 0);
                  if (*pmark != PM_NOPLACEMARK)
                          tsleep(pmark, PINTERLOCKED, "pvplw", 0);

  Just moving the interlock to before setting the flag is not
  sufficient due to cuteness on my part in overloading the WAKEUP
  bit on top of NOPLACEMARK (NOPLACEMARK is '-1').

* The solution is to both properly order the interlock AND use
  a cmpset loop to prevent accidently setting the WAKEUP bit on
  a marker that has already been released.

mark = *pmark;
        while (mark != PM_NOPLACEMARK) {
                tsleep_interlock(pmark, 0);
                if (atomic_fcmpset_long(pmark, &mark,
                                       mark | PM_PLACEMARK_WAKEUP)) {
                        tsleep(pmark, PINTERLOCKED, "pvplw", 0);

Reported-by: tuxillo
15 months agoFix two typos in manual pages.
Sascha Wildner [Sat, 22 Jun 2019 19:25:35 +0000 (21:25 +0200)]
Fix two typos in manual pages.

15 months agoaxe.4: Add back rgephy(4) reference.
Sascha Wildner [Sat, 22 Jun 2019 07:08:12 +0000 (09:08 +0200)]
axe.4: Add back rgephy(4) reference.

15 months agokernel - Move trap_is_smap() test outside of DDB condition
Matthew Dillon [Sat, 22 Jun 2019 00:47:31 +0000 (17:47 -0700)]
kernel - Move trap_is_smap() test outside of DDB condition

* The trap_is_smap() test, and generally the code handling improper
  user mode accesses from kernel mode, must be placed outside the
  DDB conditional.

15 months agorc.d: Use stop_boot() function to really stop boot
Aaron LI [Fri, 21 Jun 2019 16:07:06 +0000 (00:07 +0800)]
rc.d: Use stop_boot() function to really stop boot

The rc.d scripts are executed in sub-shells, so the original 'exit'
would not stop the boot process.  Use the stop_boot() function in
rc.d/mountcritlocal and rc.d/root to really stop the boot process.

Obtained-from: FreeBSD

15 months agorc: Move stop_boot() from rc.d/fsck to rc.subr and improve it
Aaron LI [Fri, 21 Jun 2019 15:59:37 +0000 (23:59 +0800)]
rc: Move stop_boot() from rc.d/fsck to rc.subr and improve it

Move the stop_boot() function from rc.d/fsck to rc.subr, since we will
use it in other rc.d scripts.  This follows what FreeBSD does.

Improve the stop_boot() function by bringing in the FreeBSD's version.

Minor cleanups.

15 months agokernel: Add NO_SYSCTL_DESCR option to exclude sysctl descriptions.
Sascha Wildner [Fri, 21 Jun 2019 06:20:02 +0000 (08:20 +0200)]
kernel: Add NO_SYSCTL_DESCR option to exclude sysctl descriptions.

<sys/sysctl.h> has the code for it already, brought in in commit
8e82189d49ed5be4533e1a3d2609460e8aae81bf, but the option was not

While here, remove some old no-op IPSec related options.

15 months agokernel/acpi_ec: Document sysctls better.
Sascha Wildner [Fri, 21 Jun 2019 05:34:24 +0000 (07:34 +0200)]
kernel/acpi_ec: Document sysctls better.

15 months agokernel: Use correct variable for debug.acpi.ec.timeout_backoff tunable.
Sascha Wildner [Thu, 20 Jun 2019 21:29:49 +0000 (23:29 +0200)]
kernel: Use correct variable for debug.acpi.ec.timeout_backoff tunable.

15 months agodrm/radeon: Upgrade to Linux 3.19.8
François Tigeot [Thu, 20 Jun 2019 18:42:23 +0000 (20:42 +0200)]
drm/radeon: Upgrade to Linux 3.19.8

* Various bug fixes and hardware bug workarounds

* Fan control improvements, especially on Southern Islands (SI)
  and Sea Islands (CI) GPUs

* Performance improvements due to better memory management

15 months agobsd-family-tree: Sync with FreeBSD (add NetBSD 8.1 and DragonFly 5.6).
Sascha Wildner [Thu, 20 Jun 2019 17:39:01 +0000 (19:39 +0200)]
bsd-family-tree: Sync with FreeBSD (add NetBSD 8.1 and DragonFly 5.6).

Also some unrelated cleanup in the layout.

15 months agoinitrd: cd to '/' before umounting '/var'
Aaron LI [Thu, 20 Jun 2019 13:44:11 +0000 (21:44 +0800)]
initrd: cd to '/' before umounting '/var'

The HOME in initrd is set to '/var/home', thus umounting '/var' may
fail due to device busy, although this failure would not block the boot

15 months agokernel: Add whitespace between fw_stub.awk flags and their arguments.
Sascha Wildner [Wed, 19 Jun 2019 15:51:36 +0000 (17:51 +0200)]
kernel: Add whitespace between fw_stub.awk flags and their arguments.

It's more readable in the log file.

15 months agofw_stub.awk: correct usage message
Jan Sucan [Mon, 5 Jun 2017 16:16:59 +0000 (16:16 +0000)]
fw_stub.awk: correct usage message

* Add information about optional version and parent for the firmware

* Show that the -m option is mandatory.

15 months agofw_stub.awk: fix processing of values for the options when separated by space
Jan Sucan [Mon, 5 Jun 2017 15:54:09 +0000 (15:54 +0000)]
fw_stub.awk: fix processing of values for the options when separated by space

15 months agokernel - Change fill_kinfo_lwp() and fix top
Matthew Dillon [Wed, 19 Jun 2019 05:59:07 +0000 (22:59 -0700)]
kernel - Change fill_kinfo_lwp() and fix top

* Change fill_kinfo_lwp(), an internal function used by kern_proc.c
  and libkvm, to aggregate lwp data instead of replace it.

  Note that fill_kinfo_proc() will zero the lwp sub-structure and is
  already typically called before zero or more fill_kinfo_lwp() calls,
  so the new aggregation essentially just works even though the API is
  a bit different.

  In addition, when getprocs is told to aggregate lwps the tid field
  will be set to -1 since it is not applicable in the aggregation case.

* 'top' will now properly aggregate the threads belonging to a process
  when thread mode 'H' is not in effect.

* Also allow top to display cpu percentages above 100%, since in the
  aggregation case the sum of threads can easily exceed 100% of one core.

Requested-by: hsw
15 months agoopenpam: Implement blacklist.
zrj [Tue, 18 Jun 2019 17:48:20 +0000 (20:48 +0300)]
openpam: Implement blacklist.

Mainly to avoid issues for users who might miss what `make upgrade`
warns about. Currently only includes previously active OPIE modules.
Do not include pam_cleartext_pass_ok.so it should not be relevant for
any DragonFly installations by now.

15 months agosshd - Change options defaults to be more secure
Matthew Dillon [Tue, 18 Jun 2019 18:54:08 +0000 (11:54 -0700)]
sshd - Change options defaults to be more secure

* Change the password_authentication default to 0.  Passworded logins
  are NOT considered secure by default in DragonFly.

* Put in a succinct comment for both the pam default (0) and the
  password authentication default (also 0) to try to prevent them
  from being improper changed back to 1 accidently.

15 months agoRevert "sshd(8): Add USE_PAM handling defaults."
Matthew Dillon [Tue, 18 Jun 2019 18:49:32 +0000 (11:49 -0700)]
Revert "sshd(8): Add USE_PAM handling defaults."

We really did not intend to turn on passworded logins or pam by default.
They need to be turned off by default so the sshd_config is secure by
default.  PAM generally allows passworded logins which we do not consider
secure by default.

This reverts commit 19523637df5f6eb42b41f3dee51bd5d7c25d2219.

15 months agogpt(8): Explicitly avoid out of range in searching MBR partitions
Aaron LI [Tue, 18 Jun 2019 16:30:40 +0000 (00:30 +0800)]
gpt(8): Explicitly avoid out of range in searching MBR partitions

Avoid running off the end of an array in case thing we're looking for
isn't there.  This is probably impossible, but not obvious.

Obtained-from: NetBSD
Bug-report: #3015

15 months agojail.8: Document sysctl entries jail.{allow_raw_sockets,chflags_allowed}
Aaron LI [Tue, 18 Jun 2019 16:21:11 +0000 (00:21 +0800)]
jail.8: Document sysctl entries jail.{allow_raw_sockets,chflags_allowed}

Meanwhile, update the description of "jail.chflags_allowed" in the code.

Obtained-from: FreeBSD
Bug-report: #2935

15 months agojail: Implement read-only sysctl "jail.jailed"
Aaron LI [Mon, 17 Jun 2019 14:05:41 +0000 (22:05 +0800)]
jail: Implement read-only sysctl "jail.jailed"

Implement the read-only sysctl entry 'jail.jailed', which can be used to
determine if a process is running inside a jail (value is 1) or not
(value is 0).

NOTE: The current FreeBSD has such a sysctl entry called
'security.jail.jailed'.  However, DragonFly BSD doesn't not have any
'security.jail.*' but only 'jail.*' sysctl entries.

Meanwhile, update /etc/rc to use this new sysctl entry to better deal
with the rc scripts with the 'nojail' keyword.

Also document this sysctl entry in the jail.8 man page.

This commit is based mostly on FreeBSD as well as the patch in bug
report #118.

Reviewed-by: dillon, mjg (Mateusz Guzik)
Bug-report: #118

15 months agodrm - Fix system lockup bug in signal_pending_state()
Matthew Dillon [Mon, 17 Jun 2019 22:45:59 +0000 (15:45 -0700)]
drm - Fix system lockup bug in signal_pending_state()

* Fix a system lockup bug in signal_pending_state().  It was
  possible for the routine to indicate that no signal was pending
  for an interruptible state when a signal was in fact pending,
  causing a live-lock in a lksleep() loop.

* The proper API is to allow any signal to interrupt when the
  thread is in an interruptible state and to only allow a KILL
  signal to interrupt when the thread is in a non-interruptible

Testing-by: dillon, tuxillo
Reviewed-by: ftigeot
15 months agoNuke timed(8) (and timedc(8)). It is no longer used for time setting.
Sascha Wildner [Mon, 17 Jun 2019 17:28:18 +0000 (19:28 +0200)]
Nuke timed(8) (and timedc(8)). It is no longer used for time setting.

Adjust date(1) too for the removal (based on what FreeBSD did).

15 months agodrm/linux: Add io_schedule_timeout()
François Tigeot [Mon, 17 Jun 2019 14:20:21 +0000 (16:20 +0200)]
drm/linux: Add io_schedule_timeout()

15 months agoBump __DragonFly_version for libopie removal.
zrj [Mon, 17 Jun 2019 06:45:42 +0000 (09:45 +0300)]
Bump __DragonFly_version for libopie removal.

While there, add entry to UPDATING.

15 months agokernel: Unbundle libressl headers from src-sys.tar.bz2
zrj [Mon, 17 Jun 2019 06:35:29 +0000 (09:35 +0300)]
kernel: Unbundle libressl headers from src-sys.tar.bz2

This reverts commit cebb579b84f544c775170301fea06cc74fb71ded.

No longer needed.

15 months agokernel: Separate md5 from userland.
zrj [Mon, 17 Jun 2019 06:34:32 +0000 (09:34 +0300)]
kernel: Separate md5 from userland.

There are no good reasons to include userland header. Passing raw ctx
structure from kernel to userland or vice versa is a bug.

Requested-by: swildner
15 months agokernel: Make <sys/md4.h> and <sys/md5.h> exclusive to kernel only.
zrj [Mon, 17 Jun 2019 06:33:12 +0000 (09:33 +0300)]
kernel: Make <sys/md4.h> and <sys/md5.h> exclusive to kernel only.

With libmd removal this is now possible. Poison the sys/ headers.

While there, minor cleanup in md4c.c that is only used in smb.

15 months agoworld: Remove libmd from the base.
zrj [Mon, 17 Jun 2019 06:30:06 +0000 (09:30 +0300)]
world: Remove libmd from the base.

Everything in base has been converted to use pure LibreSSL hash API.
The libmd now is moved to dports security/libmd for compatibility.

Also remove lone rmd160.h header that was added directly to include/.

15 months agolib: Update dependencies.
zrj [Mon, 17 Jun 2019 06:28:42 +0000 (09:28 +0300)]
lib: Update dependencies.

No libraries depend on libmd, it can now be build in standard order.

15 months agoworld: Remove OPIE from base.
zrj [Mon, 17 Jun 2019 06:25:13 +0000 (09:25 +0300)]
world: Remove OPIE from base.

The OPIE has been deprecated since

15 months agodrm/linux: Restore wait_event*() functionality
François Tigeot [Mon, 17 Jun 2019 13:31:05 +0000 (15:31 +0200)]
drm/linux: Restore wait_event*() functionality

* Our wait_event* routines do not (yet) use Linux wait queues.
  Threads using them still have to be woken up with a different mechanism.

* Restore the wakeup*() calls directly using wait_queue_head_t pointers

* While there, also properly set the current Linux thread states in the
  wait_event*() routines

Issue with the previous commit reported by zrj.

15 months agodrm/linux: Rework wait queues
François Tigeot [Sun, 16 Jun 2019 20:37:26 +0000 (22:37 +0200)]
drm/linux: Rework wait queues

* Make the implementation much closer to the Linux one

* Do not directly try to wake up threads, but use an indirect function
  call to do it, allowing drivers to override the default function

* Implement the expected default_wake_function() and
  autoremove_wake_function() routines

15 months agodrm/linux: Add LIST_HEAD_INIT()
François Tigeot [Sun, 16 Jun 2019 19:36:27 +0000 (21:36 +0200)]
drm/linux: Add LIST_HEAD_INIT()

Obtained from: NetBSD

15 months agoShorten some paths in various Makefiles.
Sascha Wildner [Sun, 16 Jun 2019 05:26:40 +0000 (07:26 +0200)]
Shorten some paths in various Makefiles.

15 months agorconfig(8): Update usage in program and manpage
Aaron LI [Sun, 16 Jun 2019 03:49:17 +0000 (11:49 +0800)]
rconfig(8): Update usage in program and manpage

Clarify the different usages between client and server modes.

15 months agorconfig(8): Allow '.', '-' and '+' in tag names
Aaron LI [Sun, 16 Jun 2019 02:50:58 +0000 (10:50 +0800)]
rconfig(8): Allow '.', '-' and '+' in tag names

Originally, tag name only allows alphabets, digits and underscore.  This
commit also allows tag names to have dot (.), minus (-) and plus (+)

Bug-report: #2977

15 months agolibkvm - Increase static buffer for devname()
Matthew Dillon [Sun, 16 Jun 2019 02:24:46 +0000 (19:24 -0700)]
libkvm - Increase static buffer for devname()

* For now increase the internal static buffer for devname
  to MAXPATHLEN (aka 1024).  This may eventually be replaced

* This change is not exposed externally and it, or later changes,
  should not break anything.

Requested-by: aly
15 months agolibkvm - Increase ksw_devname from [32] to [64]
Matthew Dillon [Sun, 16 Jun 2019 02:03:20 +0000 (19:03 -0700)]
libkvm - Increase ksw_devname from [32] to [64]

* Increase ksw_devname to 64 chars.  This will help it fit longer
  crypto name paths, plus drive serial numbers can be longer as well.

Requested-by: aly
15 months agokernel - Fix SMAP/SMEP caught user mode access part 2/2.
Matthew Dillon [Sat, 15 Jun 2019 22:04:04 +0000 (15:04 -0700)]
kernel - Fix SMAP/SMEP caught user mode access part 2/2.

* Finish implementing SMAP exception handling support by
  properly detecting it in trap() and generating a panic().
  Otherwise the cpu just locks up in a page-fault loop without
  any indication as to why on the console.

* To properly support SMAP, make sure AC is cleared on system calls
  (it is already cleared on any interrupt or exception by the frame
  push code but I missed the syscall entry code).

15 months agoUpdate the pciconf(8) database.
Sascha Wildner [Sat, 15 Jun 2019 20:37:25 +0000 (22:37 +0200)]
Update the pciconf(8) database.

June 12, 2019 snapshot from https://pci-ids.ucw.cz

15 months agokernel - Fix SMAP/SMEP caught user mode access part 1/2.
Matthew Dillon [Sat, 15 Jun 2019 19:07:59 +0000 (12:07 -0700)]
kernel - Fix SMAP/SMEP caught user mode access part 1/2.

* Fix improper user mode access in hammer, caught by SMAP/SMEP.

Reported-by: Tim Darby
15 months agoterminfo: Build and install st, st-16color and st-256color
Aaron LI [Sat, 15 Jun 2019 11:51:21 +0000 (19:51 +0800)]
terminfo: Build and install st, st-16color and st-256color

Support the st (simple terminal) from the suckless project:

Submitted-by: daftaupe
Bug-report: #3159

15 months agoUse NULL instead of 0 for the third argument in fts_open()
Aaron LI [Sat, 15 Jun 2019 10:55:11 +0000 (18:55 +0800)]
Use NULL instead of 0 for the third argument in fts_open()

Bug-report: #3138

15 months agoMakefile: Require explicit target
Aaron LI [Sat, 15 Jun 2019 08:29:40 +0000 (16:29 +0800)]
Makefile: Require explicit target

Explicit target (e.g., buildworld, buildkernel) is required, otherwise
fail with an error.

Obtained-from: FreeBSD
Bug-report: #3158

15 months agolibstand/hammer1: Fix vol_name to be vol_label
Aaron LI [Sat, 15 Jun 2019 05:49:38 +0000 (13:49 +0800)]
libstand/hammer1: Fix vol_name to be vol_label

The 'vol_name' field in 'struct hammer_volume_ondisk' was changed to
'vol_label' in commit 6c39d27aedd299180e0b77179a8690d90d1e6e6d .

This fix enables libstand/hammer1.c to be build with -DTESTING.

Reported-by: daftaupe
Bug-report: #3185

15 months agou4b/audio: Fix panic by kfree(NULL)
Aaron LI [Sat, 15 Jun 2019 05:18:36 +0000 (13:18 +0800)]
u4b/audio: Fix panic by kfree(NULL)

DragonFly's kfree(9) doesn't allow a NULL pointer, while FreeBSD's
free(9) allows.

Reported-by: tse
Bug-report: #3192

15 months agoiostat - Fix column count bug
Matthew Dillon [Fri, 14 Jun 2019 05:24:46 +0000 (22:24 -0700)]
iostat - Fix column count bug

* The maxshowdevs parameter was improperly conditionalized in the
  list iteration, causing the list to be truncated early in some cases.

* Remove md*, pass*, and sg* by default, they are not usually

* Display more columns by default if stdout is a terminal and is wide

15 months agolibdevstat - Fix a bug in DS_SELECT_REMOVE
Matthew Dillon [Fri, 14 Jun 2019 02:59:08 +0000 (19:59 -0700)]
libdevstat - Fix a bug in DS_SELECT_REMOVE

* An improper decrement cut the list scan short, causing wildcard
  removals to not select all matching devices.

* This only really effects e.g. systat -vm and similar utilities.

15 months agokernel - Fix gdb / tracing
Matthew Dillon [Thu, 13 Jun 2019 17:38:28 +0000 (10:38 -0700)]
kernel - Fix gdb / tracing

* The tstop fix broke gdb / tracing.  Get gdb / tracing working

15 months agoUse some standard type names better.
Sascha Wildner [Wed, 12 Jun 2019 21:09:07 +0000 (23:09 +0200)]
Use some standard type names better.

struct sigaltstack -> stack_t
struct __siginfo   -> siginfo_t
struct __sigset    -> sigset_t

No functional change.

15 months ago<sys/signal.h>: Adjust the type of stack_t's ss_sp from char * to void *.
Sascha Wildner [Wed, 12 Jun 2019 20:34:10 +0000 (22:34 +0200)]
<sys/signal.h>: Adjust the type of stack_t's ss_sp from char * to void *.

15 months agodrm/linux: Fix schedule_timeout()
François Tigeot [Wed, 12 Jun 2019 19:48:53 +0000 (21:48 +0200)]
drm/linux: Fix schedule_timeout()

Interruptible sleeps were returning wrong values.

15 months agomtree: Indent with spaces.
Sascha Wildner [Tue, 11 Jun 2019 20:51:46 +0000 (22:51 +0200)]
mtree: Indent with spaces.

15 months agolibc: Add missing #include "un-namespace.h" in a few files.
Sascha Wildner [Wed, 12 Jun 2019 07:47:41 +0000 (09:47 +0200)]
libc: Add missing #include "un-namespace.h" in a few files.

15 months agolibc/pwcache: Remove some old RCS related stuff.
Sascha Wildner [Wed, 12 Jun 2019 07:46:09 +0000 (09:46 +0200)]
libc/pwcache: Remove some old RCS related stuff.

15 months ago<sys/param.h>: Fix _DragonFly_version.
Sascha Wildner [Wed, 12 Jun 2019 06:27:21 +0000 (08:27 +0200)]
<sys/param.h>: Fix _DragonFly_version.

15 months agoChanges for DragonFly 5.7. v5.7.0
Justin C. Sherrill [Wed, 12 Jun 2019 01:26:44 +0000 (21:26 -0400)]
Changes for DragonFly 5.7.

15 months agolibc: Use quotation marks around {un-,}namespace.h (private header).
Sascha Wildner [Tue, 11 Jun 2019 19:12:21 +0000 (21:12 +0200)]
libc: Use quotation marks around {un-,}namespace.h (private header).

15 months agoworld - Makme shm_open() more compatible with expectations
Matthew Dillon [Tue, 11 Jun 2019 19:04:49 +0000 (12:04 -0700)]
world - Makme shm_open() more compatible with expectations

* Create a tmpfs mount in /var/run/shm and also create /var/run/shm/tmp
  under it, both modes 1777, to support shm_open().  No longer base
  shm_open() at the root directory.

* shm_open() and shm_unlink() now access files relative to /var/run/shm.

  This fixes numerous ports and removes the need for numerous
  port patches.

* Rejigger libraries using namespace.h/un-namespace.h to add _unlink() and
  _unlinkat() into the mix.

15 months agoinstaller - Default to HAMMER2 (2)
Matthew Dillon [Tue, 11 Jun 2019 04:20:11 +0000 (21:20 -0700)]
installer - Default to HAMMER2 (2)

* Fix comments.

Reported-by: noob237
15 months agoinstaller - Default to HAMMER2
Matthew Dillon [Tue, 11 Jun 2019 00:53:46 +0000 (17:53 -0700)]
installer - Default to HAMMER2

* Change the installer default from HAMMER1 to HAMMER2.

* Adjust the nrelease build to print the location of the image files
  when it finishes.

15 months agodrm/linux: Add task_struct, rework sleep and wake up functions
François Tigeot [Mon, 10 Jun 2019 19:34:39 +0000 (21:34 +0200)]
drm/linux: Add task_struct, rework sleep and wake up functions

Really implement wake_up_process(), signal_pending(),
signal_pending_state() and schedule_timeout()

Some fixes contributed by Matthew Dillon.

15 months ago/etc/group: Add 'input', so it is available right away on new systems.
Sascha Wildner [Mon, 10 Jun 2019 12:30:26 +0000 (14:30 +0200)]
/etc/group: Add 'input', so it is available right away on new systems.

Pointed-out-by: zrj
15 months agoevdev: Create device entries with the "input" group
Peeter Must [Mon, 3 Jun 2019 07:57:11 +0000 (10:57 +0300)]
evdev: Create device entries with the "input" group

* Add a new group "input" with an id 43.

* Make the devfs subsystem override the /dev/input/event*
  devices with perm 0660 and root:input.

* This approach is standard in many Linux systems.

15 months agoRemove lint checks in system headers.
Sascha Wildner [Sun, 2 Jun 2019 17:23:22 +0000 (19:23 +0200)]
Remove lint checks in system headers.

Modern checkers do not (need to) pass this anymore to the build.

15 months agosys/vfs/hammer: Rename hammer_flush_inode_done() -> hammer_sync_inode_done()
Tomohiro Kusumi [Sun, 2 Jun 2019 05:54:18 +0000 (14:54 +0900)]
sys/vfs/hammer: Rename hammer_flush_inode_done() -> hammer_sync_inode_done()

It's a counterpart for hammer_sync_inode().

15 months agodrm: Sync drm_gem_object_lookup() with Linux 4.7.10
François Tigeot [Sun, 2 Jun 2019 05:16:11 +0000 (07:16 +0200)]
drm: Sync drm_gem_object_lookup() with Linux 4.7.10

15 months agolibm: Fix some -Wredundant-decls. signgam is in <math.h> already.
Sascha Wildner [Sat, 1 Jun 2019 15:03:30 +0000 (17:03 +0200)]
libm: Fix some -Wredundant-decls. signgam is in <math.h> already.

15 months agoCorrect some casts in printf arguments in various utilities.
Sascha Wildner [Sat, 1 Jun 2019 08:23:09 +0000 (10:23 +0200)]
Correct some casts in printf arguments in various utilities.