dragonfly.git
4 months agoMerge branch 'vendor/OPENRESOLV'
Roy Marples [Sun, 27 Dec 2020 18:45:53 +0000 (18:45 +0000)]
Merge branch 'vendor/OPENRESOLV'

4 months agoopenresolv: Update to version 3.12.0 with the following changes: vendor/OPENRESOLV
Roy Marples [Sun, 27 Dec 2020 18:43:42 +0000 (18:43 +0000)]
openresolv: Update to version 3.12.0 with the following changes:

 * Default support for WireGuard interfaces
 * Add allow_interfaces and deny_interfaces configuration knobs

 * notify avahi-daemon of resolv.conf being changed
 * notify mdsnd of resolv.conf being changed

 * Allow configurations to be marked as Deprecated and Acivtated
 * Harden resolvconf lock detection

4 months agodevname.3: Update man page to align wht the code
Aaron LI [Sun, 27 Dec 2020 12:46:48 +0000 (20:46 +0800)]
devname.3: Update man page to align wht the code

4 months agoAdd nsmb.conf.5 man page
Aaron LI [Sun, 27 Dec 2020 10:07:51 +0000 (18:07 +0800)]
Add nsmb.conf.5 man page

Obtained-from: FreeBSD

4 months agoetc/Makefile: Minor style tweaks
Aaron LI [Sun, 27 Dec 2020 10:02:02 +0000 (18:02 +0800)]
etc/Makefile: Minor style tweaks

4 months agoetc/Makefile: No need to try to install 'group' file
Aaron LI [Sun, 27 Dec 2020 09:59:23 +0000 (17:59 +0800)]
etc/Makefile: No need to try to install 'group' file

Similar to the 'master.passwd', no need to try to install the 'group'
file, because its update has already been handled by the 'pw-update.sh'
script.

4 months agoetc/Makefile: Use 'pw-update.sh' to add users and groups
Aaron LI [Sun, 27 Dec 2020 09:35:13 +0000 (17:35 +0800)]
etc/Makefile: Use 'pw-update.sh' to add users and groups

After this change, if we want to add a new user/group, just add it to
the 'master.passwd' and/or 'group' files.  No need to add ad-hoc pw(8)
commands in this Makefile.

4 months agotools: Add pw-update.sh to add new users and groups
Aaron LI [Sun, 27 Dec 2020 09:21:01 +0000 (17:21 +0800)]
tools: Add pw-update.sh to add new users and groups

This script is derived my 'dfly-update' tool [1], and will be used in
'make upgrade' to help add new users and groups.

[1] https://github.com/liweitianux/dfly-update

4 months agotools: Update commit-msg script a bit
Aaron LI [Sun, 27 Dec 2020 03:40:11 +0000 (11:40 +0800)]
tools: Update commit-msg script a bit

4 months agokernel - Fix callout structural corruption bug
Matthew Dillon [Sat, 26 Dec 2020 19:25:21 +0000 (11:25 -0800)]
kernel - Fix callout structural corruption bug

* _callout_cancel_quick() was not properly testing whether
  the callout being canceled matched sc->next, resulting
  it occassional kernel panics under certain circumstances.

* Could be triggered during dsynth runs.

* Fixed by adding the proper test.

Reported-by: zrj
4 months agosys/vfs/hammer2: Add initial multi-volumes support for HAMMER2
Tomohiro Kusumi [Fri, 25 Dec 2020 16:36:00 +0000 (01:36 +0900)]
sys/vfs/hammer2: Add initial multi-volumes support for HAMMER2

This commit adds initial multi-volumes support for HAMMER2. Maximum
supported volumes is 64. The feature and implementation is similar to
multi-volumes support in HAMMER1.

1. ondisk changes
=================
This commit bumps volume header version from 1 to 2, and adds four new
volume header fields using reserved fields in version 1. Other ondisk
structures are unchanged.
* "volu_id" - volume id from 0 to 63, where 0 represents root volume.
* "nvolumes" - number of volumes. All volumes have same the same value.
* "total_size" - sum of "volu_size" in volumes. All volumes have the
  same value.
* "volu_loff[HAMMER2_MAX_VOLUMES]" - A 512 bytes table which contains
  start offset of max 64 volumes within "total_size". All volumes have
  the same value.

Version 1 volume header has 0 for above fields, so HAMMER2 internally
treats "nvolumes" as 1, and "total_size" as "volu_size" to be able to
handle version 1 and 2 transparently.

All volumes have 4 headers, but only root volume ones are relevant.
Non-root volume headers have their own unique "volu_id" and "volu_size",
but other fields are unimportant and never used. Non-root volume headers
have sroot blockset[i] whose type is HAMMER2_BREF_TYPE_INVALID. Non-root
volume headers don't have boot/aux area, so freemap area start from
offset 0. Non-root volume headers are readonly and never updated after
creation. This means non-root volumes are just extra storage to extend
fs size and internally make up a single virtual volume whose size is
"total_size".

It currently doesn't automatically upgrade an existing version 1 fs to
version 2. Only newly created fs becomes version 2 for now.

2. volumes layout
=================
Basically similar to HAMMER1. A first block device argument provided for
newfs_hammer2(8) becomes the root volume, and if specified remaining
devices extend "total_size" as non-root volumes. All volumes except for
the last one have 1GiB (freemap level1) aligned "volu_size".

