Author: cem
Date: Thu Nov  5 19:30:31 2020
New Revision: 367395
URL: https://svnweb.freebsd.org/changeset/base/367395

Log:
  linux(4): Deduplicate unimpl/dummy syscall handlers
  
  No functional change.
  
  Reviewed by:  emaste, trasz
  Differential Revision:        https://reviews.freebsd.org/D27099

Added:
  head/sys/amd64/linux/linux_dummy_machdep.c
     - copied, changed from r367394, head/sys/amd64/linux/linux_dummy.c
  head/sys/arm64/linux/linux_dummy_machdep.c
     - copied, changed from r367394, head/sys/arm64/linux/linux_dummy.c
  head/sys/compat/linux/linux_dummy.c
     - copied, changed from r367393, head/sys/arm64/linux/linux_dummy.c
  head/sys/i386/linux/linux_dummy_machdep.c
     - copied, changed from r367394, head/sys/i386/linux/linux_dummy.c
  head/sys/x86/linux/
  head/sys/x86/linux/linux_dummy_x86.c   (contents, props changed)
     - copied, changed from r367393, head/sys/amd64/linux/linux_dummy.c
Deleted:
  head/sys/amd64/linux/linux_dummy.c
  head/sys/arm64/linux/linux_dummy.c
  head/sys/i386/linux/linux_dummy.c
Modified:
  head/sys/amd64/linux32/linux32_dummy.c
  head/sys/conf/files.amd64
  head/sys/conf/files.i386
  head/sys/modules/linux/Makefile
  head/sys/modules/linux64/Makefile
  head/sys/modules/linux_common/Makefile

Copied and modified: head/sys/amd64/linux/linux_dummy_machdep.c (from r367394, 
head/sys/amd64/linux/linux_dummy.c)
==============================================================================
--- head/sys/amd64/linux/linux_dummy.c  Thu Nov  5 18:10:03 2020        
(r367394, copy source)
+++ head/sys/amd64/linux/linux_dummy_machdep.c  Thu Nov  5 19:30:31 2020        
(r367395)
@@ -43,146 +43,32 @@ __FBSDID("$FreeBSD$");
 /* DTrace init */
 LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
 
-UNIMPLEMENTED(afs_syscall);
-UNIMPLEMENTED(create_module);  /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(epoll_ctl_old);
-UNIMPLEMENTED(epoll_wait_old);
-UNIMPLEMENTED(get_kernel_syms);        /* Added in Linux 1.0 removed in 2.6. */
+/*
+ * Before adding new stubs to this file, please check if a stub can be added to
+ * the machine-independent code in sys/compat/linux/linux_dummy.c (or
+ * sys/x86/linux/linux_dummy_x86.c).
+ */
+
 UNIMPLEMENTED(get_thread_area);
-UNIMPLEMENTED(getpmsg);
-UNIMPLEMENTED(nfsservctl);     /* Added in Linux 2.2 removed in 3.1. */
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module);   /* Added in Linux 2.2 removed in 2.6. */
-UNIMPLEMENTED(tuxcall);
-UNIMPLEMENTED(security);
 UNIMPLEMENTED(set_thread_area);
 UNIMPLEMENTED(uselib);
-UNIMPLEMENTED(vserver);
 
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(sysfs);
-DUMMY(vhangup);
 DUMMY(modify_ldt);
-DUMMY(pivot_root);
-DUMMY(adjtimex);
-DUMMY(swapoff);
-DUMMY(init_module);
+
 DUMMY(ioperm);
-DUMMY(delete_module);
-DUMMY(quotactl);
-DUMMY(readahead);
 DUMMY(io_setup);
 DUMMY(io_destroy);
 DUMMY(io_getevents);
 DUMMY(io_submit);
 DUMMY(io_cancel);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(restart_syscall);
-DUMMY(semtimedop);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
 DUMMY(mq_open);
 DUMMY(mq_unlink);
 DUMMY(mq_timedsend);
 DUMMY(mq_timedreceive);
 DUMMY(mq_notify);
 DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.22: */
-DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
+DUMMY(readahead);
+DUMMY(restart_syscall);
+DUMMY(semtimedop);
 /* Linux 3.15: */
 DUMMY(kexec_file_load);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
