aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-09-29 15:18:18 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-09-29 15:18:18 +0000
commitab530bf0dd7a0963626960897ef8f099e64cdcc5 (patch)
treed8176a6f18631cc9a4d2e719cd7d9789814be158
parent678769a9fc265efb669b9abcb13bc620f8b57dc0 (diff)
parentd07b9c7a7d5e4ad21a1ee78624561c0f1ea49ed4 (diff)
downloadsrc-ab530bf0dd7a0963626960897ef8f099e64cdcc5.tar.gz
src-ab530bf0dd7a0963626960897ef8f099e64cdcc5.zip
Merge ^/head r338988 through r339014.
Notes
Notes: svn path=/projects/clang700-import/; revision=339015
-rw-r--r--lib/libc/amd64/string/bcopy.S1
-rw-r--r--lib/libusb/libusb10_io.c6
-rwxr-xr-xsbin/init/rc.d/ldconfig2
-rw-r--r--sys/amd64/amd64/pmap.c6
-rw-r--r--sys/amd64/amd64/support.S2
-rw-r--r--sys/arm64/arm64/identcpu.c38
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c9
-rw-r--r--sys/compat/freebsd32/freebsd32_ioctl.c109
-rw-r--r--sys/compat/freebsd32/freebsd32_ioctl.h40
-rw-r--r--sys/compat/freebsd32/freebsd32_syscall.h20
-rw-r--r--sys/compat/freebsd32/freebsd32_syscalls.c40
-rw-r--r--sys/compat/freebsd32/freebsd32_sysent.c40
-rw-r--r--sys/compat/freebsd32/syscalls.master40
-rw-r--r--sys/conf/newvers.sh2
-rw-r--r--sys/dev/pci/pci_user.c172
-rw-r--r--sys/dev/sdhci/sdhci_acpi.c3
-rw-r--r--sys/kern/init_sysent.c40
-rw-r--r--sys/kern/syscalls.c40
-rw-r--r--sys/kern/syscalls.master40
-rw-r--r--sys/net/if.c3
-rw-r--r--sys/net/if_tap.c15
-rw-r--r--sys/net/if_tun.c23
-rw-r--r--sys/net/if_var.h2
-rw-r--r--sys/netinet/sctp_output.c2
-rw-r--r--sys/sys/syscall.h20
-rw-r--r--sys/vm/vm_fault.c15
26 files changed, 420 insertions, 310 deletions
diff --git a/lib/libc/amd64/string/bcopy.S b/lib/libc/amd64/string/bcopy.S
index eca7a23d7721..9446e75b8053 100644
--- a/lib/libc/amd64/string/bcopy.S
+++ b/lib/libc/amd64/string/bcopy.S
@@ -60,7 +60,6 @@ ENTRY(bcopy)
subq %rsi,%r8
cmpq %rcx,%r8 /* overlapping? */
jb 1f
- cld /* nope, copy forwards. */
shrq $3,%rcx /* copy by words */
rep
movsq
diff --git a/lib/libusb/libusb10_io.c b/lib/libusb/libusb10_io.c
index 13c9e786c00e..53f5b040436d 100644
--- a/lib/libusb/libusb10_io.c
+++ b/lib/libusb/libusb10_io.c
@@ -312,6 +312,9 @@ libusb_wait_for_event(libusb_context *ctx, struct timeval *tv)
if (tv == NULL) {
pthread_cond_wait(&ctx->ctx_cond,
&ctx->ctx_lock);
+ /* try to grab polling of actual events, if any */
+ if (ctx->ctx_handler == NO_THREAD)
+ ctx->ctx_handler = pthread_self();
return (0);
}
err = clock_gettime(CLOCK_MONOTONIC, &ts);
@@ -330,6 +333,9 @@ libusb_wait_for_event(libusb_context *ctx, struct timeval *tv)
}
err = pthread_cond_timedwait(&ctx->ctx_cond,
&ctx->ctx_lock, &ts);
+ /* try to grab polling of actual events, if any */
+ if (ctx->ctx_handler == NO_THREAD)
+ ctx->ctx_handler = pthread_self();
if (err == ETIMEDOUT)
return (1);
diff --git a/sbin/init/rc.d/ldconfig b/sbin/init/rc.d/ldconfig
index 2d2bd143de73..9e5e02ab29d5 100755
--- a/sbin/init/rc.d/ldconfig
+++ b/sbin/init/rc.d/ldconfig
@@ -41,7 +41,7 @@ ldconfig_start()
${ldconfig} -elf ${_ins} ${_LDC}
case `sysctl -n hw.machine_arch` in
- amd64|powerpc64)
+ amd64|mips64|powerpc64)
for i in ${ldconfig_local32_dirs}; do
if [ -d "${i}" ]; then
_files=`find ${i} -type f`
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 61dfd2607b40..d5a79e453207 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -1807,7 +1807,6 @@ pmap_invalidate_page(pmap_t pmap, vm_offset_t va)
("pmap_invalidate_page: invalid type %d", pmap->pm_type));
sched_pin();
- smp_masked_invlpg(pmap_invalidate_cpu_mask(pmap), va, pmap);
if (pmap == kernel_pmap) {
invlpg(va);
} else {
@@ -1815,6 +1814,7 @@ pmap_invalidate_page(pmap_t pmap, vm_offset_t va)
invlpg(va);
pmap_invalidate_page_mode(pmap, va);
}
+ smp_masked_invlpg(pmap_invalidate_cpu_mask(pmap), va, pmap);
sched_unpin();
}
@@ -1910,7 +1910,6 @@ pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
("pmap_invalidate_range: invalid type %d", pmap->pm_type));
sched_pin();
- smp_masked_invlpg_range(pmap_invalidate_cpu_mask(pmap), sva, eva, pmap);
if (pmap == kernel_pmap) {
for (addr = sva; addr < eva; addr += PAGE_SIZE)
invlpg(addr);
@@ -1921,6 +1920,7 @@ pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
}
pmap_invalidate_range_mode(pmap, sva, eva);
}
+ smp_masked_invlpg_range(pmap_invalidate_cpu_mask(pmap), sva, eva, pmap);
sched_unpin();
}
@@ -2021,8 +2021,8 @@ pmap_invalidate_all(pmap_t pmap)
("pmap_invalidate_all: invalid type %d", pmap->pm_type));
sched_pin();
- smp_masked_invltlb(pmap_invalidate_cpu_mask(pmap), pmap);
pmap_invalidate_all_mode(pmap);
+ smp_masked_invltlb(pmap_invalidate_cpu_mask(pmap), pmap);
sched_unpin();
}
diff --git a/sys/amd64/amd64/support.S b/sys/amd64/amd64/support.S
index be92ff2d7234..6fdb71cb9207 100644
--- a/sys/amd64/amd64/support.S
+++ b/sys/amd64/amd64/support.S
@@ -1097,7 +1097,7 @@ copyinstr_toolong_smap:
copyinstr_toolong:
/* rdx is zero - return ENAMETOOLONG or EFAULT */
movq $VM_MAXUSER_ADDRESS,%rax
- cmpq %rax,%rsi
+ cmpq %rax,%rdi
jae cpystrflt
movl $ENAMETOOLONG,%eax
jmp cpystrflt_x
diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c
index 286b4358f4a5..b9e7826e3435 100644
--- a/sys/arm64/arm64/identcpu.c
+++ b/sys/arm64/arm64/identcpu.c
@@ -186,6 +186,32 @@ struct mrs_field {
#define MRS_FIELD_END { .type = MRS_INVALID, }
+static struct mrs_field id_aa64isar0_fields[] = {
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_DP_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_SM4_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_SM3_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_SHA3_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_RDM_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_ATOMIC_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_CRC32_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_SHA2_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_SHA1_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR0_AES_SHIFT),
+ MRS_FIELD_END,
+};
+
+static struct mrs_field id_aa64isar1_fields[] = {
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_GPI_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_GPA_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_LRCPC_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_FCMA_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_JSCVT_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_API_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_APA_SHIFT),
+ MRS_FIELD(false, MRS_LOWER, ID_AA64ISAR1_DPB_SHIFT),
+ MRS_FIELD_END,
+};
+
static struct mrs_field id_aa64pfr0_fields[] = {
MRS_FIELD(false, MRS_EXACT, ID_AA64PFR0_SVE_SHIFT),
MRS_FIELD(false, MRS_EXACT, ID_AA64PFR0_RAS_SHIFT),
@@ -218,6 +244,18 @@ struct mrs_user_reg {
};
static struct mrs_user_reg user_regs[] = {
+ { /* id_aa64isar0_el1 */
+ .CRm = 6,
+ .Op2 = 0,
+ .offset = __offsetof(struct cpu_desc, id_aa64isar0),
+ .fields = id_aa64isar0_fields,
+ },
+ { /* id_aa64isar1_el1 */
+ .CRm = 6,
+ .Op2 = 1,
+ .offset = __offsetof(struct cpu_desc, id_aa64isar1),
+ .fields = id_aa64isar1_fields,
+ },
{ /* id_aa64pfr0_el1 */
.CRm = 4,
.Op2 = 0,
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
index 3fad5a76957b..cf75ab0856c0 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
@@ -958,6 +958,15 @@ vdev_queue_change_io_priority(zio_t *zio, zio_priority_t priority)
vdev_queue_t *vq = &zio->io_vd->vdev_queue;
avl_tree_t *tree;
+ /*
+ * ZIO_PRIORITY_NOW is used by the vdev cache code and the aggregate zio
+ * code to issue IOs without adding them to the vdev queue. In this
+ * case, the zio is already going to be issued as quickly as possible
+ * and so it doesn't need any reprioitization to help.
+ */
+ if (zio->io_priority == ZIO_PRIORITY_NOW)
+ return;
+
ASSERT3U(zio->io_priority, <, ZIO_PRIORITY_NUM_QUEUEABLE);
ASSERT3U(priority, <, ZIO_PRIORITY_NUM_QUEUEABLE);
diff --git a/sys/compat/freebsd32/freebsd32_ioctl.c b/sys/compat/freebsd32/freebsd32_ioctl.c
index a3226cdcd9a0..b181913b6688 100644
--- a/sys/compat/freebsd32/freebsd32_ioctl.c
+++ b/sys/compat/freebsd32/freebsd32_ioctl.c
@@ -58,9 +58,6 @@ __FBSDID("$FreeBSD$");
CTASSERT(sizeof(struct ioc_read_toc_entry32) == 8);
CTASSERT(sizeof(struct mem_range_op32) == 12);
-CTASSERT(sizeof(struct pci_conf_io32) == 36);
-CTASSERT(sizeof(struct pci_match_conf32) == 44);
-CTASSERT(sizeof(struct pci_conf32) == 44);
static int
freebsd32_ioctl_ioc_read_toc(struct thread *td,
@@ -148,108 +145,6 @@ freebsd32_ioctl_memrange(struct thread *td,
}
static int
-freebsd32_ioctl_pciocgetconf(struct thread *td,
- struct freebsd32_ioctl_args *uap, struct file *fp)
-{
- struct pci_conf_io pci;
- struct pci_conf_io32 pci32;
- struct pci_match_conf32 pmc32;
- struct pci_match_conf32 *pmc32p;
- struct pci_match_conf pmc;
- struct pci_match_conf *pmcp;
- struct pci_conf32 pc32;
- struct pci_conf32 *pc32p;
- struct pci_conf pc;
- struct pci_conf *pcp;
- u_int32_t i;
- u_int32_t npat_to_convert;
- u_int32_t nmatch_to_convert;
- vm_offset_t addr;
- int error;
-
- if ((error = copyin(uap->data, &pci32, sizeof(pci32))) != 0)
- return (error);
-
- CP(pci32, pci, num_patterns);
- CP(pci32, pci, offset);
- CP(pci32, pci, generation);
-
- npat_to_convert = pci32.pat_buf_len / sizeof(struct pci_match_conf32);
- pci.pat_buf_len = npat_to_convert * sizeof(struct pci_match_conf);
- pci.patterns = NULL;
- nmatch_to_convert = pci32.match_buf_len / sizeof(struct pci_conf32);
- pci.match_buf_len = nmatch_to_convert * sizeof(struct pci_conf);
- pci.matches = NULL;
-
- if ((error = copyout_map(td, &addr, pci.pat_buf_len)) != 0)
- goto cleanup;
- pci.patterns = (struct pci_match_conf *)addr;
- if ((error = copyout_map(td, &addr, pci.match_buf_len)) != 0)
- goto cleanup;
- pci.matches = (struct pci_conf *)addr;
-
- npat_to_convert = min(npat_to_convert, pci.num_patterns);
-
- for (i = 0, pmc32p = (struct pci_match_conf32 *)PTRIN(pci32.patterns),
- pmcp = pci.patterns;
- i < npat_to_convert; i++, pmc32p++, pmcp++) {
- if ((error = copyin(pmc32p, &pmc32, sizeof(pmc32))) != 0)
- goto cleanup;
- CP(pmc32,pmc,pc_sel);
- strlcpy(pmc.pd_name, pmc32.pd_name, sizeof(pmc.pd_name));
- CP(pmc32,pmc,pd_unit);
- CP(pmc32,pmc,pc_vendor);
- CP(pmc32,pmc,pc_device);
- CP(pmc32,pmc,pc_class);
- CP(pmc32,pmc,flags);
- if ((error = copyout(&pmc, pmcp, sizeof(pmc))) != 0)
- goto cleanup;
- }
-
- if ((error = fo_ioctl(fp, PCIOCGETCONF, (caddr_t)&pci,
- td->td_ucred, td)) != 0)
- goto cleanup;
-
- nmatch_to_convert = min(nmatch_to_convert, pci.num_matches);
-
- for (i = 0, pcp = pci.matches,
- pc32p = (struct pci_conf32 *)PTRIN(pci32.matches);
- i < nmatch_to_convert; i++, pcp++, pc32p++) {
- if ((error = copyin(pcp, &pc, sizeof(pc))) != 0)
- goto cleanup;
- CP(pc,pc32,pc_sel);
- CP(pc,pc32,pc_hdr);
- CP(pc,pc32,pc_subvendor);
- CP(pc,pc32,pc_subdevice);
- CP(pc,pc32,pc_vendor);
- CP(pc,pc32,pc_device);
- CP(pc,pc32,pc_class);
- CP(pc,pc32,pc_subclass);
- CP(pc,pc32,pc_progif);
- CP(pc,pc32,pc_revid);
- strlcpy(pc32.pd_name, pc.pd_name, sizeof(pc32.pd_name));
- CP(pc,pc32,pd_unit);
- if ((error = copyout(&pc32, pc32p, sizeof(pc32))) != 0)
- goto cleanup;
- }
-
- CP(pci, pci32, num_matches);
- CP(pci, pci32, offset);
- CP(pci, pci32, generation);
- CP(pci, pci32, status);
-
- error = copyout(&pci32, uap->data, sizeof(pci32));
-
-cleanup:
- if (pci.patterns)
- copyout_unmap(td, (vm_offset_t)pci.patterns, pci.pat_buf_len);
- if (pci.matches)
- copyout_unmap(td, (vm_offset_t)pci.matches, pci.match_buf_len);
-
- return (error);
-}
-
-static int
freebsd32_ioctl_barmmap(struct thread *td,
struct freebsd32_ioctl_args *uap, struct file *fp)
{
@@ -382,10 +277,6 @@ freebsd32_ioctl(struct thread *td, struct freebsd32_ioctl_args *uap)
error = freebsd32_ioctl_memrange(td, uap, fp);
break;
- case PCIOCGETCONF_32:
- error = freebsd32_ioctl_pciocgetconf(td, uap, fp);
- break;
-
case SG_IO_32:
error = freebsd32_ioctl_sg(td, uap, fp);
break;
diff --git a/sys/compat/freebsd32/freebsd32_ioctl.h b/sys/compat/freebsd32/freebsd32_ioctl.h
index fc9c93a7a29b..c19c27e3618a 100644
--- a/sys/compat/freebsd32/freebsd32_ioctl.h
+++ b/sys/compat/freebsd32/freebsd32_ioctl.h
@@ -56,45 +56,6 @@ struct mem_range_op32
int mo_arg[2];
};
-struct pci_conf32 {
- struct pcisel pc_sel; /* domain+bus+slot+function */
- u_int8_t pc_hdr; /* PCI header type */
- u_int16_t pc_subvendor; /* card vendor ID */
- u_int16_t pc_subdevice; /* card device ID, assigned by
- card vendor */
- u_int16_t pc_vendor; /* chip vendor ID */
- u_int16_t pc_device; /* chip device ID, assigned by
- chip vendor */
- u_int8_t pc_class; /* chip PCI class */
- u_int8_t pc_subclass; /* chip PCI subclass */
- u_int8_t pc_progif; /* chip PCI programming interface */
- u_int8_t pc_revid; /* chip revision ID */
- char pd_name[PCI_MAXNAMELEN + 1]; /* device name */
- u_int32_t pd_unit; /* device unit number */
-};
-
-struct pci_match_conf32 {
- struct pcisel pc_sel; /* domain+bus+slot+function */
- char pd_name[PCI_MAXNAMELEN + 1]; /* device name */
- u_int32_t pd_unit; /* Unit number */
- u_int16_t pc_vendor; /* PCI Vendor ID */
- u_int16_t pc_device; /* PCI Device ID */
- u_int8_t pc_class; /* PCI class */
- u_int32_t flags; /* Matching expression */
-};
-
-struct pci_conf_io32 {
- u_int32_t pat_buf_len; /* pattern buffer length */
- u_int32_t num_patterns; /* number of patterns */
- caddr_t32 patterns; /* struct pci_match_conf ptr */
- u_int32_t match_buf_len; /* match buffer length */
- u_int32_t num_matches; /* number of matches returned */
- caddr_t32 matches; /* struct pci_conf ptr */
- u_int32_t offset; /* offset into device list */
- u_int32_t generation; /* device list generation */
- u_int32_t status; /* request status */
-};
-
struct pci_bar_mmap32 {
uint32_t pbm_map_base;
uint32_t pbm_map_length;
@@ -110,7 +71,6 @@ struct pci_bar_mmap32 {
#define FIODGNAME_32 _IOW('f', 120, struct fiodgname_arg32)
#define MEMRANGE_GET32 _IOWR('m', 50, struct mem_range_op32)
#define MEMRANGE_SET32 _IOW('m', 51, struct mem_range_op32)
-#define PCIOCGETCONF_32 _IOWR('p', 5, struct pci_conf_io32)
#define SG_IO_32 _IOWR(SGIOC, 0x85, struct sg_io_hdr32)
#define PCIOCBARMMAP_32 _IOWR('p', 8, struct pci_bar_mmap32)
diff --git a/sys/compat/freebsd32/freebsd32_syscall.h b/sys/compat/freebsd32/freebsd32_syscall.h
index 6cc72e423997..66ab072edab8 100644
--- a/sys/compat/freebsd32/freebsd32_syscall.h
+++ b/sys/compat/freebsd32/freebsd32_syscall.h
@@ -171,6 +171,10 @@
#define FREEBSD32_SYS_setgid 181
#define FREEBSD32_SYS_setegid 182
#define FREEBSD32_SYS_seteuid 183
+ /* 184 is obsolete lfs_bmapv */
+ /* 185 is obsolete lfs_markv */
+ /* 186 is obsolete lfs_segclean */
+ /* 187 is obsolete lfs_segwait */
#define FREEBSD32_SYS_freebsd11_freebsd32_stat 188
#define FREEBSD32_SYS_freebsd11_freebsd32_fstat 189
#define FREEBSD32_SYS_freebsd11_freebsd32_lstat 190
@@ -194,6 +198,7 @@
#define FREEBSD32_SYS_freebsd7_freebsd32_semctl 220
#define FREEBSD32_SYS_semget 221
#define FREEBSD32_SYS_semop 222
+ /* 223 is obsolete semconfig */
#define FREEBSD32_SYS_freebsd7_freebsd32_msgctl 224
#define FREEBSD32_SYS_msgget 225
#define FREEBSD32_SYS_freebsd32_msgsnd 226
@@ -300,12 +305,24 @@
#define FREEBSD32_SYS_getresgid 361
#define FREEBSD32_SYS_kqueue 362
#define FREEBSD32_SYS_freebsd11_freebsd32_kevent 363
+ /* 364 is obsolete __cap_get_proc */
+ /* 365 is obsolete __cap_set_proc */
+ /* 366 is obsolete __cap_get_fd */
+ /* 367 is obsolete __cap_get_file */
+ /* 368 is obsolete __cap_set_fd */
+ /* 369 is obsolete __cap_set_file */
#define FREEBSD32_SYS_extattr_set_fd 371
#define FREEBSD32_SYS_extattr_get_fd 372
#define FREEBSD32_SYS_extattr_delete_fd 373
#define FREEBSD32_SYS___setugid 374
+ /* 375 is obsolete nfsclnt */
#define FREEBSD32_SYS_eaccess 376
#define FREEBSD32_SYS_freebsd32_nmount 378
+ /* 379 is obsolete kse_exit */
+ /* 380 is obsolete kse_wakeup */
+ /* 381 is obsolete kse_create */
+ /* 382 is obsolete kse_thr_interrupt */
+ /* 383 is obsolete kse_release */
#define FREEBSD32_SYS_kenv 390
#define FREEBSD32_SYS_lchflags 391
#define FREEBSD32_SYS_uuidgen 392
@@ -343,6 +360,7 @@
#define FREEBSD32_SYS_extattr_list_fd 437
#define FREEBSD32_SYS_extattr_list_file 438
#define FREEBSD32_SYS_extattr_list_link 439
+ /* 440 is obsolete kse_switchin */
#define FREEBSD32_SYS_freebsd32_ksem_timedwait 441
#define FREEBSD32_SYS_freebsd32_thr_suspend 442
#define FREEBSD32_SYS_thr_wake 443
@@ -455,6 +473,8 @@
#define FREEBSD32_SYS_freebsd32_ppoll 545
#define FREEBSD32_SYS_freebsd32_futimens 546
#define FREEBSD32_SYS_freebsd32_utimensat 547
+ /* 548 is obsolete numa_getaffinity */
+ /* 549 is obsolete numa_setaffinity */
#define FREEBSD32_SYS_fdatasync 550
#define FREEBSD32_SYS_freebsd32_fstat 551
#define FREEBSD32_SYS_freebsd32_fstatat 552
diff --git a/sys/compat/freebsd32/freebsd32_syscalls.c b/sys/compat/freebsd32/freebsd32_syscalls.c
index cc554b0efb64..c186771f0704 100644
--- a/sys/compat/freebsd32/freebsd32_syscalls.c
+++ b/sys/compat/freebsd32/freebsd32_syscalls.c
@@ -193,10 +193,10 @@ const char *freebsd32_syscallnames[] = {
"setgid", /* 181 = setgid */
"setegid", /* 182 = setegid */
"seteuid", /* 183 = seteuid */
- "#184", /* 184 = lfs_bmapv */
- "#185", /* 185 = lfs_markv */
- "#186", /* 186 = lfs_segclean */
- "#187", /* 187 = lfs_segwait */
+ "obs_lfs_bmapv", /* 184 = obsolete lfs_bmapv */
+ "obs_lfs_markv", /* 185 = obsolete lfs_markv */
+ "obs_lfs_segclean", /* 186 = obsolete lfs_segclean */
+ "obs_lfs_segwait", /* 187 = obsolete lfs_segwait */
"compat11.freebsd32_stat", /* 188 = freebsd11 freebsd32_stat */
"compat11.freebsd32_fstat", /* 189 = freebsd11 freebsd32_fstat */
"compat11.freebsd32_lstat", /* 190 = freebsd11 freebsd32_lstat */
@@ -232,7 +232,7 @@ const char *freebsd32_syscallnames[] = {
"compat7.freebsd32_semctl", /* 220 = freebsd7 freebsd32_semctl */
"semget", /* 221 = semget */
"semop", /* 222 = semop */
- "#223", /* 223 = semconfig */
+ "obs_semconfig", /* 223 = obsolete semconfig */
"compat7.freebsd32_msgctl", /* 224 = freebsd7 freebsd32_msgctl */
"msgget", /* 225 = msgget */
"freebsd32_msgsnd", /* 226 = freebsd32_msgsnd */
@@ -373,26 +373,26 @@ const char *freebsd32_syscallnames[] = {
"getresgid", /* 361 = getresgid */
"kqueue", /* 362 = kqueue */
"compat11.freebsd32_kevent", /* 363 = freebsd11 freebsd32_kevent */
- "#364", /* 364 = __cap_get_proc */
- "#365", /* 365 = __cap_set_proc */
- "#366", /* 366 = __cap_get_fd */
- "#367", /* 367 = __cap_get_file */
- "#368", /* 368 = __cap_set_fd */
- "#369", /* 369 = __cap_set_file */
+ "obs___cap_get_proc", /* 364 = obsolete __cap_get_proc */
+ "obs___cap_set_proc", /* 365 = obsolete __cap_set_proc */
+ "obs___cap_get_fd", /* 366 = obsolete __cap_get_fd */
+ "obs___cap_get_file", /* 367 = obsolete __cap_get_file */
+ "obs___cap_set_fd", /* 368 = obsolete __cap_set_fd */
+ "obs___cap_set_file", /* 369 = obsolete __cap_set_file */
"#370", /* 370 = nosys */
"extattr_set_fd", /* 371 = extattr_set_fd */
"extattr_get_fd", /* 372 = extattr_get_fd */
"extattr_delete_fd", /* 373 = extattr_delete_fd */
"__setugid", /* 374 = __setugid */
- "#375", /* 375 = nfsclnt */
+ "obs_nfsclnt", /* 375 = obsolete nfsclnt */
"eaccess", /* 376 = eaccess */
"#377", /* 377 = afs_syscall */
"freebsd32_nmount", /* 378 = freebsd32_nmount */
- "#379", /* 379 = kse_exit */
- "#380", /* 380 = kse_wakeup */
- "#381", /* 381 = kse_create */
- "#382", /* 382 = kse_thr_interrupt */
- "#383", /* 383 = kse_release */
+ "obs_kse_exit", /* 379 = obsolete kse_exit */
+ "obs_kse_wakeup", /* 380 = obsolete kse_wakeup */
+ "obs_kse_create", /* 381 = obsolete kse_create */
+ "obs_kse_thr_interrupt", /* 382 = obsolete kse_thr_interrupt */
+ "obs_kse_release", /* 383 = obsolete kse_release */
"#384", /* 384 = __mac_get_proc */
"#385", /* 385 = __mac_set_proc */
"#386", /* 386 = __mac_get_fd */
@@ -449,7 +449,7 @@ const char *freebsd32_syscallnames[] = {
"extattr_list_fd", /* 437 = extattr_list_fd */
"extattr_list_file", /* 438 = extattr_list_file */
"extattr_list_link", /* 439 = extattr_list_link */
- "#440", /* 440 = kse_switchin */
+ "obs_kse_switchin", /* 440 = obsolete kse_switchin */
"freebsd32_ksem_timedwait", /* 441 = freebsd32_ksem_timedwait */
"freebsd32_thr_suspend", /* 442 = freebsd32_thr_suspend */
"thr_wake", /* 443 = thr_wake */
@@ -580,8 +580,8 @@ const char *freebsd32_syscallnames[] = {
"freebsd32_ppoll", /* 545 = freebsd32_ppoll */
"freebsd32_futimens", /* 546 = freebsd32_futimens */
"freebsd32_utimensat", /* 547 = freebsd32_utimensat */
- "#548", /* 548 = numa_getaffinity */
- "#549", /* 549 = numa_setaffinity */
+ "obs_numa_getaffinity", /* 548 = obsolete numa_getaffinity */
+ "obs_numa_setaffinity", /* 549 = obsolete numa_setaffinity */
"fdatasync", /* 550 = fdatasync */
"freebsd32_fstat", /* 551 = freebsd32_fstat */
"freebsd32_fstatat", /* 552 = freebsd32_fstatat */
diff --git a/sys/compat/freebsd32/freebsd32_sysent.c b/sys/compat/freebsd32/freebsd32_sysent.c
index 27caed81eefa..1a6ff314dfa2 100644
--- a/sys/compat/freebsd32/freebsd32_sysent.c
+++ b/sys/compat/freebsd32/freebsd32_sysent.c
@@ -240,10 +240,10 @@ struct sysent freebsd32_sysent[] = {
{ AS(setgid_args), (sy_call_t *)sys_setgid, AUE_SETGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 181 = setgid */
{ AS(setegid_args), (sy_call_t *)sys_setegid, AUE_SETEGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 182 = setegid */
{ AS(seteuid_args), (sy_call_t *)sys_seteuid, AUE_SETEUID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 183 = seteuid */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 184 = lfs_bmapv */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 185 = lfs_markv */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 186 = lfs_segclean */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 187 = lfs_segwait */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 184 = obsolete lfs_bmapv */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 185 = obsolete lfs_markv */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 186 = obsolete lfs_segclean */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 187 = obsolete lfs_segwait */
{ compat11(AS(freebsd11_freebsd32_stat_args),freebsd32_stat), AUE_STAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 188 = freebsd11 freebsd32_stat */
{ compat11(AS(freebsd11_freebsd32_fstat_args),freebsd32_fstat), AUE_FSTAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 189 = freebsd11 freebsd32_fstat */
{ compat11(AS(freebsd11_freebsd32_lstat_args),freebsd32_lstat), AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 190 = freebsd11 freebsd32_lstat */
@@ -279,7 +279,7 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 220 = freebsd7 freebsd32_semctl */
{ AS(semget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 221 = semget */
{ AS(semop_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 222 = semop */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 223 = semconfig */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 223 = obsolete semconfig */
{ 0, (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 224 = freebsd7 freebsd32_msgctl */
{ AS(msgget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 225 = msgget */
{ AS(freebsd32_msgsnd_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 226 = freebsd32_msgsnd */
@@ -420,26 +420,26 @@ struct sysent freebsd32_sysent[] = {
{ AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 361 = getresgid */
{ 0, (sy_call_t *)sys_kqueue, AUE_KQUEUE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 362 = kqueue */
{ compat11(AS(freebsd11_freebsd32_kevent_args),freebsd32_kevent), AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 363 = freebsd11 freebsd32_kevent */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = __cap_get_proc */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = __cap_set_proc */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 366 = __cap_get_fd */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 367 = __cap_get_file */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 368 = __cap_set_fd */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 369 = __cap_set_file */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = obsolete __cap_get_proc */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = obsolete __cap_set_proc */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 366 = obsolete __cap_get_fd */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 367 = obsolete __cap_get_file */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 368 = obsolete __cap_set_fd */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 369 = obsolete __cap_set_file */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 370 = nosys */
{ AS(extattr_set_fd_args), (sy_call_t *)sys_extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 371 = extattr_set_fd */
{ AS(extattr_get_fd_args), (sy_call_t *)sys_extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 372 = extattr_get_fd */
{ AS(extattr_delete_fd_args), (sy_call_t *)sys_extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 373 = extattr_delete_fd */
{ AS(__setugid_args), (sy_call_t *)sys___setugid, AUE_SETUGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 374 = __setugid */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = nfsclnt */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = obsolete nfsclnt */
{ AS(eaccess_args), (sy_call_t *)sys_eaccess, AUE_EACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = eaccess */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 377 = afs_syscall */
{ AS(freebsd32_nmount_args), (sy_call_t *)freebsd32_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = freebsd32_nmount */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = kse_exit */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 380 = kse_wakeup */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 381 = kse_create */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 382 = kse_thr_interrupt */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 383 = kse_release */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = obsolete kse_exit */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 380 = obsolete kse_wakeup */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 381 = obsolete kse_create */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 382 = obsolete kse_thr_interrupt */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 383 = obsolete kse_release */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 384 = __mac_get_proc */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 385 = __mac_set_proc */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 386 = __mac_get_fd */
@@ -496,7 +496,7 @@ struct sysent freebsd32_sysent[] = {
{ AS(extattr_list_fd_args), (sy_call_t *)sys_extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 437 = extattr_list_fd */
{ AS(extattr_list_file_args), (sy_call_t *)sys_extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 438 = extattr_list_file */
{ AS(extattr_list_link_args), (sy_call_t *)sys_extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 439 = extattr_list_link */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 440 = kse_switchin */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 440 = obsolete kse_switchin */
{ AS(freebsd32_ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 441 = freebsd32_ksem_timedwait */
{ AS(freebsd32_thr_suspend_args), (sy_call_t *)freebsd32_thr_suspend, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 442 = freebsd32_thr_suspend */
{ AS(thr_wake_args), (sy_call_t *)sys_thr_wake, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 443 = thr_wake */
@@ -627,8 +627,8 @@ struct sysent freebsd32_sysent[] = {
{ AS(freebsd32_ppoll_args), (sy_call_t *)freebsd32_ppoll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 545 = freebsd32_ppoll */
{ AS(freebsd32_futimens_args), (sy_call_t *)freebsd32_futimens, AUE_FUTIMES, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 546 = freebsd32_futimens */
{ AS(freebsd32_utimensat_args), (sy_call_t *)freebsd32_utimensat, AUE_FUTIMESAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 547 = freebsd32_utimensat */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 548 = numa_getaffinity */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 549 = numa_setaffinity */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 548 = obsolete numa_getaffinity */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 549 = obsolete numa_setaffinity */
{ AS(fdatasync_args), (sy_call_t *)sys_fdatasync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 550 = fdatasync */
{ AS(freebsd32_fstat_args), (sy_call_t *)freebsd32_fstat, AUE_FSTAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 551 = freebsd32_fstat */
{ AS(freebsd32_fstatat_args), (sy_call_t *)freebsd32_fstatat, AUE_FSTATAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 552 = freebsd32_fstatat */
diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master
index 99103a3553b5..9b5aafe41244 100644
--- a/sys/compat/freebsd32/syscalls.master
+++ b/sys/compat/freebsd32/syscalls.master
@@ -343,10 +343,10 @@
181 AUE_SETGID NOPROTO { int setgid(gid_t gid); }
182 AUE_SETEGID NOPROTO { int setegid(gid_t egid); }
183 AUE_SETEUID NOPROTO { int seteuid(uid_t euid); }
-184 AUE_NULL UNIMPL lfs_bmapv
-185 AUE_NULL UNIMPL lfs_markv
-186 AUE_NULL UNIMPL lfs_segclean
-187 AUE_NULL UNIMPL lfs_segwait
+184 AUE_NULL OBSOL lfs_bmapv
+185 AUE_NULL OBSOL lfs_markv
+186 AUE_NULL OBSOL lfs_segclean
+187 AUE_NULL OBSOL lfs_segwait
188 AUE_STAT COMPAT11 { int freebsd32_stat(char *path, \
struct freebsd11_stat32 *ub); }
189 AUE_FSTAT COMPAT11 { int freebsd32_fstat(int fd, \
@@ -414,7 +414,7 @@
int semflg); }
222 AUE_SEMOP NOSTD|NOPROTO { int semop(int semid, \
struct sembuf *sops, u_int nsops); }
-223 AUE_NULL UNIMPL semconfig
+223 AUE_NULL OBSOL semconfig
224 AUE_MSGCTL COMPAT7|NOSTD { int freebsd32_msgctl( \
int msqid, int cmd, \
struct msqid_ds32_old *buf); }
@@ -662,12 +662,12 @@
struct kevent32_freebsd11 *eventlist, \
int nevents, \
const struct timespec32 *timeout); }
-364 AUE_NULL UNIMPL __cap_get_proc
-365 AUE_NULL UNIMPL __cap_set_proc
-366 AUE_NULL UNIMPL __cap_get_fd
-367 AUE_NULL UNIMPL __cap_get_file
-368 AUE_NULL UNIMPL __cap_set_fd
-369 AUE_NULL UNIMPL __cap_set_file
+364 AUE_NULL OBSOL __cap_get_proc
+365 AUE_NULL OBSOL __cap_set_proc
+366 AUE_NULL OBSOL __cap_get_fd
+367 AUE_NULL OBSOL __cap_get_file
+368 AUE_NULL OBSOL __cap_set_fd
+369 AUE_NULL OBSOL __cap_set_file
370 AUE_NULL UNIMPL nosys
371 AUE_EXTATTR_SET_FD NOPROTO { ssize_t extattr_set_fd(int fd, \
int attrnamespace, const char *attrname, \
@@ -679,16 +679,16 @@
int attrnamespace, \
const char *attrname); }
374 AUE_SETUGID NOPROTO { int __setugid(int flag); }
-375 AUE_NULL UNIMPL nfsclnt
+375 AUE_NULL OBSOL nfsclnt
376 AUE_EACCESS NOPROTO { int eaccess(char *path, int amode); }
377 AUE_NULL UNIMPL afs_syscall
378 AUE_NMOUNT STD { int freebsd32_nmount(struct iovec32 *iovp, \
unsigned int iovcnt, int flags); }
-379 AUE_NULL UNIMPL kse_exit
-380 AUE_NULL UNIMPL kse_wakeup
-381 AUE_NULL UNIMPL kse_create
-382 AUE_NULL UNIMPL kse_thr_interrupt
-383 AUE_NULL UNIMPL kse_release
+379 AUE_NULL OBSOL kse_exit
+380 AUE_NULL OBSOL kse_wakeup
+381 AUE_NULL OBSOL kse_create
+382 AUE_NULL OBSOL kse_thr_interrupt
+383 AUE_NULL OBSOL kse_release
384 AUE_NULL UNIMPL __mac_get_proc
385 AUE_NULL UNIMPL __mac_set_proc
386 AUE_NULL UNIMPL __mac_get_fd
@@ -787,7 +787,7 @@
439 AUE_EXTATTR_LIST_LINK NOPROTO { ssize_t extattr_list_link( \
const char *path, int attrnamespace, \
void *data, size_t nbytes); }
-440 AUE_NULL UNIMPL kse_switchin
+440 AUE_NULL OBSOL kse_switchin
441 AUE_SEMWAIT NOSTD { int freebsd32_ksem_timedwait(semid_t id, \
const struct timespec32 *abstime); }
442 AUE_NULL STD { int freebsd32_thr_suspend( \
@@ -1074,8 +1074,8 @@
547 AUE_FUTIMESAT STD { int freebsd32_utimensat(int fd, \
char *path, \
struct timespec *times, int flag); }
-548 AUE_NULL UNIMPL numa_getaffinity
-549 AUE_NULL UNIMPL numa_setaffinity
+548 AUE_NULL OBSOL numa_getaffinity
+549 AUE_NULL OBSOL numa_setaffinity
550 AUE_FSYNC NOPROTO { int fdatasync(int fd); }
551 AUE_FSTAT STD { int freebsd32_fstat(int fd, \
struct stat32 *ub); }
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index e0cf2cfa9c13..5e749d52126d 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -46,7 +46,7 @@
TYPE="FreeBSD"
REVISION="12.0"
-BRANCH="ALPHA7"
+BRANCH="ALPHA8"
if [ -n "${BRANCH_OVERRIDE}" ]; then
BRANCH=${BRANCH_OVERRIDE}
fi
diff --git a/sys/dev/pci/pci_user.c b/sys/dev/pci/pci_user.c
index 4e40a8167362..380beff0d310 100644
--- a/sys/dev/pci/pci_user.c
+++ b/sys/dev/pci/pci_user.c
@@ -66,6 +66,49 @@ __FBSDID("$FreeBSD$");
#include "pcib_if.h"
#include "pci_if.h"
+#ifdef COMPAT_FREEBSD32
+struct pci_conf32 {
+ struct pcisel pc_sel; /* domain+bus+slot+function */
+ u_int8_t pc_hdr; /* PCI header type */
+ u_int16_t pc_subvendor; /* card vendor ID */
+ u_int16_t pc_subdevice; /* card device ID, assigned by
+ card vendor */
+ u_int16_t pc_vendor; /* chip vendor ID */
+ u_int16_t pc_device; /* chip device ID, assigned by
+ chip vendor */
+ u_int8_t pc_class; /* chip PCI class */
+ u_int8_t pc_subclass; /* chip PCI subclass */
+ u_int8_t pc_progif; /* chip PCI programming interface */
+ u_int8_t pc_revid; /* chip revision ID */
+ char pd_name[PCI_MAXNAMELEN + 1]; /* device name */
+ u_int32_t pd_unit; /* device unit number */
+};
+
+struct pci_match_conf32 {
+ struct pcisel pc_sel; /* domain+bus+slot+function */
+ char pd_name[PCI_MAXNAMELEN + 1]; /* device name */
+ u_int32_t pd_unit; /* Unit number */
+ u_int16_t pc_vendor; /* PCI Vendor ID */
+ u_int16_t pc_device; /* PCI Device ID */
+ u_int8_t pc_class; /* PCI class */
+ u_int32_t flags; /* Matching expression */
+};
+
+struct pci_conf_io32 {
+ u_int32_t pat_buf_len; /* pattern buffer length */
+ u_int32_t num_patterns; /* number of patterns */
+ u_int32_t patterns; /* struct pci_match_conf ptr */
+ u_int32_t match_buf_len; /* match buffer length */
+ u_int32_t num_matches; /* number of matches returned */
+ u_int32_t matches; /* struct pci_conf ptr */
+ u_int32_t offset; /* offset into device list */
+ u_int32_t generation; /* device list generation */
+ u_int32_t status; /* request status */
+};
+
+#define PCIOCGETCONF32 _IOC_NEWTYPE(PCIOCGETCONF, struct pci_conf_io32)
+#endif
+
/*
* This is the user interface to PCI configuration space.
*/
@@ -175,6 +218,73 @@ pci_conf_match_native(struct pci_match_conf *matches, int num_matches,
return(1);
}
+#ifdef COMPAT_FREEBSD32
+static int
+pci_conf_match32(struct pci_match_conf32 *matches, int num_matches,
+ struct pci_conf *match_buf)
+{
+ int i;
+
+ if ((matches == NULL) || (match_buf == NULL) || (num_matches <= 0))
+ return(1);
+
+ for (i = 0; i < num_matches; i++) {
+ /*
+ * I'm not sure why someone would do this...but...
+ */
+ if (matches[i].flags == PCI_GETCONF_NO_MATCH)
+ continue;
+
+ /*
+ * Look at each of the match flags. If it's set, do the
+ * comparison. If the comparison fails, we don't have a
+ * match, go on to the next item if there is one.
+ */
+ if (((matches[i].flags & PCI_GETCONF_MATCH_DOMAIN) != 0)
+ && (match_buf->pc_sel.pc_domain !=
+ matches[i].pc_sel.pc_domain))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_BUS) != 0)
+ && (match_buf->pc_sel.pc_bus != matches[i].pc_sel.pc_bus))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_DEV) != 0)
+ && (match_buf->pc_sel.pc_dev != matches[i].pc_sel.pc_dev))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_FUNC) != 0)
+ && (match_buf->pc_sel.pc_func != matches[i].pc_sel.pc_func))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_VENDOR) != 0)
+ && (match_buf->pc_vendor != matches[i].pc_vendor))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_DEVICE) != 0)
+ && (match_buf->pc_device != matches[i].pc_device))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_CLASS) != 0)
+ && (match_buf->pc_class != matches[i].pc_class))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_UNIT) != 0)
+ && (match_buf->pd_unit != matches[i].pd_unit))
+ continue;
+
+ if (((matches[i].flags & PCI_GETCONF_MATCH_NAME) != 0)
+ && (strncmp(matches[i].pd_name, match_buf->pd_name,
+ sizeof(match_buf->pd_name)) != 0))
+ continue;
+
+ return(0);
+ }
+
+ return(1);
+}
+#endif /* COMPAT_FREEBSD32 */
+
#if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \
defined(COMPAT_FREEBSD6)
#define PRE7_COMPAT
@@ -259,20 +369,6 @@ struct pci_match_conf_old32 {
pci_getconf_flags_old flags; /* Matching expression */
};
-struct pci_conf_io32 {
- uint32_t pat_buf_len; /* pattern buffer length */
- uint32_t num_patterns; /* number of patterns */
- uint32_t patterns; /* pattern buffer
- (struct pci_match_conf_old32 *) */
- uint32_t match_buf_len; /* match buffer length */
- uint32_t num_matches; /* number of matches returned */
- uint32_t matches; /* match buffer
- (struct pci_conf_old32 *) */
- uint32_t offset; /* offset into device list */
- uint32_t generation; /* device list generation */
- pci_getconf_status status; /* request status */
-};
-
#define PCIOCGETCONF_OLD32 _IOWR('p', 1, struct pci_conf_io32)
#endif /* COMPAT_FREEBSD32 */
@@ -411,6 +507,9 @@ pci_conf_match_old32(struct pci_match_conf_old32 *matches, int num_matches,
union pci_conf_union {
struct pci_conf pc;
+#ifdef COMPAT_FREEBSD32
+ struct pci_conf32 pc32;
+#endif
#ifdef PRE7_COMPAT
struct pci_conf_old pco;
#ifdef COMPAT_FREEBSD32
@@ -428,6 +527,11 @@ pci_conf_match(u_long cmd, struct pci_match_conf *matches, int num_matches,
case PCIOCGETCONF:
return (pci_conf_match_native(
(struct pci_match_conf *)matches, num_matches, match_buf));
+#ifdef COMPAT_FREEBSD32
+ case PCIOCGETCONF32:
+ return (pci_conf_match32((struct pci_match_conf32 *)matches,
+ num_matches, match_buf));
+#endif
#ifdef PRE7_COMPAT
case PCIOCGETCONF_OLD:
return (pci_conf_match_old(
@@ -544,6 +648,10 @@ pci_match_conf_size(u_long cmd)
switch (cmd) {
case PCIOCGETCONF:
return (sizeof(struct pci_match_conf));
+#ifdef COMPAT_FREEBSD32
+ case PCIOCGETCONF32:
+ return (sizeof(struct pci_match_conf32));
+#endif
#ifdef PRE7_COMPAT
case PCIOCGETCONF_OLD:
return (sizeof(struct pci_match_conf_old));
@@ -565,6 +673,10 @@ pci_conf_size(u_long cmd)
switch (cmd) {
case PCIOCGETCONF:
return (sizeof(struct pci_conf));
+#ifdef COMPAT_FREEBSD32
+ case PCIOCGETCONF32:
+ return (sizeof(struct pci_conf32));
+#endif
#ifdef PRE7_COMPAT
case PCIOCGETCONF_OLD:
return (sizeof(struct pci_conf_old));
@@ -582,7 +694,7 @@ pci_conf_size(u_long cmd)
static void
pci_conf_io_init(struct pci_conf_io *cio, caddr_t data, u_long cmd)
{
-#if defined(PRE7_COMPAT) && defined(COMPAT_FREEBSD32)
+#if defined(COMPAT_FREEBSD32)
struct pci_conf_io32 *cio32;
#endif
@@ -594,8 +706,11 @@ pci_conf_io_init(struct pci_conf_io *cio, caddr_t data, u_long cmd)
*cio = *(struct pci_conf_io *)data;
return;
-#if defined(PRE7_COMPAT) && defined(COMPAT_FREEBSD32)
+#ifdef COMPAT_FREEBSD32
+ case PCIOCGETCONF32:
+#ifdef PRE7_COMPAT
case PCIOCGETCONF_OLD32:
+#endif
cio32 = (struct pci_conf_io32 *)data;
cio->pat_buf_len = cio32->pat_buf_len;
cio->num_patterns = cio32->num_patterns;
@@ -620,7 +735,7 @@ pci_conf_io_update_data(const struct pci_conf_io *cio, caddr_t data,
u_long cmd)
{
struct pci_conf_io *d_cio;
-#if defined(PRE7_COMPAT) && defined(COMPAT_FREEBSD32)
+#if defined(COMPAT_FREEBSD32)
struct pci_conf_io32 *cio32;
#endif
@@ -636,8 +751,11 @@ pci_conf_io_update_data(const struct pci_conf_io *cio, caddr_t data,
d_cio->num_matches = cio->num_matches;
return;
-#if defined(PRE7_COMPAT) && defined(COMPAT_FREEBSD32)
+#ifdef COMPAT_FREEBSD32
+ case PCIOCGETCONF32:
+#ifdef PRE7_COMPAT
case PCIOCGETCONF_OLD32:
+#endif
cio32 = (struct pci_conf_io32 *)data;
cio32->status = cio->status;
@@ -665,6 +783,24 @@ pci_conf_for_copyout(const struct pci_conf *pcp, union pci_conf_union *pcup,
pcup->pc = *pcp;
return;
+#ifdef COMPAT_FREEBSD32
+ case PCIOCGETCONF32:
+ pcup->pc32.pc_sel = pcp->pc_sel;
+ pcup->pc32.pc_hdr = pcp->pc_hdr;
+ pcup->pc32.pc_subvendor = pcp->pc_subvendor;
+ pcup->pc32.pc_subdevice = pcp->pc_subdevice;
+ pcup->pc32.pc_vendor = pcp->pc_vendor;
+ pcup->pc32.pc_device = pcp->pc_device;
+ pcup->pc32.pc_class = pcp->pc_class;
+ pcup->pc32.pc_subclass = pcp->pc_subclass;
+ pcup->pc32.pc_progif = pcp->pc_progif;
+ pcup->pc32.pc_revid = pcp->pc_revid;
+ strlcpy(pcup->pc32.pd_name, pcp->pd_name,
+ sizeof(pcup->pc32.pd_name));
+ pcup->pc32.pd_unit = (uint32_t)pcp->pd_unit;
+ return;
+#endif
+
#ifdef PRE7_COMPAT
#ifdef COMPAT_FREEBSD32
case PCIOCGETCONF_OLD32:
diff --git a/sys/dev/sdhci/sdhci_acpi.c b/sys/dev/sdhci/sdhci_acpi.c
index 844be21d64bc..c202ba054cfc 100644
--- a/sys/dev/sdhci/sdhci_acpi.c
+++ b/sys/dev/sdhci/sdhci_acpi.c
@@ -79,6 +79,8 @@ static const struct sdhci_acpi_device {
SDHCI_QUIRK_MMC_DDR52 |
SDHCI_QUIRK_CAPS_BIT63_FOR_MMC_HS400 |
SDHCI_QUIRK_PRESET_VALUE_BROKEN },
+ { "AMDI0040", 0, "AMD eMMC 5.0 Controller",
+ SDHCI_QUIRK_32BIT_DMA_SIZE },
{ NULL, 0, NULL, 0}
};
@@ -87,6 +89,7 @@ static char *sdhci_ids[] = {
"80860F16",
"80865ACA",
"80865ACC",
+ "AMDI0040",
NULL
};
diff --git a/sys/kern/init_sysent.c b/sys/kern/init_sysent.c
index 5ea572ff0381..885b5dc6f030 100644
--- a/sys/kern/init_sysent.c
+++ b/sys/kern/init_sysent.c
@@ -233,10 +233,10 @@ struct sysent sysent[] = {
{ AS(setgid_args), (sy_call_t *)sys_setgid, AUE_SETGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 181 = setgid */
{ AS(setegid_args), (sy_call_t *)sys_setegid, AUE_SETEGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 182 = setegid */
{ AS(seteuid_args), (sy_call_t *)sys_seteuid, AUE_SETEUID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 183 = seteuid */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 184 = lfs_bmapv */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 185 = lfs_markv */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 186 = lfs_segclean */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 187 = lfs_segwait */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 184 = obsolete lfs_bmapv */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 185 = obsolete lfs_markv */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 186 = obsolete lfs_segclean */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 187 = obsolete lfs_segwait */
{ compat11(AS(freebsd11_stat_args),stat), AUE_STAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 188 = freebsd11 stat */
{ compat11(AS(freebsd11_fstat_args),fstat), AUE_FSTAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 189 = freebsd11 fstat */
{ compat11(AS(freebsd11_lstat_args),lstat), AUE_LSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 190 = freebsd11 lstat */
@@ -272,7 +272,7 @@ struct sysent sysent[] = {
{ 0, (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 220 = freebsd7 __semctl */
{ AS(semget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 221 = semget */
{ AS(semop_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 222 = semop */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 223 = semconfig */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 223 = obsolete semconfig */
{ 0, (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 224 = freebsd7 msgctl */
{ AS(msgget_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 225 = msgget */
{ AS(msgsnd_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 226 = msgsnd */
@@ -413,26 +413,26 @@ struct sysent sysent[] = {
{ AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 361 = getresgid */
{ 0, (sy_call_t *)sys_kqueue, AUE_KQUEUE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 362 = kqueue */
{ compat11(AS(freebsd11_kevent_args),kevent), AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 363 = freebsd11 kevent */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = __cap_get_proc */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = __cap_set_proc */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 366 = __cap_get_fd */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 367 = __cap_get_file */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 368 = __cap_set_fd */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 369 = __cap_set_file */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 364 = obsolete __cap_get_proc */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 365 = obsolete __cap_set_proc */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 366 = obsolete __cap_get_fd */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 367 = obsolete __cap_get_file */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 368 = obsolete __cap_set_fd */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 369 = obsolete __cap_set_file */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 370 = nosys */
{ AS(extattr_set_fd_args), (sy_call_t *)sys_extattr_set_fd, AUE_EXTATTR_SET_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 371 = extattr_set_fd */
{ AS(extattr_get_fd_args), (sy_call_t *)sys_extattr_get_fd, AUE_EXTATTR_GET_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 372 = extattr_get_fd */
{ AS(extattr_delete_fd_args), (sy_call_t *)sys_extattr_delete_fd, AUE_EXTATTR_DELETE_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 373 = extattr_delete_fd */
{ AS(__setugid_args), (sy_call_t *)sys___setugid, AUE_SETUGID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 374 = __setugid */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = nfsclnt */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 375 = obsolete nfsclnt */
{ AS(eaccess_args), (sy_call_t *)sys_eaccess, AUE_EACCESS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 376 = eaccess */
{ AS(afs3_syscall_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 377 = afs3_syscall */
{ AS(nmount_args), (sy_call_t *)sys_nmount, AUE_NMOUNT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 378 = nmount */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = kse_exit */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 380 = kse_wakeup */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 381 = kse_create */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 382 = kse_thr_interrupt */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 383 = kse_release */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 379 = obsolete kse_exit */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 380 = obsolete kse_wakeup */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 381 = obsolete kse_create */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 382 = obsolete kse_thr_interrupt */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 383 = obsolete kse_release */
{ AS(__mac_get_proc_args), (sy_call_t *)sys___mac_get_proc, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 384 = __mac_get_proc */
{ AS(__mac_set_proc_args), (sy_call_t *)sys___mac_set_proc, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 385 = __mac_set_proc */
{ AS(__mac_get_fd_args), (sy_call_t *)sys___mac_get_fd, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 386 = __mac_get_fd */
@@ -489,7 +489,7 @@ struct sysent sysent[] = {
{ AS(extattr_list_fd_args), (sy_call_t *)sys_extattr_list_fd, AUE_EXTATTR_LIST_FD, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 437 = extattr_list_fd */
{ AS(extattr_list_file_args), (sy_call_t *)sys_extattr_list_file, AUE_EXTATTR_LIST_FILE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 438 = extattr_list_file */
{ AS(extattr_list_link_args), (sy_call_t *)sys_extattr_list_link, AUE_EXTATTR_LIST_LINK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 439 = extattr_list_link */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 440 = kse_switchin */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 440 = obsolete kse_switchin */
{ AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 441 = ksem_timedwait */
{ AS(thr_suspend_args), (sy_call_t *)sys_thr_suspend, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 442 = thr_suspend */
{ AS(thr_wake_args), (sy_call_t *)sys_thr_wake, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 443 = thr_wake */
@@ -597,8 +597,8 @@ struct sysent sysent[] = {
{ AS(ppoll_args), (sy_call_t *)sys_ppoll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 545 = ppoll */
{ AS(futimens_args), (sy_call_t *)sys_futimens, AUE_FUTIMES, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 546 = futimens */
{ AS(utimensat_args), (sy_call_t *)sys_utimensat, AUE_FUTIMESAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 547 = utimensat */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 548 = numa_getaffinity */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 549 = numa_setaffinity */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 548 = obsolete numa_getaffinity */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 549 = obsolete numa_setaffinity */
{ AS(fdatasync_args), (sy_call_t *)sys_fdatasync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 550 = fdatasync */
{ AS(fstat_args), (sy_call_t *)sys_fstat, AUE_FSTAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 551 = fstat */
{ AS(fstatat_args), (sy_call_t *)sys_fstatat, AUE_FSTATAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 552 = fstatat */
diff --git a/sys/kern/syscalls.c b/sys/kern/syscalls.c
index a107b5571b3c..8e74163fe6d8 100644
--- a/sys/kern/syscalls.c
+++ b/sys/kern/syscalls.c
@@ -190,10 +190,10 @@ const char *syscallnames[] = {
"setgid", /* 181 = setgid */
"setegid", /* 182 = setegid */
"seteuid", /* 183 = seteuid */
- "#184", /* 184 = lfs_bmapv */
- "#185", /* 185 = lfs_markv */
- "#186", /* 186 = lfs_segclean */
- "#187", /* 187 = lfs_segwait */
+ "obs_lfs_bmapv", /* 184 = obsolete lfs_bmapv */
+ "obs_lfs_markv", /* 185 = obsolete lfs_markv */
+ "obs_lfs_segclean", /* 186 = obsolete lfs_segclean */
+ "obs_lfs_segwait", /* 187 = obsolete lfs_segwait */
"compat11.stat", /* 188 = freebsd11 stat */
"compat11.fstat", /* 189 = freebsd11 fstat */
"compat11.lstat", /* 190 = freebsd11 lstat */
@@ -229,7 +229,7 @@ const char *syscallnames[] = {
"compat7.__semctl", /* 220 = freebsd7 __semctl */
"semget", /* 221 = semget */
"semop", /* 222 = semop */
- "#223", /* 223 = semconfig */
+ "obs_semconfig", /* 223 = obsolete semconfig */
"compat7.msgctl", /* 224 = freebsd7 msgctl */
"msgget", /* 225 = msgget */
"msgsnd", /* 226 = msgsnd */
@@ -370,26 +370,26 @@ const char *syscallnames[] = {
"getresgid", /* 361 = getresgid */
"kqueue", /* 362 = kqueue */
"compat11.kevent", /* 363 = freebsd11 kevent */
- "#364", /* 364 = __cap_get_proc */
- "#365", /* 365 = __cap_set_proc */
- "#366", /* 366 = __cap_get_fd */
- "#367", /* 367 = __cap_get_file */
- "#368", /* 368 = __cap_set_fd */
- "#369", /* 369 = __cap_set_file */
+ "obs___cap_get_proc", /* 364 = obsolete __cap_get_proc */
+ "obs___cap_set_proc", /* 365 = obsolete __cap_set_proc */
+ "obs___cap_get_fd", /* 366 = obsolete __cap_get_fd */
+ "obs___cap_get_file", /* 367 = obsolete __cap_get_file */
+ "obs___cap_set_fd", /* 368 = obsolete __cap_set_fd */
+ "obs___cap_set_file", /* 369 = obsolete __cap_set_file */
"#370", /* 370 = nosys */
"extattr_set_fd", /* 371 = extattr_set_fd */
"extattr_get_fd", /* 372 = extattr_get_fd */
"extattr_delete_fd", /* 373 = extattr_delete_fd */
"__setugid", /* 374 = __setugid */
- "#375", /* 375 = nfsclnt */
+ "obs_nfsclnt", /* 375 = obsolete nfsclnt */
"eaccess", /* 376 = eaccess */
"afs3_syscall", /* 377 = afs3_syscall */
"nmount", /* 378 = nmount */
- "#379", /* 379 = kse_exit */
- "#380", /* 380 = kse_wakeup */
- "#381", /* 381 = kse_create */
- "#382", /* 382 = kse_thr_interrupt */
- "#383", /* 383 = kse_release */
+ "obs_kse_exit", /* 379 = obsolete kse_exit */
+ "obs_kse_wakeup", /* 380 = obsolete kse_wakeup */
+ "obs_kse_create", /* 381 = obsolete kse_create */
+ "obs_kse_thr_interrupt", /* 382 = obsolete kse_thr_interrupt */
+ "obs_kse_release", /* 383 = obsolete kse_release */
"__mac_get_proc", /* 384 = __mac_get_proc */
"__mac_set_proc", /* 385 = __mac_set_proc */
"__mac_get_fd", /* 386 = __mac_get_fd */
@@ -446,7 +446,7 @@ const char *syscallnames[] = {
"extattr_list_fd", /* 437 = extattr_list_fd */
"extattr_list_file", /* 438 = extattr_list_file */
"extattr_list_link", /* 439 = extattr_list_link */
- "#440", /* 440 = kse_switchin */
+ "obs_kse_switchin", /* 440 = obsolete kse_switchin */
"ksem_timedwait", /* 441 = ksem_timedwait */
"thr_suspend", /* 442 = thr_suspend */
"thr_wake", /* 443 = thr_wake */
@@ -554,8 +554,8 @@ const char *syscallnames[] = {
"ppoll", /* 545 = ppoll */
"futimens", /* 546 = futimens */
"utimensat", /* 547 = utimensat */
- "#548", /* 548 = numa_getaffinity */
- "#549", /* 549 = numa_setaffinity */
+ "obs_numa_getaffinity", /* 548 = obsolete numa_getaffinity */
+ "obs_numa_setaffinity", /* 549 = obsolete numa_setaffinity */
"fdatasync", /* 550 = fdatasync */
"fstat", /* 551 = fstat */
"fstatat", /* 552 = fstatat */
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index 9ea0f1b5353b..08b254655ee5 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -459,10 +459,10 @@
181 AUE_SETGID STD { int setgid(gid_t gid); }
182 AUE_SETEGID STD { int setegid(gid_t egid); }
183 AUE_SETEUID STD { int seteuid(uid_t euid); }
-184 AUE_NULL UNIMPL lfs_bmapv
-185 AUE_NULL UNIMPL lfs_markv
-186 AUE_NULL UNIMPL lfs_segclean
-187 AUE_NULL UNIMPL lfs_segwait
+184 AUE_NULL OBSOL lfs_bmapv
+185 AUE_NULL OBSOL lfs_markv
+186 AUE_NULL OBSOL lfs_segclean
+187 AUE_NULL OBSOL lfs_segwait
188 AUE_STAT COMPAT11 { int stat(_In_z_ char *path, \
_Out_ struct freebsd11_stat *ub); }
189 AUE_FSTAT COMPAT11 { int fstat(int fd, \
@@ -536,7 +536,7 @@
222 AUE_SEMOP NOSTD { int semop(int semid, \
_In_reads_(nsops) struct sembuf *sops, \
size_t nsops); }
-223 AUE_NULL UNIMPL semconfig
+223 AUE_NULL OBSOL semconfig
224 AUE_MSGCTL COMPAT7|NOSTD { int msgctl(int msqid, int cmd, \
struct msqid_ds_old *buf); }
225 AUE_MSGGET NOSTD { int msgget(key_t key, int msgflg); }
@@ -821,12 +821,12 @@
struct kevent_freebsd11 *eventlist, \
int nevents, \
_In_opt_ const struct timespec *timeout); }
-364 AUE_NULL UNIMPL __cap_get_proc
-365 AUE_NULL UNIMPL __cap_set_proc
-366 AUE_NULL UNIMPL __cap_get_fd
-367 AUE_NULL UNIMPL __cap_get_file
-368 AUE_NULL UNIMPL __cap_set_fd
-369 AUE_NULL UNIMPL __cap_set_file
+364 AUE_NULL OBSOL __cap_get_proc
+365 AUE_NULL OBSOL __cap_set_proc
+366 AUE_NULL OBSOL __cap_get_fd
+367 AUE_NULL OBSOL __cap_get_file
+368 AUE_NULL OBSOL __cap_set_fd
+369 AUE_NULL OBSOL __cap_set_file
370 AUE_NULL UNIMPL nosys
371 AUE_EXTATTR_SET_FD STD { ssize_t extattr_set_fd(int fd, \
int attrnamespace, \
@@ -842,7 +842,7 @@
int attrnamespace, \
_In_z_ const char *attrname); }
374 AUE_SETUGID STD { int __setugid(int flag); }
-375 AUE_NULL UNIMPL nfsclnt
+375 AUE_NULL OBSOL nfsclnt
376 AUE_EACCESS STD { int eaccess(_In_z_ char *path, int amode); }
377 AUE_NULL NOSTD|NOTSTATIC { int afs3_syscall(long syscall, \
long parm1, long parm2, long parm3, \
@@ -850,11 +850,11 @@
378 AUE_NMOUNT STD { int nmount( \
_In_reads_(iovcnt) struct iovec *iovp, \
unsigned int iovcnt, int flags); }
-379 AUE_NULL UNIMPL kse_exit
-380 AUE_NULL UNIMPL kse_wakeup
-381 AUE_NULL UNIMPL kse_create
-382 AUE_NULL UNIMPL kse_thr_interrupt
-383 AUE_NULL UNIMPL kse_release
+379 AUE_NULL OBSOL kse_exit
+380 AUE_NULL OBSOL kse_wakeup
+381 AUE_NULL OBSOL kse_create
+382 AUE_NULL OBSOL kse_thr_interrupt
+383 AUE_NULL OBSOL kse_release
384 AUE_NULL STD { int __mac_get_proc( \
_In_ struct mac *mac_p); }
385 AUE_NULL STD { int __mac_set_proc( \
@@ -994,7 +994,7 @@
int attrnamespace, \
_Out_writes_bytes_opt_(nbytes) \
void *data, size_t nbytes); }
-440 AUE_NULL UNIMPL kse_switchin
+440 AUE_NULL OBSOL kse_switchin
441 AUE_SEMWAIT NOSTD { int ksem_timedwait(semid_t id, \
_In_opt_ const struct timespec *abstime); }
442 AUE_NULL STD { int thr_suspend( \
@@ -1295,8 +1295,8 @@
_In_reads_(2) \
struct timespec *times, \
int flag); }
-548 AUE_NULL UNIMPL numa_getaffinity
-549 AUE_NULL UNIMPL numa_setaffinity
+548 AUE_NULL OBSOL numa_getaffinity
+549 AUE_NULL OBSOL numa_setaffinity
550 AUE_FSYNC STD { int fdatasync(int fd); }
551 AUE_FSTAT STD { int fstat(int fd, _Out_ struct stat *sb); }
552 AUE_FSTATAT STD { int fstatat(int fd, _In_z_ char *path, \
diff --git a/sys/net/if.c b/sys/net/if.c
index 3147eafb7c78..2acea128cdfd 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -264,7 +264,6 @@ static int if_setflag(struct ifnet *, int, int, int *, int);
static int if_transmit(struct ifnet *ifp, struct mbuf *m);
static void if_unroute(struct ifnet *, int flag, int fam);
static void link_rtrequest(int, struct rtentry *, struct rt_addrinfo *);
-static int ifhwioctl(u_long, struct ifnet *, caddr_t, struct thread *);
static int if_delmulti_locked(struct ifnet *, struct ifmultiaddr *, int);
static void do_link_state_change(void *, int);
static int if_getgroup(struct ifgroupreq *, struct ifnet *);
@@ -2512,7 +2511,7 @@ ifr_data_get_ptr(void *ifrp)
/*
* Hardware specific interface ioctls.
*/
-static int
+int
ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td)
{
struct ifreq *ifr;
diff --git a/sys/net/if_tap.c b/sys/net/if_tap.c
index 2bce8c1e7aad..65feee545b7d 100644
--- a/sys/net/if_tap.c
+++ b/sys/net/if_tap.c
@@ -723,10 +723,12 @@ tapifstart(struct ifnet *ifp)
static int
tapioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
{
+ struct ifreq ifr;
struct tap_softc *tp = dev->si_drv1;
struct ifnet *ifp = tp->tap_ifp;
struct tapinfo *tapp = NULL;
int f;
+ int error;
#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \
defined(COMPAT_FREEBSD4)
int ival;
@@ -738,7 +740,18 @@ tapioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td
if (ifp->if_type != tapp->type)
return (EPROTOTYPE);
mtx_lock(&tp->tap_mtx);
- ifp->if_mtu = tapp->mtu;
+ if (ifp->if_mtu != tapp->mtu) {
+ strncpy(ifr.ifr_name, if_name(ifp), IFNAMSIZ);
+ ifr.ifr_mtu = tapp->mtu;
+ CURVNET_SET(ifp->if_vnet);
+ error = ifhwioctl(SIOCSIFMTU, ifp,
+ (caddr_t)&ifr, td);
+ CURVNET_RESTORE();
+ if (error) {
+ mtx_unlock(&tp->tap_mtx);
+ return (error);
+ }
+ }
ifp->if_baudrate = tapp->baudrate;
mtx_unlock(&tp->tap_mtx);
break;
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c
index cf404012a2e8..fc49ef3bbbd1 100644
--- a/sys/net/if_tun.c
+++ b/sys/net/if_tun.c
@@ -662,24 +662,29 @@ static int
tunioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag,
struct thread *td)
{
- int error;
+ struct ifreq ifr;
struct tun_softc *tp = dev->si_drv1;
struct tuninfo *tunp;
+ int error;
switch (cmd) {
case TUNSIFINFO:
tunp = (struct tuninfo *)data;
- if (tunp->mtu < IF_MINMTU)
- return (EINVAL);
- if (TUN2IFP(tp)->if_mtu != tunp->mtu) {
- error = priv_check(td, PRIV_NET_SETIFMTU);
- if (error)
- return (error);
- }
if (TUN2IFP(tp)->if_type != tunp->type)
return (EPROTOTYPE);
mtx_lock(&tp->tun_mtx);
- TUN2IFP(tp)->if_mtu = tunp->mtu;
+ if (TUN2IFP(tp)->if_mtu != tunp->mtu) {
+ strncpy(ifr.ifr_name, if_name(TUN2IFP(tp)), IFNAMSIZ);
+ ifr.ifr_mtu = tunp->mtu;
+ CURVNET_SET(TUN2IFP(tp)->if_vnet);
+ error = ifhwioctl(SIOCSIFMTU, TUN2IFP(tp),
+ (caddr_t)&ifr, td);
+ CURVNET_RESTORE();
+ if (error) {
+ mtx_unlock(&tp->tun_mtx);
+ return (error);
+ }
+ }
TUN2IFP(tp)->if_baudrate = tunp->baudrate;
mtx_unlock(&tp->tun_mtx);
break;
diff --git a/sys/net/if_var.h b/sys/net/if_var.h
index 68341ef75025..c9452406a151 100644
--- a/sys/net/if_var.h
+++ b/sys/net/if_var.h
@@ -760,6 +760,8 @@ int if_hw_tsomax_update(if_t ifp, struct ifnet_hw_tsomax *);
/* accessors for struct ifreq */
void *ifr_data_get_ptr(void *ifrp);
+int ifhwioctl(u_long, struct ifnet *, caddr_t, struct thread *);
+
#ifdef DEVICE_POLLING
enum poll_cmd { POLL_ONLY, POLL_AND_CHECK_STATUS };
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index a0b09ddd3336..2d084f018425 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -7210,7 +7210,7 @@ one_more_time:
if ((sp->msg_is_complete) && (sp->length == 0)) {
if (sp->sender_all_done) {
/*
- * We are doing defered cleanup. Last time through
+ * We are doing deferred cleanup. Last time through
* when we took all the data the sender_all_done was
* not set.
*/
diff --git a/sys/sys/syscall.h b/sys/sys/syscall.h
index 6e880f04950c..436186e90d29 100644
--- a/sys/sys/syscall.h
+++ b/sys/sys/syscall.h
@@ -175,6 +175,10 @@
#define SYS_setgid 181
#define SYS_setegid 182
#define SYS_seteuid 183
+ /* 184 is obsolete lfs_bmapv */
+ /* 185 is obsolete lfs_markv */
+ /* 186 is obsolete lfs_segclean */
+ /* 187 is obsolete lfs_segwait */
#define SYS_freebsd11_stat 188
#define SYS_freebsd11_fstat 189
#define SYS_freebsd11_lstat 190
@@ -198,6 +202,7 @@
#define SYS_freebsd7___semctl 220
#define SYS_semget 221
#define SYS_semop 222
+ /* 223 is obsolete semconfig */
#define SYS_freebsd7_msgctl 224
#define SYS_msgget 225
#define SYS_msgsnd 226
@@ -306,13 +311,25 @@
#define SYS_getresgid 361
#define SYS_kqueue 362
#define SYS_freebsd11_kevent 363
+ /* 364 is obsolete __cap_get_proc */
+ /* 365 is obsolete __cap_set_proc */
+ /* 366 is obsolete __cap_get_fd */
+ /* 367 is obsolete __cap_get_file */
+ /* 368 is obsolete __cap_set_fd */
+ /* 369 is obsolete __cap_set_file */
#define SYS_extattr_set_fd 371
#define SYS_extattr_get_fd 372
#define SYS_extattr_delete_fd 373
#define SYS___setugid 374
+ /* 375 is obsolete nfsclnt */
#define SYS_eaccess 376
#define SYS_afs3_syscall 377
#define SYS_nmount 378
+ /* 379 is obsolete kse_exit */
+ /* 380 is obsolete kse_wakeup */
+ /* 381 is obsolete kse_create */
+ /* 382 is obsolete kse_thr_interrupt */
+ /* 383 is obsolete kse_release */
#define SYS___mac_get_proc 384
#define SYS___mac_set_proc 385
#define SYS___mac_get_fd 386
@@ -363,6 +380,7 @@
#define SYS_extattr_list_fd 437
#define SYS_extattr_list_file 438
#define SYS_extattr_list_link 439
+ /* 440 is obsolete kse_switchin */
#define SYS_ksem_timedwait 441
#define SYS_thr_suspend 442
#define SYS_thr_wake 443
@@ -465,6 +483,8 @@
#define SYS_ppoll 545
#define SYS_futimens 546
#define SYS_utimensat 547
+ /* 548 is obsolete numa_getaffinity */
+ /* 549 is obsolete numa_setaffinity */
#define SYS_fdatasync 550
#define SYS_fstat 551
#define SYS_fstatat 552
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index d5a6b57f47e3..c56e51f3dbfe 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -1633,16 +1633,16 @@ vm_fault_copy_entry(vm_map_t dst_map, vm_map_t src_map,
dst_object->flags |= OBJ_COLORED;
dst_object->pg_color = atop(dst_entry->start);
#endif
+ dst_object->domain = src_object->domain;
+ dst_object->charge = dst_entry->end - dst_entry->start;
}
VM_OBJECT_WLOCK(dst_object);
KASSERT(upgrade || dst_entry->object.vm_object == NULL,
("vm_fault_copy_entry: vm_object not NULL"));
if (src_object != dst_object) {
- dst_object->domain = src_object->domain;
dst_entry->object.vm_object = dst_object;
dst_entry->offset = 0;
- dst_object->charge = dst_entry->end - dst_entry->start;
}
if (fork_charge != NULL) {
KASSERT(dst_entry->cred == NULL,
@@ -1650,7 +1650,9 @@ vm_fault_copy_entry(vm_map_t dst_map, vm_map_t src_map,
dst_object->cred = curthread->td_ucred;
crhold(dst_object->cred);
*fork_charge += dst_object->charge;
- } else if (dst_object->cred == NULL) {
+ } else if ((dst_object->type == OBJT_DEFAULT ||
+ dst_object->type == OBJT_SWAP) &&
+ dst_object->cred == NULL) {
KASSERT(dst_entry->cred != NULL, ("no cred for entry %p",
dst_entry));
dst_object->cred = dst_entry->cred;
@@ -1737,6 +1739,13 @@ again:
dst_m = src_m;
if (vm_page_sleep_if_busy(dst_m, "fltupg"))
goto again;
+ if (dst_m->pindex >= dst_object->size)
+ /*
+ * We are upgrading. Index can occur
+ * out of bounds if the object type is
+ * vnode and the file was truncated.
+ */
+ break;
vm_page_xbusy(dst_m);
KASSERT(dst_m->valid == VM_PAGE_BITS_ALL,
("invalid dst page %p", dst_m));