This means each volume's start offset within "total_size" is also 1GiB
(freemap level1) aligned. The start offsets of volumes are stored in
volu_loff[HAMMER2_MAX_VOLUMES]. Each volu_loff[n] (0 <= n < nvolumes)
represents start offset of volume n within "total_size". Unused volumes
have -1 for volu_loff[n].
e.g. If a fs consists of 1 volume, volu_loff[0] has 0 and rests have -1.
e.g. If a fs consists of 3 volumes, x GiB root volume, y GiB volume,
  and z GiB volume, volu_loff[0] has 0, volu_loff[1] has x, volu_loff[2]
  has x+y, and rests have -1.

Low level I/O function in HAMMER2 uses this linear offsets table to
determine a device vnode to use and relative offset within the device
vnode, for a given blockref's "data_off". This is different from HAMMER1
where logical offset had embedded volume id bits (i.e. there were holes
in logical address space). HAMMER2 needs this table to support multi-
volumes without changing current logical offset mechanism.

Unless all volumes are specified and mountable, mount_hammer2(8) fails
like it failed in HAMMER1. This also applies to other userspace commands
which require volumes specification, except for fstyp(8).

3. userspace commands
=====================
Basically same as or similar to HAMMER1.
* newfs_hammer2(8) takes a list of block device paths as argv[].
* mount_hammer2(8) takes block device paths or names in "a:b:c:..."
  format.
* hammer2(8) takes block device paths or names in "a:b:c:..." format for
  directives which require volumes specification. This commit also adds
  "volume-list" directive and an ioctl command HAMMER2IOC_VOLUME_LIST,
  which are similar to the one in HAMMER1.
* fsck_hammer2(8) takes device paths or names in "a:b:c:..." format.
* fstyp(8) takes device paths in "path1:path2:path3:..." format.

4. limitations
==============
* hammer2(8) "info" directive ignores multi-volumes block devices.
* hammer2(8) "growfs" directive doesn't support multi-volumes fs.
* fstyp(8) is unable to find PFS label via -l option if the PFS inode or
  its parent indirect blocks are located beyond root volume.
* hammer2(8) doesn't support "volume-add" and "volume-del" directives
  which existed in HAMMER1, and there is currently no plan to support.

4 months agonet/ip_mroute: Fix 'struct igmpmsg' for x86_64
Uglymotha [Thu, 24 Dec 2020 16:28:58 +0000 (17:28 +0100)]
net/ip_mroute: Fix 'struct igmpmsg' for x86_64

The `struct igmpmsg` currently uses `u_long` to define the unused fields
instead of `uint32_t`.  This breaks the mroute API on 64 bit systems,
because `u_long` is 64bit there.  The following code in `ip_mroute.c`
happily corrupts kernel upcall messages on 64bit systems as the fields
are incorrectly shifted 8bytes to the right, overwriting the destination
ip address in the packet.

```
/*
 * Send message to routing daemon to install
 * a route into the kernel table
 */
im = mtod(mm, struct igmpmsg *);
im->im_msgtype = IGMPMSG_NOCACHE;
im->im_mbz = 0;
im->im_vif = vifi;
```

Fix this issue by replacing `u_long` with `uint32_t` in `struct igmpmsg`.
This change has also been made in FreeBSD at:
https://github.com/freebsd/freebsd/commit/3dd767ffd091fb1e586741a1aedfcd67884312a4

This fix is submitted by Uglymotha at GitHub:
https://github.com/DragonFlyBSD/DragonFlyBSD/pull/11

4 months ago<netinet6/in6.h>: Revert one change that didn't improve anything.
Sascha Wildner [Fri, 25 Dec 2020 10:03:11 +0000 (11:03 +0100)]
<netinet6/in6.h>: Revert one change that didn't improve anything.

Definitions with a leading underscore are not relevant for POSIX
and the code is more readable this way.

4 months ago<netinet/in.h>: Clean up the POSIX namespace.
Sascha Wildner [Fri, 25 Dec 2020 09:18:41 +0000 (10:18 +0100)]
<netinet/in.h>: Clean up the POSIX namespace.

Thanks to zrj for testing it with a full dports bulk build.

4 months ago<netinet/in6.h>/<sys/mount.h>: Use __BSD_VISIBLE where intended.
Sascha Wildner [Mon, 21 Dec 2020 06:51:08 +0000 (07:51 +0100)]
<netinet/in6.h>/<sys/mount.h>: Use __BSD_VISIBLE where intended.

Only <sys/cdefs.h> should check the _POSIX_C_SOURCE and _XOPEN_SOURCE
definitions. The rest should always use *_VISIBLE.

4 months ago<netinet/in.h>: Fix comment indent.
Sascha Wildner [Sun, 20 Dec 2020 18:59:03 +0000 (19:59 +0100)]
<netinet/in.h>: Fix comment indent.

4 months agosbin/newfs_hammer2: Minor cleanup
Tomohiro Kusumi [Sun, 20 Dec 2020 12:59:40 +0000 (21:59 +0900)]
sbin/newfs_hammer2: Minor cleanup

to make multi-volumes diff (which uses *vol for other purpose) clearer.
In HAMMER2 the volume header variable is basically always *voldata.