-/* Linux 4.11: */
-DUMMY(statx);
-/* Linux 4.18: */
-DUMMY(io_pgetevents);
-DUMMY(rseq);
-/* Linux 5.0: */
-DUMMY(pidfd_send_signal);
-DUMMY(io_uring_setup);
-DUMMY(io_uring_enter);
-DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s)                                         \
-int                                                            \
-linux_ ## s ## xattr(                                          \
-    struct thread *td, struct linux_ ## s ## xattr_args *arg)  \
-{                                                              \
-                                                               \
-       return (EOPNOTSUPP);                                    \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);

Modified: head/sys/amd64/linux32/linux32_dummy.c
==============================================================================
--- head/sys/amd64/linux32/linux32_dummy.c      Thu Nov  5 18:10:03 2020        
(r367394)
+++ head/sys/amd64/linux32/linux32_dummy.c      Thu Nov  5 19:30:31 2020        
(r367395)
@@ -43,119 +43,29 @@ __FBSDID("$FreeBSD$");
 /* DTrace init */
 LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
 
-UNIMPLEMENTED(afs_syscall);
 UNIMPLEMENTED(break);
-UNIMPLEMENTED(create_module);  /* Added in Linux 1.0 removed in 2.6. */
 UNIMPLEMENTED(ftime);
-UNIMPLEMENTED(get_kernel_syms);        /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(getpmsg);
 UNIMPLEMENTED(gtty);
 UNIMPLEMENTED(stty);
 UNIMPLEMENTED(lock);
 UNIMPLEMENTED(mpx);
-UNIMPLEMENTED(nfsservctl);     /* Added in Linux 2.2 removed in 3.1. */
 UNIMPLEMENTED(prof);
 UNIMPLEMENTED(profil);
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module);   /* Added in Linux 2.2 removed in 2.6. */
 UNIMPLEMENTED(ulimit);
-UNIMPLEMENTED(vserver);
 
 DUMMY(stime);
 DUMMY(olduname);
 DUMMY(uname);
-DUMMY(vhangup);
-DUMMY(swapoff);
-DUMMY(adjtimex);
-DUMMY(init_module);
-DUMMY(delete_module);
-DUMMY(quotactl);
 DUMMY(bdflush);
-DUMMY(sysfs);
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(pivot_root);
 DUMMY(ptrace);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
 DUMMY(mq_open);
 DUMMY(mq_unlink);
 DUMMY(mq_timedsend);
 DUMMY(mq_timedreceive);
 DUMMY(mq_notify);
 DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.22: */
-DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
 /* Linux 4.11: */
-DUMMY(statx);
 DUMMY(arch_prctl);
-/* Linux 4.18: */
-DUMMY(io_pgetevents);
-DUMMY(rseq);
 /* Linux 5.0: */
 DUMMY(clock_gettime64);
 DUMMY(clock_settime64);
@@ -177,28 +87,3 @@ DUMMY(semtimedop_time64);
 DUMMY(rt_sigtimedwait_time64);
 DUMMY(futex_time64);
 DUMMY(sched_rr_get_interval_time64);
-DUMMY(pidfd_send_signal);
-DUMMY(io_uring_setup);
-DUMMY(io_uring_enter);
-DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s)                                         \
-int                                                            \
-linux_ ## s ## xattr(                                          \
-    struct thread *td, struct linux_ ## s ## xattr_args *arg)  \
-{                                                              \
-                                                               \
-       return (EOPNOTSUPP);                                    \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);

Copied and modified: head/sys/arm64/linux/linux_dummy_machdep.c (from r367394, 
head/sys/arm64/linux/linux_dummy.c)
==============================================================================
--- head/sys/arm64/linux/linux_dummy.c  Thu Nov  5 18:10:03 2020        
(r367394, copy source)
+++ head/sys/arm64/linux/linux_dummy_machdep.c  Thu Nov  5 19:30:31 2020        
(r367395)
@@ -42,126 +42,22 @@ __FBSDID("$FreeBSD$");
 #include <compat/linux/linux_dtrace.h>
 #include <compat/linux/linux_util.h>
 
-// LINUXTODO: deduplicate arm64 dummy against other archs?
-// LINUXTODO: review/update/add unimplemented syscalls
-
 /* DTrace init */
 LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
 