4 months agosbin/fsck_hammer2: Don't print "exceeds volume size" in find_best_zone()
Tomohiro Kusumi [Sun, 20 Dec 2020 07:03:52 +0000 (16:03 +0900)]
sbin/fsck_hammer2: Don't print "exceeds volume size" in find_best_zone()

No need to print while seeking for a best zone.

4 months agodrm/i915: Enable I915_PARAM_MMAP_VERSION
François Tigeot [Sat, 19 Dec 2020 09:48:01 +0000 (10:48 +0100)]
drm/i915: Enable I915_PARAM_MMAP_VERSION

4 months agodrm/i915: Update PCI IDs from Linux 5.8
François Tigeot [Sat, 19 Dec 2020 09:47:32 +0000 (10:47 +0100)]
drm/i915: Update PCI IDs from Linux 5.8

This brings in support for new Coffee Lake, Amber Lake, Whiskey Lake
and Comet Lake GPUs.

4 months agodrm: Update to Linux 4.15.18
François Tigeot [Sat, 19 Dec 2020 09:42:40 +0000 (10:42 +0100)]
drm: Update to Linux 4.15.18

* Create /dev/dri/renderD* devices
  Generally handle /dev entries creation as close to Linux as possible.

* Add drm master support
  Sync authentification code with Linux 4.15.18

* handle vm_mm->mmap_sem in ttm page fault operations

* Update dma-fence code from OpenBSD

* This commit contains sleep/wakeup and other changes
  from Matthew Dillon <dillon@apollo.backplane.com>

4 months agoSync ACPICA with Intel's version 20201217.
Sascha Wildner [Fri, 18 Dec 2020 23:43:19 +0000 (00:43 +0100)]
Sync ACPICA with Intel's version 20201217.

* Fix exception code class checks.

* Better GCC 10 support.

* Some -Wimplicit-fallthrough fixes.

* Miscellaneous improvements in the tools.

For detailed list, please see sys/contrib/dev/acpica/changes.txt.

4 months agocpdup - Add support for lchmod(), lutimes(), and lchflags() (2)
Matthew Dillon [Fri, 18 Dec 2020 19:12:43 +0000 (11:12 -0800)]
cpdup - Add support for lchmod(), lutimes(), and lchflags() (2)

* Fix bug in xlink, lchflags() was being called with the wrong
  path after a link failure and so could not unlock schg files
  to link to them.

4 months agosys/vfs/hammer: modify directory ctime when adding entry
Daniel Fojt [Thu, 17 Dec 2020 17:15:26 +0000 (18:15 +0100)]
sys/vfs/hammer: modify directory ctime when adding entry

In addition to mtime, update also ctime of a directory when adding
new entry there.

Related to issue: https://bugs.dragonflybsd.org/issues/3251
Reviewed by: Matthew Dillon

4 months agosys/vfs/hammer2: modify inode's ctime after link()ing it
Daniel Fojt [Thu, 17 Dec 2020 17:10:39 +0000 (18:10 +0100)]
sys/vfs/hammer2: modify inode's ctime after link()ing it

After successfully hardlinking inode, update also its ctime.
In addition to mtime, update also ctime of destination directory.

Issue: https://bugs.dragonflybsd.org/issues/3251
Reviewed by: Matthew Dillon

4 months agousr.sbin/fstyp: Minor HAMMER1 fixes
Tomohiro Kusumi [Wed, 16 Dec 2020 17:33:48 +0000 (02:33 +0900)]
usr.sbin/fstyp: Minor HAMMER1 fixes

4 months agousr.sbin/fstyp: Minor HAMMER2 fixes
Tomohiro Kusumi [Wed, 16 Dec 2020 17:10:32 +0000 (02:10 +0900)]
usr.sbin/fstyp: Minor HAMMER2 fixes

4 months agobuild - Fix building new sources on older systems
Matthew Dillon [Wed, 16 Dec 2020 00:50:41 +0000 (16:50 -0800)]
build - Fix building new sources on older systems

* Fix compile errors when doing a new buildwolrd on an old
  base system.

4 months agoRevert "sys.mk: Add the 's' modifier to our ARFLAGS."
zrj [Wed, 16 Dec 2020 06:09:08 +0000 (08:09 +0200)]
Revert "sys.mk: Add the 's' modifier to our ARFLAGS."

This reverts commit 6bae3359fa1ec5d88e148046045c4d9eabcaef21.

To be investigated, few issues in static cc1plus.

4 months agopthreads: Add pthread_is_threaded_np.3 manpage.
zrj [Tue, 15 Dec 2020 07:00:45 +0000 (07:00 +0000)]
pthreads: Add pthread_is_threaded_np.3 manpage.

4 months agopthreads: Add pthread_yield_np().
zrj [Tue, 15 Dec 2020 06:34:30 +0000 (06:34 +0000)]
pthreads: Add pthread_yield_np().

 Same as non standard pthread_yield() but with correct '_np' suffix.

4 months agopthreads: Use sticky version in pthread_is_threaded_np().
zrj [Tue, 15 Dec 2020 06:30:15 +0000 (06:30 +0000)]
pthreads: Use sticky version in pthread_is_threaded_np().

 It was observed that several applications have undefined behaviour if
 they become implicitly threaded at runtime (e.g. locale libraries).
 This allows to check status to avoid issues in applications calling
 sigprocmask() and fork() without immediate exec().

4 months agoworld: Add <sys/single_threaded.h>
zrj [Tue, 15 Dec 2020 06:27:09 +0000 (06:27 +0000)]
world: Add <sys/single_threaded.h>

 The __libc_single_threaded is publicly exported version of libc private
 __isthreaded symbol that does not reset on fork in threaded programs.

4 months agoUpdate the pciconf(8) database.
Sascha Wildner [Tue, 15 Dec 2020 13:13:19 +0000 (14:13 +0100)]
Update the pciconf(8) database.

December 13, 2020 snapshot from https://pci-ids.ucw.cz

4 months agodsynth: Collect and present meta-node statistics.
Antonio Huete Jimenez [Mon, 14 Dec 2020 00:29:15 +0000 (01:29 +0100)]
dsynth: Collect and present meta-node statistics.

  - Do not display meta-node ports in 'built' since they are
    not really built (although they are marked as successful).
  - Create a new category called 'meta' where meta-nodes will
    be represented.
  - Curses mode does not show meta-nodes, the display is already
    too tight.

Feature-request-by: @zrj
4 months agodsynth: Delete obsolete packages upon 'prepare-system'
Antonio Huete Jimenez [Sun, 13 Dec 2020 10:16:03 +0000 (11:16 +0100)]
dsynth: Delete obsolete packages upon 'prepare-system'

  - Remove old versions of packages when doing 'prepare-system'
    thus avoiding duplicate dependencies due to old versions still
    being present along with newer ones.

4 months agosys.mk: Add the 's' modifier to our ARFLAGS.
Sascha Wildner [Sun, 13 Dec 2020 07:50:32 +0000 (08:50 +0100)]
sys.mk: Add the 's' modifier to our ARFLAGS.

This allows us to remove most explicit executions of ranlib(1) and
lorder(1)/tsort(1) during buildworld, although not all.

Remaining are some 'ar -M' cases for static and profiling libstdc++
that still need ranlib(1). lorder(1)/tsort(1) are still used in the
linking of shared libraries.

4 months agotop, vmstat, who, rwhod - Use CLOCK_UPTIME to calculate uptime
Matthew Dillon [Sun, 13 Dec 2020 02:26:28 +0000 (18:26 -0800)]
top, vmstat, who, rwhod - Use CLOCK_UPTIME to calculate uptime

* Use CLOCK_UPTIME to calculate the system uptime instead of
  subtracting current real time from boot real time, which could
  get muffed up by setting the time.

4 months agouptime - Use CLOCK_UPTIME to calculate uptime
Matthew Dillon [Sun, 13 Dec 2020 00:33:32 +0000 (16:33 -0800)]
uptime - Use CLOCK_UPTIME to calculate uptime

* Use CLOCK_UPTIME instead of subtracting the current realtime
  from boottime.

* Fixes broken uptimes after time is set.

Reported-by: tuxillo, others
4 months agoRemove local ar(1) operation code definitions and use ARFLAGS.
Sascha Wildner [Sat, 12 Dec 2020 20:41:27 +0000 (21:41 +0100)]
Remove local ar(1) operation code definitions and use ARFLAGS.

Remove 'l' from ARFLAGS (serves no purpose) and add 'c' to silence
archive creation warnings.

Note that we do not need to care about 'D' because our binutils were
configured with '--enable-deterministic-archives'.

To be done later: Adding 's' and stop running lorder/ranlib explicitly.

4 months agopthreads: Add pthread_is_threaded_np() function.
zrj [Sat, 12 Dec 2020 14:16:38 +0000 (14:16 +0000)]
pthreads: Add pthread_is_threaded_np() function.

4 months agopthreads: Enhance pthread_sigprocmask() stub.
zrj [Sat, 12 Dec 2020 14:13:50 +0000 (14:13 +0000)]
pthreads: Enhance pthread_sigprocmask() stub.

 Some ports expect this function to work even before pthread_create().

4 months agopthreads: Add pthread_getattr_np().
zrj [Sat, 12 Dec 2020 14:12:00 +0000 (14:12 +0000)]
pthreads: Add pthread_getattr_np().

Adapted-from: NetBSD

4 months ago<pthread.h>: Provide pthread_*_np() prototypes too.
zrj [Tue, 8 Dec 2020 11:45:40 +0000 (11:45 +0000)]
<pthread.h>: Provide pthread_*_np() prototypes too.

 Based on review in DPorts what some of software packages expect.

4 months agolibstand: Exclude pthread types for loaders.
zrj [Tue, 8 Dec 2020 11:45:20 +0000 (11:45 +0000)]
libstand: Exclude pthread types for loaders.

 This effectively removes pthread types from loaders.

4 months ago<aio.h>: Only provide pthread types mandated by POSIX here.
zrj [Tue, 8 Dec 2020 11:44:32 +0000 (11:44 +0000)]
<aio.h>: Only provide pthread types mandated by POSIX here.

4 months ago<signal.h>: Further reduce pthread namespace pollution.
zrj [Tue, 8 Dec 2020 11:43:54 +0000 (11:43 +0000)]
<signal.h>: Further reduce pthread namespace pollution.

 Only provide types mandated by POSIX here.