-UNIMPLEMENTED(afs_syscall);
-UNIMPLEMENTED(create_module);  /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(epoll_ctl_old);
-UNIMPLEMENTED(epoll_wait_old);
-UNIMPLEMENTED(get_kernel_syms);        /* Added in Linux 1.0 removed in 2.6. */
+/*
+ * Before adding new stubs to this file, please check if a stub can be added to
+ * the machine-independent code in sys/compat/linux/linux_dummy.c.
+ */
+
 UNIMPLEMENTED(get_thread_area);
-UNIMPLEMENTED(getpmsg);
-UNIMPLEMENTED(nfsservctl);     /* Added in Linux 2.2 removed in 3.1. */
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module);   /* Added in Linux 2.2 removed in 2.6. */
-UNIMPLEMENTED(security);
 UNIMPLEMENTED(set_thread_area);
-UNIMPLEMENTED(tuxcall);
 UNIMPLEMENTED(uselib);
-UNIMPLEMENTED(vserver);
 
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(vhangup);
-DUMMY(pivot_root);
-DUMMY(adjtimex);
-DUMMY(swapoff);
-DUMMY(init_module);
-DUMMY(delete_module);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(semtimedop);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
 DUMMY(mq_open);
 DUMMY(mq_unlink);
 DUMMY(mq_timedsend);
 DUMMY(mq_timedreceive);
 DUMMY(mq_notify);
 DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
-
-#define DUMMY_XATTR(s)                                         \
-int                                                            \
-linux_ ## s ## xattr(                                          \
-    struct thread *td, struct linux_ ## s ## xattr_args *arg)  \
-{                                                              \
-                                                               \
-       return (EOPNOTSUPP);                                    \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);
+DUMMY(semtimedop);

Copied and modified: head/sys/compat/linux/linux_dummy.c (from r367393, 
head/sys/arm64/linux/linux_dummy.c)
==============================================================================
--- head/sys/arm64/linux/linux_dummy.c  Thu Nov  5 17:10:14 2020        
(r367393, copy source)
+++ head/sys/compat/linux/linux_dummy.c Thu Nov  5 19:30:31 2020        
(r367395)
@@ -37,14 +37,17 @@ __FBSDID("$FreeBSD$");
 #include <sys/systm.h>
 #include <sys/proc.h>
 
-#include <arm64/linux/linux.h>
-#include <arm64/linux/linux_proto.h>
+#ifdef COMPAT_LINUX32
+#include <machine/../linux32/linux.h>
+#include <machine/../linux32/linux32_proto.h>
+#else
+#include <machine/../linux/linux.h>
+#include <machine/../linux/linux_proto.h>
+#endif
+
 #include <compat/linux/linux_dtrace.h>
 #include <compat/linux/linux_util.h>
 
-// LINUXTODO: deduplicate arm64 dummy against other archs?
-// LINUXTODO: review/update/add unimplemented syscalls
-
 /* DTrace init */
 LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
 
@@ -53,15 +56,11 @@ UNIMPLEMENTED(create_module);       /* Added in Linux 1.0 re
 UNIMPLEMENTED(epoll_ctl_old);
 UNIMPLEMENTED(epoll_wait_old);
 UNIMPLEMENTED(get_kernel_syms);        /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(get_thread_area);
 UNIMPLEMENTED(getpmsg);
 UNIMPLEMENTED(nfsservctl);     /* Added in Linux 2.2 removed in 3.1. */
 UNIMPLEMENTED(putpmsg);
 UNIMPLEMENTED(query_module);   /* Added in Linux 2.2 removed in 2.6. */
 UNIMPLEMENTED(security);
-UNIMPLEMENTED(set_thread_area);
-UNIMPLEMENTED(tuxcall);
-UNIMPLEMENTED(uselib);
 UNIMPLEMENTED(vserver);
 
 DUMMY(setfsuid);
@@ -74,16 +73,9 @@ DUMMY(init_module);
 DUMMY(delete_module);
 DUMMY(lookup_dcookie);
 DUMMY(remap_file_pages);
-DUMMY(semtimedop);
 DUMMY(mbind);
 DUMMY(get_mempolicy);
 DUMMY(set_mempolicy);
-DUMMY(mq_open);
-DUMMY(mq_unlink);
-DUMMY(mq_timedsend);
-DUMMY(mq_timedreceive);
-DUMMY(mq_notify);
-DUMMY(mq_getsetattr);
 DUMMY(kexec_load);
 /* Linux 2.6.11: */
 DUMMY(add_key);

Modified: head/sys/conf/files.amd64
==============================================================================
--- head/sys/conf/files.amd64   Thu Nov  5 18:10:03 2020        (r367394)
+++ head/sys/conf/files.amd64   Thu Nov  5 19:30:31 2020        (r367395)
@@ -412,6 +412,7 @@ amd64/linux32/linux32_support.s     optional        
compat_linux3
        dependency      "linux32_assym.h"
 amd64/linux32/linux32_sysent.c optional        compat_linux32
 amd64/linux32/linux32_sysvec.c optional        compat_linux32
+compat/linux/linux_dummy.c     optional        compat_linux32
 compat/linux/linux_emul.c      optional        compat_linux32
 compat/linux/linux_errno.c     optional        compat_linux32
 compat/linux/linux_file.c      optional        compat_linux32
@@ -435,6 +436,7 @@ compat/linux/linux_vdso.c   optional        compat_linux32
 compat/linux/linux_common.c    optional        compat_linux32
 compat/linux/linux_event.c     optional        compat_linux32
 compat/linux/linux.c           optional        compat_linux32
+x86/linux/linux_dummy_x86.c    optional        compat_linux32
 dev/amr/amr_linux.c            optional        compat_linux32 amr
 dev/mfi/mfi_linux.c            optional        compat_linux32 mfi
 compat/ndis/winx64_wrap.S      optional        ndisapi pci

Modified: head/sys/conf/files.i386
==============================================================================
--- head/sys/conf/files.i386    Thu Nov  5 18:10:03 2020        (r367394)
+++ head/sys/conf/files.i386    Thu Nov  5 19:30:31 2020        (r367395)
@@ -52,6 +52,7 @@ cddl/dev/dtrace/i386/dtrace_asm.S                     
optional dtrace co
 cddl/dev/dtrace/i386/dtrace_subr.c                     optional dtrace 
compile-with "${DTRACE_C}"
 compat/linprocfs/linprocfs.c   optional linprocfs
 compat/linsysfs/linsysfs.c     optional linsysfs
+compat/linux/linux_dummy.c     optional compat_linux
 compat/linux/linux_event.c     optional compat_linux
 compat/linux/linux_emul.c      optional compat_linux
 compat/linux/linux_errno.c     optional compat_linux
@@ -200,7 +201,7 @@ i386/i386/vm86.c            standard
 i386/i386/vm_machdep.c         standard
 i386/linux/imgact_linux.c      optional compat_linux
 i386/linux/linux_copyout.c     optional compat_linux
-i386/linux/linux_dummy.c       optional compat_linux
+i386/linux/linux_dummy_machdep.c       optional compat_linux
 i386/linux/linux_machdep.c     optional compat_linux
 i386/linux/linux_ptrace.c      optional compat_linux
 i386/linux/linux_sysent.c      optional compat_linux
@@ -240,6 +241,7 @@ x86/isa/atpic.c                     optional atpic
 x86/isa/elcr.c                 optional atpic | apic
 x86/isa/isa.c                  optional isa
 x86/isa/isa_dma.c              optional isa
+x86/linux/linux_dummy_x86.c    optional compat_linux
 x86/x86/io_apic.c              optional apic
 x86/x86/local_apic.c           optional apic
 x86/x86/mptable.c              optional apic

Copied and modified: head/sys/i386/linux/linux_dummy_machdep.c (from r367394, 
head/sys/i386/linux/linux_dummy.c)
==============================================================================
--- head/sys/i386/linux/linux_dummy.c   Thu Nov  5 18:10:03 2020        
(r367394, copy source)
+++ head/sys/i386/linux/linux_dummy_machdep.c   Thu Nov  5 19:30:31 2020        
(r367395)
@@ -43,115 +43,31 @@ __FBSDID("$FreeBSD$");
 /* DTrace init */
 LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
 