4 months agopthreads: Reimplement pthread types using non polluting types.
zrj [Tue, 8 Dec 2020 11:11:06 +0000 (11:11 +0000)]
pthreads: Reimplement pthread types using non polluting types.

 Use __ implementation specific namespace and adjust libthread_xu.
 * The pthread_addr_t type was specific only to libc_r, remove it.
 * The pthread_startroutine_t typedef was never used since initial fork.
 * The mutex member in struct pthread_once was for libc_r only, rename
   it to __sparelibc_r void pointer to keep ABI compatibility.
 * Mangle struct names using __type_s scheme to avoid collisions with
   user defined types in 3rd-party software packages.
 * Adjust partly publicly visible struct pthread_once members too.

4 months agopthreads: Use pthread_t type in libthread_xu.
zrj [Tue, 8 Dec 2020 11:09:37 +0000 (11:09 +0000)]
pthreads: Use pthread_t type in libthread_xu.

 Separated from upcoming work to allow easier differentiation between
 non-pointers, single and double pointers.  Inclusion of thr_private.h
 already provides all needed information to dereference these types.

 No functional change

4 months agopthreads: Reduce pthread type namespace pollution.
zrj [Tue, 8 Dec 2020 10:36:12 +0000 (10:36 +0000)]
pthreads: Reduce pthread type namespace pollution.

 This fully removes pthread types in kernel (except vkernel).
 The vkernel bits first require <signal.h> exposure adjustments.
 * Exclude type for sigev_notify_attributes for kernel, used only by the
   lib/librt/aio.c.  We could use void type unconditionally like NetBSD,
 * Do not provide pthread_attr_t in <sys/aio.h> for kernel.

4 months agopthreads: Remove <sys/signal.h> from <pthread.h>.
zrj [Tue, 8 Dec 2020 10:35:18 +0000 (10:35 +0000)]
pthreads: Remove <sys/signal.h> from <pthread.h>.

 Seems to be legacy remnant for no longer required pthread_kill() and
 pthread_sigmask().  Use lighter types header in <pthread_np.h>, because
 size_t must be provided by <time.h> and <pthread.h> must include it.

4 months agopthreads: Remove DragonFly tags referencing libc_r.
zrj [Tue, 8 Dec 2020 10:34:41 +0000 (10:34 +0000)]
pthreads: Remove DragonFly tags referencing libc_r.

4 months agolibc: Reduce <pthread.h> exposure.
zrj [Tue, 8 Dec 2020 10:33:36 +0000 (10:33 +0000)]
libc: Reduce <pthread.h> exposure.

4 months agolibdevattr: Reduce <pthread.h> exposure.
zrj [Tue, 8 Dec 2020 10:32:36 +0000 (10:32 +0000)]
libdevattr: Reduce <pthread.h> exposure.

4 months ago<machine/stdarg.h>: Make <stdarg.h> compatible with ports compilers.
zrj [Tue, 8 Dec 2020 10:31:50 +0000 (10:31 +0000)]
<machine/stdarg.h>: Make <stdarg.h> compatible with ports compilers.

 We are now building with -Wsystem-headers for c++ and compilers provide
 their own <stdarg.h> versions containing legacy compatibility
 __va_copy() definition that was used in the draft proposal.
 Treat it as reserved name.  Only kernel code should use <sys/stdarg.h>

4 months agokernel - Callout corruption and subr_bus debugging
Matthew Dillon [Fri, 11 Dec 2020 17:21:34 +0000 (09:21 -0800)]
kernel - Callout corruption and subr_bus debugging

* Improve the debugging code to try to detect corrupt callouts
  under more controller circumstances so a dump can be obtained.

* Try to catch a usb race in subr_bus.c

4 months agoUpgrade libressl. 2/2
Daniel Fojt [Thu, 10 Dec 2020 19:16:54 +0000 (20:16 +0100)]
Upgrade libressl. 2/2

Update README.DRAGONFLY.

4 months agoUpgrade libressl. 1/2
Daniel Fojt [Thu, 10 Dec 2020 19:16:14 +0000 (20:16 +0100)]
Upgrade libressl. 1/2

Merge branch 'vendor/LIBRESSL' into master.

4 months agovendor/libressl: upgrade from 3.2.2 to 3.2.3
Daniel Fojt [Thu, 10 Dec 2020 17:13:07 +0000 (18:13 +0100)]
vendor/libressl: upgrade from 3.2.2 to 3.2.3

Fixes ASN.1 vulnerability (aka CVE-2020-1971):

* Malformed ASN.1 in a certificate revocation list or a timestamp
  response token can lead to a NULL pointer dereference

4 months agosys/vfs/ext2fs: In ext2 BA_CLRBUF is used in ext2_balloc() not UFS_BALLOC()
Tomohiro Kusumi [Thu, 10 Dec 2020 16:00:13 +0000 (01:00 +0900)]
sys/vfs/ext2fs: In ext2 BA_CLRBUF is used in ext2_balloc() not UFS_BALLOC()

from freebsd/freebsd@262611483aad9f91d0450b5fc6b41a4075fc5ba4

4 months agovkernel: Add extra space.
Sascha Wildner [Thu, 10 Dec 2020 14:53:31 +0000 (15:53 +0100)]
vkernel: Add extra space.