-UNIMPLEMENTED(afs_syscall);
+/*
+ * Before adding new stubs to this file, please check if a stub can be added to
+ * the machine-independent code in sys/compat/linux/linux_dummy.c (or
+ * sys/x86/linux/linux_dummy_x86.c).
+ */
+
 UNIMPLEMENTED(break);
-UNIMPLEMENTED(create_module);  /* Added in Linux 1.0 removed in 2.6. */
 UNIMPLEMENTED(ftime);
-UNIMPLEMENTED(get_kernel_syms);        /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(getpmsg);
 UNIMPLEMENTED(gtty);
 UNIMPLEMENTED(stty);
 UNIMPLEMENTED(lock);
 UNIMPLEMENTED(mpx);
-UNIMPLEMENTED(nfsservctl);     /* Added in Linux 2.2 removed in 3.1. */
 UNIMPLEMENTED(prof);
 UNIMPLEMENTED(profil);
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module);   /* Added in Linux 2.2 removed in 2.6. */
 UNIMPLEMENTED(ulimit);
-UNIMPLEMENTED(vserver);
 
-DUMMY(stime);
+DUMMY(bdflush);
 DUMMY(fstat);
 DUMMY(olduname);
+DUMMY(stime);
 DUMMY(uname);
-DUMMY(vhangup);
-DUMMY(vm86old);
-DUMMY(swapoff);
-DUMMY(adjtimex);
-DUMMY(init_module);
-DUMMY(delete_module);
-DUMMY(quotactl);
-DUMMY(bdflush);
-DUMMY(sysfs);
 DUMMY(vm86);
-DUMMY(setfsuid);
-DUMMY(setfsgid);
-DUMMY(pivot_root);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
-/* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
-DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
-/* Linux 2.6.22: */
-DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
+DUMMY(vm86old);
 /* Linux 4.11: */
-DUMMY(statx);
 DUMMY(arch_prctl);
-/* Linux 4.18: */
-DUMMY(io_pgetevents);
-DUMMY(rseq);
 /* Linux 5.0: */
 DUMMY(clock_gettime64);
 DUMMY(clock_settime64);
@@ -173,28 +89,3 @@ DUMMY(semtimedop_time64);
 DUMMY(rt_sigtimedwait_time64);
 DUMMY(futex_time64);
 DUMMY(sched_rr_get_interval_time64);
-DUMMY(pidfd_send_signal);
-DUMMY(io_uring_setup);
-DUMMY(io_uring_enter);
-DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s)                                         \
-int                                                            \
-linux_ ## s ## xattr(                                          \
-    struct thread *td, struct linux_ ## s ## xattr_args *arg)  \
-{                                                              \
-                                                               \
-       return (EOPNOTSUPP);                                    \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);

Modified: head/sys/modules/linux/Makefile
==============================================================================
--- head/sys/modules/linux/Makefile     Thu Nov  5 18:10:03 2020        
(r367394)
+++ head/sys/modules/linux/Makefile     Thu Nov  5 19:30:31 2020        
(r367395)
@@ -6,6 +6,9 @@ CFLAGS+=-DCOMPAT_FREEBSD32 -DCOMPAT_LINUX32
 .endif
 
 .PATH: ${SRCTOP}/sys/compat/linux ${SRCTOP}/sys/${MACHINE_CPUARCH}/linux${SFX}
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+.PATH: ${SRCTOP}/sys/x86/linux
+.endif
 
 VDSO=  linux${SFX}_vdso
 
@@ -18,6 +21,9 @@ SRCS= linux_fork.c linux${SFX}_dummy.c linux_file.c li
        linux_timer.c linux_vdso.c \
        opt_inet6.h opt_compat.h opt_posix.h opt_usb.h vnode_if.h \
        device_if.h bus_if.h
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+SRCS+= linux_dummy_x86.c
+.endif
 .if ${MACHINE_CPUARCH} == "amd64"
 SRCS+= linux${SFX}_support.s
 .else

Modified: head/sys/modules/linux64/Makefile
==============================================================================
--- head/sys/modules/linux64/Makefile   Thu Nov  5 18:10:03 2020        
(r367394)
+++ head/sys/modules/linux64/Makefile   Thu Nov  5 19:30:31 2020        
(r367395)
@@ -1,11 +1,14 @@
 # $FreeBSD$
 
 .PATH: ${SRCTOP}/sys/compat/linux ${SRCTOP}/sys/${MACHINE}/linux
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+.PATH: ${SRCTOP}/sys/x86/linux
+.endif
 
 VDSO=  linux_vdso
 
 KMOD=  linux64
-SRCS=  linux_fork.c linux_dummy.c linux_file.c linux_event.c \
+SRCS=  linux_fork.c linux_dummy_machdep.c linux_file.c linux_event.c \
        linux_futex.c linux_getcwd.c linux_ioctl.c linux_ipc.c \
        linux_machdep.c linux_misc.c linux_ptrace.c linux_signal.c \
        linux_socket.c linux_stats.c linux_sysctl.c linux_sysent.c \
@@ -13,6 +16,9 @@ SRCS= linux_fork.c linux_dummy.c linux_file.c linux_ev
        opt_compat.h opt_inet6.h opt_posix.h opt_usb.h \
        vnode_if.h device_if.h bus_if.h \
        linux_support.s
+.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
+SRCS+= linux_dummy_x86.c
+.endif
 DPSRCS=        assym.inc linux_genassym.c
 
 # XXX: for assym.inc

Modified: head/sys/modules/linux_common/Makefile
==============================================================================
--- head/sys/modules/linux_common/Makefile      Thu Nov  5 18:10:03 2020        
(r367394)
+++ head/sys/modules/linux_common/Makefile      Thu Nov  5 19:30:31 2020        
(r367395)
@@ -4,7 +4,7 @@
 
 KMOD=  linux_common
 SRCS=  linux_common.c linux_mib.c linux_mmap.c linux_util.c linux_emul.c \
-       linux_errno.c \
+       linux_dummy.c linux_errno.c \
        linux.c device_if.h vnode_if.h bus_if.h opt_inet6.h
 
 EXPORT_SYMS=

Copied and modified: head/sys/x86/linux/linux_dummy_x86.c (from r367393, 
head/sys/amd64/linux/linux_dummy.c)
==============================================================================
--- head/sys/amd64/linux/linux_dummy.c  Thu Nov  5 17:10:14 2020        
(r367393, copy source)
+++ head/sys/x86/linux/linux_dummy_x86.c        Thu Nov  5 19:30:31 2020        
(r367395)
@@ -29,132 +29,34 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "opt_compat.h"
+
 #include <sys/param.h>
 #include <sys/kernel.h>
 #include <sys/sdt.h>
 #include <sys/systm.h>
 #include <sys/proc.h>
 
-#include <amd64/linux/linux.h>
-#include <amd64/linux/linux_proto.h>
+#ifdef COMPAT_LINUX32
+#include <machine/../linux32/linux.h>
+#include <machine/../linux32/linux32_proto.h>
+#else
+#include <machine/../linux/linux.h>
+#include <machine/../linux/linux_proto.h>
+#endif
+
 #include <compat/linux/linux_dtrace.h>
 #include <compat/linux/linux_util.h>
 
 /* DTrace init */
 LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
 
-UNIMPLEMENTED(afs_syscall);
-UNIMPLEMENTED(create_module);  /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(epoll_ctl_old);
-UNIMPLEMENTED(epoll_wait_old);
-UNIMPLEMENTED(get_kernel_syms);        /* Added in Linux 1.0 removed in 2.6. */
-UNIMPLEMENTED(get_thread_area);
-UNIMPLEMENTED(getpmsg);
-UNIMPLEMENTED(nfsservctl);     /* Added in Linux 2.2 removed in 3.1. */
-UNIMPLEMENTED(putpmsg);
-UNIMPLEMENTED(query_module);   /* Added in Linux 2.2 removed in 2.6. */
-UNIMPLEMENTED(tuxcall);
-UNIMPLEMENTED(security);
-UNIMPLEMENTED(set_thread_area);
-UNIMPLEMENTED(uselib);
-UNIMPLEMENTED(vserver);
-
-DUMMY(setfsuid);
-DUMMY(setfsgid);
 DUMMY(sysfs);
-DUMMY(vhangup);
-DUMMY(modify_ldt);
-DUMMY(pivot_root);
-DUMMY(adjtimex);
-DUMMY(swapoff);
-DUMMY(init_module);
-DUMMY(ioperm);
-DUMMY(delete_module);
 DUMMY(quotactl);