4 months agokernel/mmap_single: Pass a_fp properly into the *_mmap_single dev op.
Sascha Wildner [Wed, 9 Dec 2020 19:31:20 +0000 (20:31 +0100)]
kernel/mmap_single: Pass a_fp properly into the *_mmap_single dev op.

Follow-up to 8c530b23e3584f72dc8c660b3816187017eeeb6b which passed NULL
always.

Nothing is broken because of this at the moment but it will be useful
for drivers that want to access per-fp private data (with for example
devfs_get_cdevpriv()) from their blah_mmap_single() dev_ops function.

OK'd-by: dillon

4 months agoedk2: Sync our TianoCore EDK II headers with the edk2-stable202011 tag.
Sascha Wildner [Wed, 9 Dec 2020 16:17:25 +0000 (17:17 +0100)]
edk2: Sync our TianoCore EDK II headers with the edk2-stable202011 tag.

Nothing of importance to us.

* Add ACPI's Interrupt Vector Flags

* Remove various prototypes of deprecated interfaces

* Bump block I/O protocol revision

* Add new EFI_MEMORY_ACCESS_MASK macro

4 months agoinet6_opt_init.3: Use standard integer types in the SYNOPSIS.
Sascha Wildner [Tue, 8 Dec 2020 22:35:39 +0000 (23:35 +0100)]
inet6_opt_init.3: Use standard integer types in the SYNOPSIS.

4 months agosbin/hammer2: Remove 0x prefix for blockref data_off/key in "show"
Tomohiro Kusumi [Tue, 8 Dec 2020 19:17:17 +0000 (04:17 +0900)]
sbin/hammer2: Remove 0x prefix for blockref data_off/key in "show"

Other blockref fields don't have 0x prefix.
Quiet mode also doesn't have 0x prefix for data_off/key.

4 months agousr.sbin/fstyp: Don't fail fsvtyp with err(3) on fopen failure
Tomohiro Kusumi [Tue, 8 Dec 2020 17:16:49 +0000 (02:16 +0900)]
usr.sbin/fstyp: Don't fail fsvtyp with err(3) on fopen failure

fsvtyp vectors (currently only for HAMMER1) need to open device(s),
but don't exit with err(3) on fopen failure. This behavior interferes
with fsvtyp for HAMMER2 when it gets supported in future.

4 months agoip: Allow ip_mreqn support for IP_MULTICAST_IF,IP_{ADD,DROP}_MEMBERSHIP
Sepherosa Ziehau [Mon, 7 Dec 2020 15:16:53 +0000 (23:16 +0800)]
ip: Allow ip_mreqn support for IP_MULTICAST_IF,IP_{ADD,DROP}_MEMBERSHIP

- ip_mreqn.imr_ifindex takes precendence over ip_mreqn.imr_address,
  if it's not 0.  This strictly follows what Linux does.
- Allow ip_mreq for IP_MULTICAST_IF as what Linux does.

While I'm here, remove unnecessary critical section among
IP_MULTICAST_IF, IP_{ADD,DROP}_MEMBERSHIP.

Bump kernel version.

Requested-by: tuxillo
4 months agosys/vfs/ext2fs: Document BA_CLRBUF flag used in ext2
Tomohiro Kusumi [Mon, 7 Dec 2020 15:44:40 +0000 (00:44 +0900)]
sys/vfs/ext2fs: Document BA_CLRBUF flag used in ext2

from freebsd/freebsd@137374ad40a464a4c47db068682a3cd0c724cdaf

4 months agosys/vfs/hammer2: Minor kprintf fix
Tomohiro Kusumi [Sat, 5 Dec 2020 19:02:56 +0000 (04:02 +0900)]
sys/vfs/hammer2: Minor kprintf fix

5 months agosys/vfs/hammer2: Add missing vrele in b15468809847b3946cceaf7c4fb471ae94d96f53
Tomohiro Kusumi [Fri, 4 Dec 2020 18:12:59 +0000 (03:12 +0900)]
sys/vfs/hammer2: Add missing vrele in b15468809847b3946cceaf7c4fb471ae94d96f53

5 months agokern: Bump kernel version for IPPROTO_IP/IP_SENDSRCADDR,IP_TOS.
Sepherosa Ziehau [Fri, 4 Dec 2020 12:45:25 +0000 (20:45 +0800)]
kern: Bump kernel version for IPPROTO_IP/IP_SENDSRCADDR,IP_TOS.

5 months agoudp: Port IPPROTO_IP/IP_TOS cmsg support from FreeBSD.
Sepherosa Ziehau [Fri, 4 Dec 2020 12:43:15 +0000 (20:43 +0800)]
udp: Port IPPROTO_IP/IP_TOS cmsg support from FreeBSD.

5 months agoinet: Port IPPROTO/IP_RECVTOS from FreeBSD.
Sepherosa Ziehau [Fri, 4 Dec 2020 11:57:34 +0000 (19:57 +0800)]
inet: Port IPPROTO/IP_RECVTOS from FreeBSD.

Bump kernel version.

Requested-by: zrj
5 months agovkernel/vke: Add missing semicolon.
Sascha Wildner [Fri, 4 Dec 2020 11:49:03 +0000 (12:49 +0100)]
vkernel/vke: Add missing semicolon.

5 months agokernel/dup: Fix off-by-one in descriptor limit check.
Sascha Wildner [Wed, 2 Dec 2020 19:35:27 +0000 (20:35 +0100)]
kernel/dup: Fix off-by-one in descriptor limit check.