-DUMMY(readahead);
-DUMMY(io_setup);
-DUMMY(io_destroy);
-DUMMY(io_getevents);
-DUMMY(io_submit);
-DUMMY(io_cancel);
-DUMMY(lookup_dcookie);
-DUMMY(remap_file_pages);
-DUMMY(restart_syscall);
-DUMMY(semtimedop);
-DUMMY(mbind);
-DUMMY(get_mempolicy);
-DUMMY(set_mempolicy);
-DUMMY(mq_open);
-DUMMY(mq_unlink);
-DUMMY(mq_timedsend);
-DUMMY(mq_timedreceive);
-DUMMY(mq_notify);
-DUMMY(mq_getsetattr);
-DUMMY(kexec_load);
-/* Linux 2.6.11: */
-DUMMY(add_key);
-DUMMY(request_key);
-DUMMY(keyctl);
 /* Linux 2.6.13: */
-DUMMY(ioprio_set);
-DUMMY(ioprio_get);
 DUMMY(inotify_init);
-DUMMY(inotify_add_watch);
-DUMMY(inotify_rm_watch);
-/* Linux 2.6.16: */
-DUMMY(migrate_pages);
-DUMMY(unshare);
-/* Linux 2.6.17: */
-DUMMY(tee);
-DUMMY(vmsplice);
-/* Linux 2.6.18: */
-DUMMY(move_pages);
 /* Linux 2.6.22: */
 DUMMY(signalfd);
-/* Linux 2.6.27: */
-DUMMY(signalfd4);
-DUMMY(inotify_init1);
-/* Linux 2.6.31: */
-DUMMY(perf_event_open);
-/* Linux 2.6.36: */
-DUMMY(fanotify_init);
-DUMMY(fanotify_mark);
-/* Linux 2.6.39: */
-DUMMY(name_to_handle_at);
-DUMMY(open_by_handle_at);
-DUMMY(clock_adjtime);
-/* Linux 3.0: */
-DUMMY(setns);
-/* Linux 3.2: */
-DUMMY(process_vm_readv);
-DUMMY(process_vm_writev);
-/* Linux 3.5: */
-DUMMY(kcmp);
-/* Linux 3.8: */
-DUMMY(finit_module);
-DUMMY(sched_setattr);
-DUMMY(sched_getattr);
-/* Linux 3.15: */
-DUMMY(kexec_file_load);
-/* Linux 3.17: */
-DUMMY(seccomp);
-/* Linux 3.18: */
-DUMMY(bpf);
-/* Linux 3.19: */
-DUMMY(execveat);
-/* Linux 4.2: */
-DUMMY(userfaultfd);
-/* Linux 4.3: */
-DUMMY(membarrier);
-/* Linux 4.4: */
-DUMMY(mlock2);
-/* Linux 4.6: */
-DUMMY(preadv2);
-DUMMY(pwritev2);
-/* Linux 4.8: */
-DUMMY(pkey_mprotect);
-DUMMY(pkey_alloc);
-DUMMY(pkey_free);
 /* Linux 4.11: */
 DUMMY(statx);
 /* Linux 4.18: */
@@ -165,24 +67,3 @@ DUMMY(pidfd_send_signal);
 DUMMY(io_uring_setup);
 DUMMY(io_uring_enter);
 DUMMY(io_uring_register);
-
-#define DUMMY_XATTR(s)                                         \
-int                                                            \
-linux_ ## s ## xattr(                                          \
-    struct thread *td, struct linux_ ## s ## xattr_args *arg)  \
-{                                                              \
-                                                               \
-       return (EOPNOTSUPP);                                    \
-}
-DUMMY_XATTR(set);
-DUMMY_XATTR(lset);
-DUMMY_XATTR(fset);
-DUMMY_XATTR(get);
-DUMMY_XATTR(lget);
-DUMMY_XATTR(fget);
-DUMMY_XATTR(list);
-DUMMY_XATTR(llist);
-DUMMY_XATTR(flist);
-DUMMY_XATTR(remove);
-DUMMY_XATTR(lremove);
-DUMMY_XATTR(fremove);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to