Reported-by: zrj (found by gnulib's tests)
5 months agoifmedia: Port SIOCGIFXMEDIA from FreeBSD
Sepherosa Ziehau [Wed, 2 Dec 2020 12:58:04 +0000 (20:58 +0800)]
ifmedia: Port SIOCGIFXMEDIA from FreeBSD

- Max # of media type is 255 on DragonFly; additional bit was used.
- Description of the media is changed to ###baseXX instead of
  ###Base-XX; it is more consistent with what we already have.
- Fix some media types in vke(4), e.g. 1000baseT <half-duplex>
  is actually never deployed anywhere.
- Use ULL consistently in bce(4) for the if_baudrate.
- Setup if_baudrate properly for re(4).
- Fix typo in mii(4).
- Handle SIOCGIFXMEDIA in re(4) (for 2500baseT) and vke(4) (for
  all newly added types).
- Bump kernel version.

5 months agolibaura: More tests for dicts, duplicate handling
Antonio Huete Jimenez [Mon, 30 Nov 2020 17:28:17 +0000 (18:28 +0100)]
libaura: More tests for dicts, duplicate handling

5 months agolibaura: Add another test for dicts
Antonio Huete Jimenez [Mon, 30 Nov 2020 14:42:11 +0000 (15:42 +0100)]
libaura: Add another test for dicts

5 months agolibaura: Return NULL in some cases.
Antonio Huete Jimenez [Mon, 30 Nov 2020 09:01:28 +0000 (10:01 +0100)]
libaura: Return NULL in some cases.

  - Fail if there's not enough memory for allocating
    num_buckets or if the method is unknown.
  - Add test.

5 months agolibaura: Staticize non-interface functions
Antonio Huete Jimenez [Sat, 28 Nov 2020 07:37:20 +0000 (08:37 +0100)]
libaura: Staticize non-interface functions

5 months agobce: Use IF_Mbps to avoid float number in kernel.
Sepherosa Ziehau [Mon, 30 Nov 2020 14:36:31 +0000 (22:36 +0800)]
bce: Use IF_Mbps to avoid float number in kernel.

Reported-by: zrj
5 months agore: Sync with Realtek's re-196.04; and fix re_start/re_tx_collect.
Sepherosa Ziehau [Wed, 4 Nov 2020 12:35:53 +0000 (20:35 +0800)]
re: Sync with Realtek's re-196.04; and fix re_start/re_tx_collect.

- Add several new chips' support, noticably RTL8125 support.
- Reorder chip related initializaton on the attach path a bit;
  mainly to make sure ifnet is initialized.
- In re_start(), solely rely on the re_tx_free for the TX descriptor
  setup loop.  This avoids the fixup on the end of the loop.  Add
  assertion that the TX descriptor's corresponding mbuf is not setup
  yet.
- On RTL8125, the EOF in the TX descriptor is no longer left uncleared
  upon TX done, so simply rely on whether the TX descriptor's
  corresponding mbuf is set or not to unload the busdma(9) and free the
  TX mbuf.  We actually should do this instead of rely on the EOF.

Tested-by: me (8101, 8111, 8168, 8125)
    Romick <yellowrabbit2010 gmail.com> (8111)
    Daniel Fojt <df neosystem.org> (8111)

5 months agosys/vfs/hammer2: Make kprintf prefix consistent
Tomohiro Kusumi [Mon, 30 Nov 2020 15:06:34 +0000 (00:06 +0900)]
sys/vfs/hammer2: Make kprintf prefix consistent

5 months agosys/vfs/hammer2: Don't ignore vn_isdisk() result on mount
Tomohiro Kusumi [Mon, 30 Nov 2020 15:07:40 +0000 (00:07 +0900)]
sys/vfs/hammer2: Don't ignore vn_isdisk() result on mount

5 months agonrelease: Define BUILDING_NRELEASE_DPORTS when building packages.
Sascha Wildner [Sun, 29 Nov 2020 09:46:13 +0000 (10:46 +0100)]
nrelease: Define BUILDING_NRELEASE_DPORTS when building packages.

Requested by zrj to allow further optimization at the ports level.

5 months agoUpdate dhcpcd README.DRAGONFLY
Roy Marples [Sat, 28 Nov 2020 14:41:39 +0000 (14:41 +0000)]
Update dhcpcd README.DRAGONFLY

5 months agoMerge branch 'vendor/DHCPCD'
Roy Marples [Sat, 28 Nov 2020 14:38:03 +0000 (14:38 +0000)]
Merge branch 'vendor/DHCPCD'

5 months agoUpdate to dhcpcd-9.3.4 with the following changes:
Roy Marples [Sat, 28 Nov 2020 14:36:33 +0000 (14:36 +0000)]
Update to dhcpcd-9.3.4 with the following changes:

 * DHCP: If error adding the address in oneshot, exit with failure
 * DHCP: Only listen to the address if we successfully added it
 * DHCP6: Fix segfault introduced in dhcpcd-9.3.3
 * DHCP6: Abort in test mode when an error is returned by server
 * options: allow --ia_na=1 and --ia_pd=2 on the command line
 * options: Allow duid to take a value

5 months ago<sys/sysproto.h>: Remove unneeded inclusion of <sys/sysmsg.h>.
Sascha Wildner [Sat, 28 Nov 2020 09:22:49 +0000 (10:22 +0100)]
<sys/sysproto.h>: Remove unneeded inclusion of <sys/sysmsg.h>.

After 80d831e1ad5c5886e45827bf13837cf84baba296, which removed the
struct sysmsg's in the *_args structures, this is no longer needed.

It also resolves circular #include issues because that commit at the
same time added #include <sys/sysproto.h> to <sys/sysmsg.h>.

5 months agosh(1) tests: dfregress support
Antonio Huete Jimenez [Fri, 27 Nov 2020 11:14:53 +0000 (12:14 +0100)]
sh(1) tests: dfregress support

5 months agodfregress: Add 'rc' option
Antonio Huete Jimenez [Fri, 27 Nov 2020 10:52:07 +0000 (11:52 +0100)]
dfregress: Add 'rc' option

  - Allows to specify which return code will be considered success for the
    test case being run. In the example below, a return code of '1' will
    make the test PASS.

    # Testcase            type        Options         Args
    builtins/alias.1      userland    nobuild,rc=1    myarg1 myarg2

5 months agodfregress: Fix mistake in the previous commit
Antonio Huete Jimenez [Fri, 27 Nov 2020 10:09:31 +0000 (11:09 +0100)]
dfregress: Fix mistake in the previous commit

  - We only return NULL on failure when fatal is false.

5 months agodfregress: Add 'interpreter' option
Antonio Huete Jimenez [Thu, 26 Nov 2020 22:40:00 +0000 (23:40 +0100)]
dfregress: Add 'interpreter' option

  - Allows to specify the interpreter that will run the testcase file.
    Some test cases just provide a file without execution permissions or no
    shebang, etc. In some cases it is not desirable to modify the test case
    files (i.e. contrib stuff).

    Taking the example below, the previous behavior was to execvp() the file
    'builtins/alias.0' but with 'interpreter' option, now you can specify
    the shell you want to use to run it.

    # Testcase            type        Options                   Args
    builtins/alias.0      userland    nobuild,interpreter=sh    myarg1 myarg2

5 months agoudp: Port FreeBSD's IPPROTO_IP/IP_SENDSRCADDR.
Sepherosa Ziehau [Thu, 26 Nov 2020 03:22:10 +0000 (11:22 +0800)]
udp: Port FreeBSD's IPPROTO_IP/IP_SENDSRCADDR.

Minor difference:
- Multicast src is not allowed.
- Always allow src, if it is same as inp_laddr and is not multicast.

While I'm here, fix datagram sending for multicast bound and connected
UDP socket.

5 months agotbridge: Add a section 4 man page.
Antonio Huete Jimenez [Wed, 25 Nov 2020 00:16:16 +0000 (01:16 +0100)]
tbridge: Add a section 4 man page.

5 months ago<sys/poll.h>: Expose POLLSTANDARD and INFTIM only in the default env.
Sascha Wildner [Tue, 24 Nov 2020 22:19:09 +0000 (23:19 +0100)]
<sys/poll.h>: Expose POLLSTANDARD and INFTIM only in the default env.

Cleans up the POSIX namespace.

5 months agovkernel - Fix the vkernel build after recent syscall changes (2)
Matthew Dillon [Tue, 24 Nov 2020 21:33:34 +0000 (13:33 -0800)]
vkernel - Fix the vkernel build after recent syscall changes (2)

* Another fix.  Now the vkernel actually works again.

Reported-by: pikrzyszt, tuxillo
5 months agokernel - Fix sys_vmspace_ctl()
Matthew Dillon [Tue, 24 Nov 2020 19:57:20 +0000 (11:57 -0800)]
kernel - Fix sys_vmspace_ctl()

* This system call overwrites the trap-frame.  The new syscall code
  just has the argument pointer (uap) pointing into the trap-frame,
  so in this particular case we have to copy the arguments out before
  overwriting it.

Reported-by: pikrzyszt, tuxillo
5 months agokernel - Fix shared spin-lock starvation bug in VMs
Matthew Dillon [Tue, 24 Nov 2020 19:51:38 +0000 (11:51 -0800)]
kernel - Fix shared spin-lock starvation bug in VMs

* 'indefinite_uses_rdtsc' is set to zero by default when running in
  a virtual machine (and set to 1 on a real machine).  However, this
  disables the windowing code in _spin_lock_shared_contested() and
  causes it to defer to pending execusive lock requests indefinitely
  under heavy-enough loads.

* Add a comment and always use a windowing test w/rdtsc() in
  _spin_lock_shared_contested().

  We were trying to avoid using the rdtsc() in VMs because some of them
  apparently trap the rdtsc instruction.  However, this puts us in a
  no-win situation when it comes to dealing with spin-locks.  So take the
  hit and start using rdtsc again in some situations when operating in
  a VM.

Reported-by: mjg
5 months agoinet: Refactor in_pcbbind() for IP_SENDSRCADDR support.
Sepherosa Ziehau [Tue, 24 Nov 2020 14:50:27 +0000 (22:50 +0800)]
inet: Refactor in_pcbbind() for IP_SENDSRCADDR support.

The newly factored out function will be used to validate address
passed through IP_SENDSRCADDR cmsg.