All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
@ 2011-04-06 20:33 Geert Uytterhoeven
  2011-04-06 22:05 ` [uClinux-dev] " Philippe De Muyter
                   ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: Geert Uytterhoeven @ 2011-04-06 20:33 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: Linux/m68k, uClinux list

Impact for m68knommu:
  - The table is now stored in .data instead of .text,
  - Removed unused padding at the end of the table.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Not tested on m68knommu

Questions:
  - Why was it .text?
  - Was NR_syscalls ever larger than the actual number of syscalls?

 arch/m68k/kernel/Makefile_mm    |    2 +-
 arch/m68k/kernel/entry_mm.S     |  348 ---------------------------------------
 arch/m68k/kernel/syscalltable.S |  205 ++++++++++++-----------
 3 files changed, 110 insertions(+), 445 deletions(-)

diff --git a/arch/m68k/kernel/Makefile_mm b/arch/m68k/kernel/Makefile_mm
index 55d5d6b..aced678 100644
--- a/arch/m68k/kernel/Makefile_mm
+++ b/arch/m68k/kernel/Makefile_mm
@@ -10,7 +10,7 @@ endif
 extra-y	+= vmlinux.lds
 
 obj-y	:= entry.o process.o traps.o ints.o signal.o ptrace.o module.o \
-	   sys_m68k.o time.o setup.o m68k_ksyms.o devres.o
+	   sys_m68k.o time.o setup.o m68k_ksyms.o devres.o syscalltable.o
 
 devres-y = ../../../kernel/irq/devres.o
 
diff --git a/arch/m68k/kernel/entry_mm.S b/arch/m68k/kernel/entry_mm.S
index 1359ee6..bd0ec05 100644
--- a/arch/m68k/kernel/entry_mm.S
+++ b/arch/m68k/kernel/entry_mm.S
@@ -407,351 +407,3 @@ resume:
 
 	rts
 
-.data
-ALIGN
-sys_call_table:
-	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
-	.long sys_exit
-	.long sys_fork
-	.long sys_read
-	.long sys_write
-	.long sys_open		/* 5 */
-	.long sys_close
-	.long sys_waitpid
-	.long sys_creat
-	.long sys_link
-	.long sys_unlink	/* 10 */
-	.long sys_execve
-	.long sys_chdir
-	.long sys_time
-	.long sys_mknod
-	.long sys_chmod		/* 15 */
-	.long sys_chown16
-	.long sys_ni_syscall				/* old break syscall holder */
-	.long sys_stat
-	.long sys_lseek
-	.long sys_getpid	/* 20 */
-	.long sys_mount
-	.long sys_oldumount
-	.long sys_setuid16
-	.long sys_getuid16
-	.long sys_stime		/* 25 */
-	.long sys_ptrace
-	.long sys_alarm
-	.long sys_fstat
-	.long sys_pause
-	.long sys_utime		/* 30 */
-	.long sys_ni_syscall				/* old stty syscall holder */
-	.long sys_ni_syscall				/* old gtty syscall holder */
-	.long sys_access
-	.long sys_nice
-	.long sys_ni_syscall	/* 35 */	/* old ftime syscall holder */
-	.long sys_sync
-	.long sys_kill
-	.long sys_rename
-	.long sys_mkdir
-	.long sys_rmdir		/* 40 */
-	.long sys_dup
-	.long sys_pipe
-	.long sys_times
-	.long sys_ni_syscall				/* old prof syscall holder */
-	.long sys_brk		/* 45 */
-	.long sys_setgid16
-	.long sys_getgid16
-	.long sys_signal
-	.long sys_geteuid16
-	.long sys_getegid16	/* 50 */
-	.long sys_acct
-	.long sys_umount				/* recycled never used phys() */
-	.long sys_ni_syscall				/* old lock syscall holder */
-	.long sys_ioctl
-	.long sys_fcntl		/* 55 */
-	.long sys_ni_syscall				/* old mpx syscall holder */
-	.long sys_setpgid
-	.long sys_ni_syscall				/* old ulimit syscall holder */
-	.long sys_ni_syscall
-	.long sys_umask		/* 60 */
-	.long sys_chroot
-	.long sys_ustat
-	.long sys_dup2
-	.long sys_getppid
-	.long sys_getpgrp	/* 65 */
-	.long sys_setsid
-	.long sys_sigaction
-	.long sys_sgetmask
-	.long sys_ssetmask
-	.long sys_setreuid16	/* 70 */
-	.long sys_setregid16
-	.long sys_sigsuspend
-	.long sys_sigpending
-	.long sys_sethostname
-	.long sys_setrlimit	/* 75 */
-	.long sys_old_getrlimit
-	.long sys_getrusage
-	.long sys_gettimeofday
-	.long sys_settimeofday
-	.long sys_getgroups16	/* 80 */
-	.long sys_setgroups16
-	.long sys_old_select
-	.long sys_symlink
-	.long sys_lstat
-	.long sys_readlink	/* 85 */
-	.long sys_uselib
-	.long sys_swapon
-	.long sys_reboot
-	.long sys_old_readdir
-	.long sys_old_mmap	/* 90 */
-	.long sys_munmap
-	.long sys_truncate
-	.long sys_ftruncate
-	.long sys_fchmod
-	.long sys_fchown16	/* 95 */
-	.long sys_getpriority
-	.long sys_setpriority
-	.long sys_ni_syscall				/* old profil syscall holder */
-	.long sys_statfs
-	.long sys_fstatfs	/* 100 */
-	.long sys_ni_syscall				/* ioperm for i386 */
-	.long sys_socketcall
-	.long sys_syslog
-	.long sys_setitimer
-	.long sys_getitimer	/* 105 */
-	.long sys_newstat
-	.long sys_newlstat
-	.long sys_newfstat
-	.long sys_ni_syscall
-	.long sys_ni_syscall	/* 110 */	/* iopl for i386 */
-	.long sys_vhangup
-	.long sys_ni_syscall				/* obsolete idle() syscall */
-	.long sys_ni_syscall				/* vm86old for i386 */
-	.long sys_wait4
-	.long sys_swapoff	/* 115 */
-	.long sys_sysinfo
-	.long sys_ipc
-	.long sys_fsync
-	.long sys_sigreturn
-	.long sys_clone		/* 120 */
-	.long sys_setdomainname
-	.long sys_newuname
-	.long sys_cacheflush				/* modify_ldt for i386 */
-	.long sys_adjtimex
-	.long sys_mprotect	/* 125 */
-	.long sys_sigprocmask
-	.long sys_ni_syscall		/* old "create_module" */
-	.long sys_init_module
-	.long sys_delete_module
-	.long sys_ni_syscall	/* 130 - old "get_kernel_syms" */
-	.long sys_quotactl
-	.long sys_getpgid
-	.long sys_fchdir
-	.long sys_bdflush
-	.long sys_sysfs		/* 135 */
-	.long sys_personality
-	.long sys_ni_syscall				/* for afs_syscall */
-	.long sys_setfsuid16
-	.long sys_setfsgid16
-	.long sys_llseek	/* 140 */
-	.long sys_getdents
-	.long sys_select
-	.long sys_flock
-	.long sys_msync
-	.long sys_readv		/* 145 */
-	.long sys_writev
-	.long sys_getsid
-	.long sys_fdatasync
-	.long sys_sysctl
-	.long sys_mlock		/* 150 */
-	.long sys_munlock
-	.long sys_mlockall
-	.long sys_munlockall
-	.long sys_sched_setparam
-	.long sys_sched_getparam	/* 155 */
-	.long sys_sched_setscheduler
-	.long sys_sched_getscheduler
-	.long sys_sched_yield
-	.long sys_sched_get_priority_max
-	.long sys_sched_get_priority_min  /* 160 */
-	.long sys_sched_rr_get_interval
-	.long sys_nanosleep
-	.long sys_mremap
-	.long sys_setresuid16
-	.long sys_getresuid16	/* 165 */
-	.long sys_getpagesize
-	.long sys_ni_syscall		/* old sys_query_module */
-	.long sys_poll
-	.long sys_nfsservctl
-	.long sys_setresgid16	/* 170 */
-	.long sys_getresgid16
-	.long sys_prctl
-	.long sys_rt_sigreturn
-	.long sys_rt_sigaction
-	.long sys_rt_sigprocmask	/* 175 */
-	.long sys_rt_sigpending
-	.long sys_rt_sigtimedwait
-	.long sys_rt_sigqueueinfo
-	.long sys_rt_sigsuspend
-	.long sys_pread64	/* 180 */
-	.long sys_pwrite64
-	.long sys_lchown16;
-	.long sys_getcwd
-	.long sys_capget
-	.long sys_capset	/* 185 */
-	.long sys_sigaltstack
-	.long sys_sendfile
-	.long sys_ni_syscall				/* streams1 */
-	.long sys_ni_syscall				/* streams2 */
-	.long sys_vfork		/* 190 */
-	.long sys_getrlimit
-	.long sys_mmap2
-	.long sys_truncate64
-	.long sys_ftruncate64
-	.long sys_stat64	/* 195 */
-	.long sys_lstat64
-	.long sys_fstat64
-	.long sys_chown
-	.long sys_getuid
-	.long sys_getgid	/* 200 */
-	.long sys_geteuid
-	.long sys_getegid
-	.long sys_setreuid
-	.long sys_setregid
-	.long sys_getgroups	/* 205 */
-	.long sys_setgroups
-	.long sys_fchown
-	.long sys_setresuid
-	.long sys_getresuid
-	.long sys_setresgid	/* 210 */
-	.long sys_getresgid
-	.long sys_lchown
-	.long sys_setuid
-	.long sys_setgid
-	.long sys_setfsuid	/* 215 */
-	.long sys_setfsgid
-	.long sys_pivot_root
-	.long sys_ni_syscall
-	.long sys_ni_syscall
-	.long sys_getdents64	/* 220 */
-	.long sys_gettid
-	.long sys_tkill
-	.long sys_setxattr
-	.long sys_lsetxattr
-	.long sys_fsetxattr	/* 225 */
-	.long sys_getxattr
-	.long sys_lgetxattr
-	.long sys_fgetxattr
-	.long sys_listxattr
-	.long sys_llistxattr	/* 230 */
-	.long sys_flistxattr
-	.long sys_removexattr
-	.long sys_lremovexattr
-	.long sys_fremovexattr
-	.long sys_futex		/* 235 */
-	.long sys_sendfile64
-	.long sys_mincore
-	.long sys_madvise
-	.long sys_fcntl64
-	.long sys_readahead	/* 240 */
-	.long sys_io_setup
-	.long sys_io_destroy
-	.long sys_io_getevents
-	.long sys_io_submit
-	.long sys_io_cancel	/* 245 */
-	.long sys_fadvise64
-	.long sys_exit_group
-	.long sys_lookup_dcookie
-	.long sys_epoll_create
-	.long sys_epoll_ctl	/* 250 */
-	.long sys_epoll_wait
-	.long sys_remap_file_pages
-	.long sys_set_tid_address
-	.long sys_timer_create
-	.long sys_timer_settime	/* 255 */
-	.long sys_timer_gettime
-	.long sys_timer_getoverrun
-	.long sys_timer_delete
-	.long sys_clock_settime
-	.long sys_clock_gettime	/* 260 */
-	.long sys_clock_getres
-	.long sys_clock_nanosleep
-	.long sys_statfs64
-	.long sys_fstatfs64
-	.long sys_tgkill	/* 265 */
-	.long sys_utimes
-	.long sys_fadvise64_64
-	.long sys_mbind
-	.long sys_get_mempolicy
-	.long sys_set_mempolicy	/* 270 */
-	.long sys_mq_open
-	.long sys_mq_unlink
-	.long sys_mq_timedsend
-	.long sys_mq_timedreceive
-	.long sys_mq_notify	/* 275 */
-	.long sys_mq_getsetattr
-	.long sys_waitid
-	.long sys_ni_syscall	/* for sys_vserver */
-	.long sys_add_key
-	.long sys_request_key	/* 280 */
-	.long sys_keyctl
-	.long sys_ioprio_set
-	.long sys_ioprio_get
-	.long sys_inotify_init
-	.long sys_inotify_add_watch	/* 285 */
-	.long sys_inotify_rm_watch
-	.long sys_migrate_pages
-	.long sys_openat
-	.long sys_mkdirat
-	.long sys_mknodat		/* 290 */
-	.long sys_fchownat
-	.long sys_futimesat
-	.long sys_fstatat64
-	.long sys_unlinkat
-	.long sys_renameat		/* 295 */
-	.long sys_linkat
-	.long sys_symlinkat
-	.long sys_readlinkat
-	.long sys_fchmodat
-	.long sys_faccessat		/* 300 */
-	.long sys_ni_syscall		/* Reserved for pselect6 */
-	.long sys_ni_syscall		/* Reserved for ppoll */
-	.long sys_unshare
-	.long sys_set_robust_list
-	.long sys_get_robust_list	/* 305 */
-	.long sys_splice
-	.long sys_sync_file_range
-	.long sys_tee
-	.long sys_vmsplice
-	.long sys_move_pages		/* 310 */
-	.long sys_sched_setaffinity
-	.long sys_sched_getaffinity
-	.long sys_kexec_load
-	.long sys_getcpu
-	.long sys_epoll_pwait		/* 315 */
-	.long sys_utimensat
-	.long sys_signalfd
-	.long sys_timerfd_create
-	.long sys_eventfd
-	.long sys_fallocate		/* 320 */
-	.long sys_timerfd_settime
-	.long sys_timerfd_gettime
-	.long sys_signalfd4
-	.long sys_eventfd2
-	.long sys_epoll_create1		/* 325 */
-	.long sys_dup3
-	.long sys_pipe2
-	.long sys_inotify_init1
-	.long sys_preadv
-	.long sys_pwritev		/* 330 */
-	.long sys_rt_tgsigqueueinfo
-	.long sys_perf_event_open
-	.long sys_get_thread_area
-	.long sys_set_thread_area
-	.long sys_atomic_cmpxchg_32	/* 335 */
-	.long sys_atomic_barrier
-	.long sys_fanotify_init
-	.long sys_fanotify_mark
-	.long sys_prlimit64
-	.long sys_name_to_handle_at	/* 340 */
-	.long sys_open_by_handle_at
-	.long sys_clock_adjtime
-	.long sys_syncfs
-
diff --git a/arch/m68k/kernel/syscalltable.S b/arch/m68k/kernel/syscalltable.S
index 01d91cb..8ad4f8e 100644
--- a/arch/m68k/kernel/syscalltable.S
+++ b/arch/m68k/kernel/syscalltable.S
@@ -1,6 +1,4 @@
 /*
- *  linux/arch/m68knommu/kernel/syscalltable.S
- *
  *  Copyright (C) 2002, Greg Ungerer (gerg@snapgear.com)
  *
  *  Based on older entry.S files, the following copyrights apply:
@@ -9,170 +7,189 @@
  *                      Kenneth Albanowski <kjahds@kjahds.com>,
  *  Copyright (C) 2000  Lineo Inc. (www.lineo.com) 
  *  Copyright (C) 1991, 1992  Linus Torvalds
+ *
+ *  Linux/m68k support by Hamish Macdonald
  */
 
 #include <linux/linkage.h>
-#include <asm/unistd.h>
 
-.text
+#ifndef CONFIG_MMU
+#define sys_swapon		sys_ni_syscall
+#define sys_swapoff		sys_ni_syscall
+#define sys_mprotect		sys_ni_syscall
+#define sys_msync		sys_ni_syscall
+#define sys_mlock		sys_ni_syscall
+#define sys_munlock		sys_ni_syscall
+#define sys_mlockall		sys_ni_syscall
+#define sys_munlockall		sys_ni_syscall
+#define sys_mremap		sys_ni_syscall
+#define sys_nfsservctl		sys_ni_syscall
+#define sys_mincore		sys_ni_syscall
+#define sys_madvise		sys_ni_syscall
+#define sys_remap_file_pages	sys_ni_syscall
+
+#define sys_mmap2		sys_mmap_pgoff
+#endif
+
+.data
 ALIGN
 ENTRY(sys_call_table)
-	.long sys_restart_syscall	/* 0  -  old "setup()" system call */
+	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
 	.long sys_exit
 	.long sys_fork
 	.long sys_read
 	.long sys_write
-	.long sys_open		/* 5 */
+	.long sys_open			/* 5 */
 	.long sys_close
 	.long sys_waitpid
 	.long sys_creat
 	.long sys_link
-	.long sys_unlink	/* 10 */
+	.long sys_unlink		/* 10 */
 	.long sys_execve
 	.long sys_chdir
 	.long sys_time
 	.long sys_mknod
-	.long sys_chmod		/* 15 */
+	.long sys_chmod			/* 15 */
 	.long sys_chown16
-	.long sys_ni_syscall	/* old break syscall holder */
+	.long sys_ni_syscall		/* old break syscall holder */
 	.long sys_stat
 	.long sys_lseek
-	.long sys_getpid	/* 20 */
+	.long sys_getpid		/* 20 */
 	.long sys_mount
 	.long sys_oldumount
 	.long sys_setuid16
 	.long sys_getuid16
-	.long sys_stime		/* 25 */
+	.long sys_stime			/* 25 */
 	.long sys_ptrace
 	.long sys_alarm
 	.long sys_fstat
 	.long sys_pause
-	.long sys_utime		/* 30 */
-	.long sys_ni_syscall	/* old stty syscall holder */
-	.long sys_ni_syscall	/* old gtty syscall holder */
+	.long sys_utime			/* 30 */
+	.long sys_ni_syscall		/* old stty syscall holder */
+	.long sys_ni_syscall		/* old gtty syscall holder */
 	.long sys_access
 	.long sys_nice
-	.long sys_ni_syscall	/* 35 */ /* old ftime syscall holder */
+	.long sys_ni_syscall		/* 35 - old ftime syscall holder */
 	.long sys_sync
 	.long sys_kill
 	.long sys_rename
 	.long sys_mkdir
-	.long sys_rmdir		/* 40 */
+	.long sys_rmdir			/* 40 */
 	.long sys_dup
 	.long sys_pipe
 	.long sys_times
-	.long sys_ni_syscall	/* old prof syscall holder */
-	.long sys_brk		/* 45 */
+	.long sys_ni_syscall		/* old prof syscall holder */
+	.long sys_brk			/* 45 */
 	.long sys_setgid16
 	.long sys_getgid16
 	.long sys_signal
 	.long sys_geteuid16
-	.long sys_getegid16	/* 50 */
+	.long sys_getegid16		/* 50 */
 	.long sys_acct
-	.long sys_umount	/* recycled never used phys() */
-	.long sys_ni_syscall	/* old lock syscall holder */
+	.long sys_umount		/* recycled never used phys() */
+	.long sys_ni_syscall		/* old lock syscall holder */
 	.long sys_ioctl
-	.long sys_fcntl		/* 55 */
-	.long sys_ni_syscall	/* old mpx syscall holder */
+	.long sys_fcntl			/* 55 */
+	.long sys_ni_syscall		/* old mpx syscall holder */
 	.long sys_setpgid
-	.long sys_ni_syscall	/* old ulimit syscall holder */
+	.long sys_ni_syscall		/* old ulimit syscall holder */
 	.long sys_ni_syscall
-	.long sys_umask		/* 60 */
+	.long sys_umask			/* 60 */
 	.long sys_chroot
 	.long sys_ustat
 	.long sys_dup2
 	.long sys_getppid
-	.long sys_getpgrp	/* 65 */
+	.long sys_getpgrp		/* 65 */
 	.long sys_setsid
 	.long sys_sigaction
 	.long sys_sgetmask
 	.long sys_ssetmask
-	.long sys_setreuid16	/* 70 */
+	.long sys_setreuid16		/* 70 */
 	.long sys_setregid16
 	.long sys_sigsuspend
 	.long sys_sigpending
 	.long sys_sethostname
-	.long sys_setrlimit	/* 75 */
+	.long sys_setrlimit		/* 75 */
 	.long sys_old_getrlimit
 	.long sys_getrusage
 	.long sys_gettimeofday
 	.long sys_settimeofday
-	.long sys_getgroups16	/* 80 */
+	.long sys_getgroups16		/* 80 */
 	.long sys_setgroups16
 	.long sys_old_select
 	.long sys_symlink
 	.long sys_lstat
-	.long sys_readlink	/* 85 */
+	.long sys_readlink		/* 85 */
 	.long sys_uselib
-	.long sys_ni_syscall	/* sys_swapon */
+	.long sys_swapon
 	.long sys_reboot
 	.long sys_old_readdir
-	.long sys_old_mmap	/* 90 */
+	.long sys_old_mmap		/* 90 */
 	.long sys_munmap
 	.long sys_truncate
 	.long sys_ftruncate
 	.long sys_fchmod
-	.long sys_fchown16	/* 95 */
+	.long sys_fchown16		/* 95 */
 	.long sys_getpriority
 	.long sys_setpriority
-	.long sys_ni_syscall	/* old profil syscall holder */
+	.long sys_ni_syscall		/* old profil syscall holder */
 	.long sys_statfs
-	.long sys_fstatfs	/* 100 */
-	.long sys_ni_syscall	/* ioperm for i386 */
+	.long sys_fstatfs		/* 100 */
+	.long sys_ni_syscall		/* ioperm for i386 */
 	.long sys_socketcall
 	.long sys_syslog
 	.long sys_setitimer
-	.long sys_getitimer	/* 105 */
+	.long sys_getitimer		/* 105 */
 	.long sys_newstat
 	.long sys_newlstat
 	.long sys_newfstat
 	.long sys_ni_syscall
-	.long sys_ni_syscall	/* iopl for i386 */ /* 110 */
+	.long sys_ni_syscall		/* 110 - iopl for i386 */
 	.long sys_vhangup
-	.long sys_ni_syscall	/* obsolete idle() syscall */
-	.long sys_ni_syscall	/* vm86old for i386 */
+	.long sys_ni_syscall		/* obsolete idle() syscall */
+	.long sys_ni_syscall		/* vm86old for i386 */
 	.long sys_wait4
-	.long sys_ni_syscall	/* 115 */ /* sys_swapoff */
+	.long sys_swapoff		/* 115 */
 	.long sys_sysinfo
 	.long sys_ipc
 	.long sys_fsync
 	.long sys_sigreturn
-	.long sys_clone		/* 120 */
+	.long sys_clone			/* 120 */
 	.long sys_setdomainname
 	.long sys_newuname
-	.long sys_cacheflush	/* modify_ldt for i386 */
+	.long sys_cacheflush		/* modify_ldt for i386 */
 	.long sys_adjtimex
-	.long sys_ni_syscall	/* 125 */ /* sys_mprotect */
+	.long sys_mprotect		/* 125 */
 	.long sys_sigprocmask
-	.long sys_ni_syscall	/* old "creat_module" */
+	.long sys_ni_syscall		/* old "create_module" */
 	.long sys_init_module
 	.long sys_delete_module
-	.long sys_ni_syscall	/* 130: old "get_kernel_syms" */
+	.long sys_ni_syscall		/* 130 - old "get_kernel_syms" */
 	.long sys_quotactl
 	.long sys_getpgid
 	.long sys_fchdir
 	.long sys_bdflush
-	.long sys_sysfs		/* 135 */
+	.long sys_sysfs			/* 135 */
 	.long sys_personality
-	.long sys_ni_syscall	/* for afs_syscall */
+	.long sys_ni_syscall		/* for afs_syscall */
 	.long sys_setfsuid16
 	.long sys_setfsgid16
-	.long sys_llseek	/* 140 */
+	.long sys_llseek		/* 140 */
 	.long sys_getdents
 	.long sys_select
 	.long sys_flock
-	.long sys_ni_syscall	/* sys_msync */
-	.long sys_readv		/* 145 */
+	.long sys_msync
+	.long sys_readv			/* 145 */
 	.long sys_writev
 	.long sys_getsid
 	.long sys_fdatasync
 	.long sys_sysctl
-	.long sys_ni_syscall	/* 150 */ /* sys_mlock */
-	.long sys_ni_syscall	/* sys_munlock */
-	.long sys_ni_syscall	/* sys_mlockall */
-	.long sys_ni_syscall	/* sys_munlockall */
+	.long sys_mlock			/* 150 */
+	.long sys_munlock
+	.long sys_mlockall
+	.long sys_munlockall
 	.long sys_sched_setparam
-	.long sys_sched_getparam /* 155 */
+	.long sys_sched_getparam	/* 155 */
 	.long sys_sched_setscheduler
 	.long sys_sched_getscheduler
 	.long sys_sched_yield
@@ -180,124 +197,124 @@ ENTRY(sys_call_table)
 	.long sys_sched_get_priority_min  /* 160 */
 	.long sys_sched_rr_get_interval
 	.long sys_nanosleep
-	.long sys_ni_syscall	/* sys_mremap */
+	.long sys_mremap
 	.long sys_setresuid16
-	.long sys_getresuid16	/* 165 */
-	.long sys_getpagesize	/* sys_getpagesize */
-	.long sys_ni_syscall	/* old "query_module" */
+	.long sys_getresuid16		/* 165 */
+	.long sys_getpagesize
+	.long sys_ni_syscall		/* old "query_module" */
 	.long sys_poll
-	.long sys_ni_syscall	/* sys_nfsservctl */
-	.long sys_setresgid16	/* 170 */
+	.long sys_nfsservctl
+	.long sys_setresgid16		/* 170 */
 	.long sys_getresgid16
 	.long sys_prctl
 	.long sys_rt_sigreturn
 	.long sys_rt_sigaction
-	.long sys_rt_sigprocmask /* 175 */
+	.long sys_rt_sigprocmask	/* 175 */
 	.long sys_rt_sigpending
 	.long sys_rt_sigtimedwait
 	.long sys_rt_sigqueueinfo
 	.long sys_rt_sigsuspend
-	.long sys_pread64	/* 180 */
+	.long sys_pread64		/* 180 */
 	.long sys_pwrite64
 	.long sys_lchown16
 	.long sys_getcwd
 	.long sys_capget
-	.long sys_capset	/* 185 */
+	.long sys_capset		/* 185 */
 	.long sys_sigaltstack
 	.long sys_sendfile
-	.long sys_ni_syscall	/* streams1 */
-	.long sys_ni_syscall	/* streams2 */
-	.long sys_vfork		/* 190 */
+	.long sys_ni_syscall		/* streams1 */
+	.long sys_ni_syscall		/* streams2 */
+	.long sys_vfork			/* 190 */
 	.long sys_getrlimit
-	.long sys_mmap_pgoff
+	.long sys_mmap2
 	.long sys_truncate64
 	.long sys_ftruncate64
-	.long sys_stat64	/* 195 */
+	.long sys_stat64		/* 195 */
 	.long sys_lstat64
 	.long sys_fstat64
 	.long sys_chown
 	.long sys_getuid
-	.long sys_getgid	/* 200 */
+	.long sys_getgid		/* 200 */
 	.long sys_geteuid
 	.long sys_getegid
 	.long sys_setreuid
 	.long sys_setregid
-	.long sys_getgroups	/* 205 */
+	.long sys_getgroups		/* 205 */
 	.long sys_setgroups
 	.long sys_fchown
 	.long sys_setresuid
 	.long sys_getresuid
-	.long sys_setresgid	/* 210 */
+	.long sys_setresgid		/* 210 */
 	.long sys_getresgid
 	.long sys_lchown
 	.long sys_setuid
 	.long sys_setgid
-	.long sys_setfsuid	/* 215 */
+	.long sys_setfsuid		/* 215 */
 	.long sys_setfsgid
 	.long sys_pivot_root
 	.long sys_ni_syscall
 	.long sys_ni_syscall
-	.long sys_getdents64	/* 220 */
+	.long sys_getdents64		/* 220 */
 	.long sys_gettid
 	.long sys_tkill
 	.long sys_setxattr
 	.long sys_lsetxattr
-	.long sys_fsetxattr	/* 225 */
+	.long sys_fsetxattr		/* 225 */
 	.long sys_getxattr
 	.long sys_lgetxattr
 	.long sys_fgetxattr
 	.long sys_listxattr
-	.long sys_llistxattr	/* 230 */
+	.long sys_llistxattr		/* 230 */
 	.long sys_flistxattr
 	.long sys_removexattr
 	.long sys_lremovexattr
 	.long sys_fremovexattr
-	.long sys_futex		/* 235 */
+	.long sys_futex			/* 235 */
 	.long sys_sendfile64
-	.long sys_ni_syscall	/* sys_mincore */
-	.long sys_ni_syscall	/* sys_madvise */
+	.long sys_mincore
+	.long sys_madvise
 	.long sys_fcntl64
-	.long sys_readahead	/* 240 */
+	.long sys_readahead		/* 240 */
 	.long sys_io_setup
 	.long sys_io_destroy
 	.long sys_io_getevents
 	.long sys_io_submit
-	.long sys_io_cancel	/* 245 */
+	.long sys_io_cancel		/* 245 */
 	.long sys_fadvise64
 	.long sys_exit_group
 	.long sys_lookup_dcookie
 	.long sys_epoll_create
-	.long sys_epoll_ctl	/* 250 */
+	.long sys_epoll_ctl		/* 250 */
 	.long sys_epoll_wait
-	.long sys_ni_syscall	/* sys_remap_file_pages */
+	.long sys_remap_file_pages
 	.long sys_set_tid_address
 	.long sys_timer_create
-	.long sys_timer_settime	/* 255 */
+	.long sys_timer_settime		/* 255 */
 	.long sys_timer_gettime
 	.long sys_timer_getoverrun
 	.long sys_timer_delete
 	.long sys_clock_settime
-	.long sys_clock_gettime	/* 260 */
+	.long sys_clock_gettime		/* 260 */
 	.long sys_clock_getres
 	.long sys_clock_nanosleep
 	.long sys_statfs64
 	.long sys_fstatfs64
-	.long sys_tgkill	/* 265 */
+	.long sys_tgkill		/* 265 */
 	.long sys_utimes
 	.long sys_fadvise64_64
-	.long sys_mbind	
+	.long sys_mbind
 	.long sys_get_mempolicy
-	.long sys_set_mempolicy	/* 270 */
+	.long sys_set_mempolicy		/* 270 */
 	.long sys_mq_open
 	.long sys_mq_unlink
 	.long sys_mq_timedsend
 	.long sys_mq_timedreceive
-	.long sys_mq_notify	/* 275 */
+	.long sys_mq_notify		/* 275 */
 	.long sys_mq_getsetattr
 	.long sys_waitid
-	.long sys_ni_syscall	/* for sys_vserver */
+	.long sys_ni_syscall		/* for sys_vserver */
 	.long sys_add_key
-	.long sys_request_key	/* 280 */
+	.long sys_request_key		/* 280 */
 	.long sys_keyctl
 	.long sys_ioprio_set
 	.long sys_ioprio_get
@@ -362,7 +379,3 @@ ENTRY(sys_call_table)
 	.long sys_clock_adjtime
 	.long sys_syncfs
 
-	.rept NR_syscalls-(.-sys_call_table)/4
-		.long sys_ni_syscall
-	.endr
-
-- 
1.7.0.4

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-06 20:33 [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table Geert Uytterhoeven
@ 2011-04-06 22:05 ` Philippe De Muyter
       [not found] ` <20110406220510.GA17350@frolo.macqel>
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 20+ messages in thread
From: Philippe De Muyter @ 2011-04-06 22:05 UTC (permalink / raw)
  To: uClinux development list; +Cc: Greg Ungerer, Linux/m68k

On Wed, Apr 06, 2011 at 10:33:07PM +0200, Geert Uytterhoeven wrote:
> Impact for m68knommu:
>   - The table is now stored in .data instead of .text,

Do you mean .rodata ?

>   - Removed unused padding at the end of the table.
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> Not tested on m68knommu
> 
> Questions:
>   - Why was it .text?

Probably because it is constanti (read-only).

Philippe

-- 
Philippe De Muyter +32 2 6101532 Macq SA rue de l'Aeronef 2 B-1140 Bruxelles

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
       [not found] ` <20110406220510.GA17350@frolo.macqel>
@ 2011-04-07  0:53   ` Greg Ungerer
  2011-04-07  2:12     ` Gavin Lambert
       [not found]     ` <000301cbf4c9$40339fc0$c09adf40$@com>
  0 siblings, 2 replies; 20+ messages in thread
From: Greg Ungerer @ 2011-04-07  0:53 UTC (permalink / raw)
  To: Philippe De Muyter, Geert Uytterhoeven
  Cc: uClinux development list, Linux/m68k

On 07/04/11 08:05, Philippe De Muyter wrote:
> On Wed, Apr 06, 2011 at 10:33:07PM +0200, Geert Uytterhoeven wrote:
>> Impact for m68knommu:
>>    - The table is now stored in .data instead of .text,
>
> Do you mean .rodata ?
>
>>    - Removed unused padding at the end of the table.
>>
>> Signed-off-by: Geert Uytterhoeven<geert@linux-m68k.org>
>> ---
>> Not tested on m68knommu
>>
>> Questions:
>>    - Why was it .text?
>
> Probably because it is constanti (read-only).

Yes, I suspect that was the original thinking. It has been that way
for a very long time (it is in .text in the 2.4 kernel patches for
this too).

I will test them on m68knommu today, I am sure moving to .data (really
rodata) will be fine.

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-06 20:33 [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table Geert Uytterhoeven
  2011-04-06 22:05 ` [uClinux-dev] " Philippe De Muyter
       [not found] ` <20110406220510.GA17350@frolo.macqel>
@ 2011-04-07  1:53 ` Greg Ungerer
  2011-04-13 18:16 ` Geert Uytterhoeven
  3 siblings, 0 replies; 20+ messages in thread
From: Greg Ungerer @ 2011-04-07  1:53 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Greg Ungerer, Linux/m68k, uClinux list


Hi Geert,

On 07/04/11 06:33, Geert Uytterhoeven wrote:
> Impact for m68knommu:
>    - The table is now stored in .data instead of .text,
>    - Removed unused padding at the end of the table.
>
> Signed-off-by: Geert Uytterhoeven<geert@linux-m68k.org>
> ---
> Not tested on m68knommu

Compile and run tested on m68knommu.


> Questions:
>    - Why was it .text?
>    - Was NR_syscalls ever larger than the actual number of syscalls?

A long time ago (circa 2.4 kernels). Not even sure why then.
It may have had something to do with maintaining the same number
of syscalls as true MMU m68k had.

Certainly doesn't need to be that way now.

Acked-by: Greg Ungerer <gerg@uclinux.org>

Are you going to be pushing this via your m68k git tree?

Regards
Greg


>
>   arch/m68k/kernel/Makefile_mm    |    2 +-
>   arch/m68k/kernel/entry_mm.S     |  348 ---------------------------------------
>   arch/m68k/kernel/syscalltable.S |  205 ++++++++++++-----------
>   3 files changed, 110 insertions(+), 445 deletions(-)
>
> diff --git a/arch/m68k/kernel/Makefile_mm b/arch/m68k/kernel/Makefile_mm
> index 55d5d6b..aced678 100644
> --- a/arch/m68k/kernel/Makefile_mm
> +++ b/arch/m68k/kernel/Makefile_mm
> @@ -10,7 +10,7 @@ endif
>   extra-y	+= vmlinux.lds
>
>   obj-y	:= entry.o process.o traps.o ints.o signal.o ptrace.o module.o \
> -	   sys_m68k.o time.o setup.o m68k_ksyms.o devres.o
> +	   sys_m68k.o time.o setup.o m68k_ksyms.o devres.o syscalltable.o
>
>   devres-y = ../../../kernel/irq/devres.o
>
> diff --git a/arch/m68k/kernel/entry_mm.S b/arch/m68k/kernel/entry_mm.S
> index 1359ee6..bd0ec05 100644
> --- a/arch/m68k/kernel/entry_mm.S
> +++ b/arch/m68k/kernel/entry_mm.S
> @@ -407,351 +407,3 @@ resume:
>
>   	rts
>
> -.data
> -ALIGN
> -sys_call_table:
> -	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
> -	.long sys_exit
> -	.long sys_fork
> -	.long sys_read
> -	.long sys_write
> -	.long sys_open		/* 5 */
> -	.long sys_close
> -	.long sys_waitpid
> -	.long sys_creat
> -	.long sys_link
> -	.long sys_unlink	/* 10 */
> -	.long sys_execve
> -	.long sys_chdir
> -	.long sys_time
> -	.long sys_mknod
> -	.long sys_chmod		/* 15 */
> -	.long sys_chown16
> -	.long sys_ni_syscall				/* old break syscall holder */
> -	.long sys_stat
> -	.long sys_lseek
> -	.long sys_getpid	/* 20 */
> -	.long sys_mount
> -	.long sys_oldumount
> -	.long sys_setuid16
> -	.long sys_getuid16
> -	.long sys_stime		/* 25 */
> -	.long sys_ptrace
> -	.long sys_alarm
> -	.long sys_fstat
> -	.long sys_pause
> -	.long sys_utime		/* 30 */
> -	.long sys_ni_syscall				/* old stty syscall holder */
> -	.long sys_ni_syscall				/* old gtty syscall holder */
> -	.long sys_access
> -	.long sys_nice
> -	.long sys_ni_syscall	/* 35 */	/* old ftime syscall holder */
> -	.long sys_sync
> -	.long sys_kill
> -	.long sys_rename
> -	.long sys_mkdir
> -	.long sys_rmdir		/* 40 */
> -	.long sys_dup
> -	.long sys_pipe
> -	.long sys_times
> -	.long sys_ni_syscall				/* old prof syscall holder */
> -	.long sys_brk		/* 45 */
> -	.long sys_setgid16
> -	.long sys_getgid16
> -	.long sys_signal
> -	.long sys_geteuid16
> -	.long sys_getegid16	/* 50 */
> -	.long sys_acct
> -	.long sys_umount				/* recycled never used phys() */
> -	.long sys_ni_syscall				/* old lock syscall holder */
> -	.long sys_ioctl
> -	.long sys_fcntl		/* 55 */
> -	.long sys_ni_syscall				/* old mpx syscall holder */
> -	.long sys_setpgid
> -	.long sys_ni_syscall				/* old ulimit syscall holder */
> -	.long sys_ni_syscall
> -	.long sys_umask		/* 60 */
> -	.long sys_chroot
> -	.long sys_ustat
> -	.long sys_dup2
> -	.long sys_getppid
> -	.long sys_getpgrp	/* 65 */
> -	.long sys_setsid
> -	.long sys_sigaction
> -	.long sys_sgetmask
> -	.long sys_ssetmask
> -	.long sys_setreuid16	/* 70 */
> -	.long sys_setregid16
> -	.long sys_sigsuspend
> -	.long sys_sigpending
> -	.long sys_sethostname
> -	.long sys_setrlimit	/* 75 */
> -	.long sys_old_getrlimit
> -	.long sys_getrusage
> -	.long sys_gettimeofday
> -	.long sys_settimeofday
> -	.long sys_getgroups16	/* 80 */
> -	.long sys_setgroups16
> -	.long sys_old_select
> -	.long sys_symlink
> -	.long sys_lstat
> -	.long sys_readlink	/* 85 */
> -	.long sys_uselib
> -	.long sys_swapon
> -	.long sys_reboot
> -	.long sys_old_readdir
> -	.long sys_old_mmap	/* 90 */
> -	.long sys_munmap
> -	.long sys_truncate
> -	.long sys_ftruncate
> -	.long sys_fchmod
> -	.long sys_fchown16	/* 95 */
> -	.long sys_getpriority
> -	.long sys_setpriority
> -	.long sys_ni_syscall				/* old profil syscall holder */
> -	.long sys_statfs
> -	.long sys_fstatfs	/* 100 */
> -	.long sys_ni_syscall				/* ioperm for i386 */
> -	.long sys_socketcall
> -	.long sys_syslog
> -	.long sys_setitimer
> -	.long sys_getitimer	/* 105 */
> -	.long sys_newstat
> -	.long sys_newlstat
> -	.long sys_newfstat
> -	.long sys_ni_syscall
> -	.long sys_ni_syscall	/* 110 */	/* iopl for i386 */
> -	.long sys_vhangup
> -	.long sys_ni_syscall				/* obsolete idle() syscall */
> -	.long sys_ni_syscall				/* vm86old for i386 */
> -	.long sys_wait4
> -	.long sys_swapoff	/* 115 */
> -	.long sys_sysinfo
> -	.long sys_ipc
> -	.long sys_fsync
> -	.long sys_sigreturn
> -	.long sys_clone		/* 120 */
> -	.long sys_setdomainname
> -	.long sys_newuname
> -	.long sys_cacheflush				/* modify_ldt for i386 */
> -	.long sys_adjtimex
> -	.long sys_mprotect	/* 125 */
> -	.long sys_sigprocmask
> -	.long sys_ni_syscall		/* old "create_module" */
> -	.long sys_init_module
> -	.long sys_delete_module
> -	.long sys_ni_syscall	/* 130 - old "get_kernel_syms" */
> -	.long sys_quotactl
> -	.long sys_getpgid
> -	.long sys_fchdir
> -	.long sys_bdflush
> -	.long sys_sysfs		/* 135 */
> -	.long sys_personality
> -	.long sys_ni_syscall				/* for afs_syscall */
> -	.long sys_setfsuid16
> -	.long sys_setfsgid16
> -	.long sys_llseek	/* 140 */
> -	.long sys_getdents
> -	.long sys_select
> -	.long sys_flock
> -	.long sys_msync
> -	.long sys_readv		/* 145 */
> -	.long sys_writev
> -	.long sys_getsid
> -	.long sys_fdatasync
> -	.long sys_sysctl
> -	.long sys_mlock		/* 150 */
> -	.long sys_munlock
> -	.long sys_mlockall
> -	.long sys_munlockall
> -	.long sys_sched_setparam
> -	.long sys_sched_getparam	/* 155 */
> -	.long sys_sched_setscheduler
> -	.long sys_sched_getscheduler
> -	.long sys_sched_yield
> -	.long sys_sched_get_priority_max
> -	.long sys_sched_get_priority_min  /* 160 */
> -	.long sys_sched_rr_get_interval
> -	.long sys_nanosleep
> -	.long sys_mremap
> -	.long sys_setresuid16
> -	.long sys_getresuid16	/* 165 */
> -	.long sys_getpagesize
> -	.long sys_ni_syscall		/* old sys_query_module */
> -	.long sys_poll
> -	.long sys_nfsservctl
> -	.long sys_setresgid16	/* 170 */
> -	.long sys_getresgid16
> -	.long sys_prctl
> -	.long sys_rt_sigreturn
> -	.long sys_rt_sigaction
> -	.long sys_rt_sigprocmask	/* 175 */
> -	.long sys_rt_sigpending
> -	.long sys_rt_sigtimedwait
> -	.long sys_rt_sigqueueinfo
> -	.long sys_rt_sigsuspend
> -	.long sys_pread64	/* 180 */
> -	.long sys_pwrite64
> -	.long sys_lchown16;
> -	.long sys_getcwd
> -	.long sys_capget
> -	.long sys_capset	/* 185 */
> -	.long sys_sigaltstack
> -	.long sys_sendfile
> -	.long sys_ni_syscall				/* streams1 */
> -	.long sys_ni_syscall				/* streams2 */
> -	.long sys_vfork		/* 190 */
> -	.long sys_getrlimit
> -	.long sys_mmap2
> -	.long sys_truncate64
> -	.long sys_ftruncate64
> -	.long sys_stat64	/* 195 */
> -	.long sys_lstat64
> -	.long sys_fstat64
> -	.long sys_chown
> -	.long sys_getuid
> -	.long sys_getgid	/* 200 */
> -	.long sys_geteuid
> -	.long sys_getegid
> -	.long sys_setreuid
> -	.long sys_setregid
> -	.long sys_getgroups	/* 205 */
> -	.long sys_setgroups
> -	.long sys_fchown
> -	.long sys_setresuid
> -	.long sys_getresuid
> -	.long sys_setresgid	/* 210 */
> -	.long sys_getresgid
> -	.long sys_lchown
> -	.long sys_setuid
> -	.long sys_setgid
> -	.long sys_setfsuid	/* 215 */
> -	.long sys_setfsgid
> -	.long sys_pivot_root
> -	.long sys_ni_syscall
> -	.long sys_ni_syscall
> -	.long sys_getdents64	/* 220 */
> -	.long sys_gettid
> -	.long sys_tkill
> -	.long sys_setxattr
> -	.long sys_lsetxattr
> -	.long sys_fsetxattr	/* 225 */
> -	.long sys_getxattr
> -	.long sys_lgetxattr
> -	.long sys_fgetxattr
> -	.long sys_listxattr
> -	.long sys_llistxattr	/* 230 */
> -	.long sys_flistxattr
> -	.long sys_removexattr
> -	.long sys_lremovexattr
> -	.long sys_fremovexattr
> -	.long sys_futex		/* 235 */
> -	.long sys_sendfile64
> -	.long sys_mincore
> -	.long sys_madvise
> -	.long sys_fcntl64
> -	.long sys_readahead	/* 240 */
> -	.long sys_io_setup
> -	.long sys_io_destroy
> -	.long sys_io_getevents
> -	.long sys_io_submit
> -	.long sys_io_cancel	/* 245 */
> -	.long sys_fadvise64
> -	.long sys_exit_group
> -	.long sys_lookup_dcookie
> -	.long sys_epoll_create
> -	.long sys_epoll_ctl	/* 250 */
> -	.long sys_epoll_wait
> -	.long sys_remap_file_pages
> -	.long sys_set_tid_address
> -	.long sys_timer_create
> -	.long sys_timer_settime	/* 255 */
> -	.long sys_timer_gettime
> -	.long sys_timer_getoverrun
> -	.long sys_timer_delete
> -	.long sys_clock_settime
> -	.long sys_clock_gettime	/* 260 */
> -	.long sys_clock_getres
> -	.long sys_clock_nanosleep
> -	.long sys_statfs64
> -	.long sys_fstatfs64
> -	.long sys_tgkill	/* 265 */
> -	.long sys_utimes
> -	.long sys_fadvise64_64
> -	.long sys_mbind
> -	.long sys_get_mempolicy
> -	.long sys_set_mempolicy	/* 270 */
> -	.long sys_mq_open
> -	.long sys_mq_unlink
> -	.long sys_mq_timedsend
> -	.long sys_mq_timedreceive
> -	.long sys_mq_notify	/* 275 */
> -	.long sys_mq_getsetattr
> -	.long sys_waitid
> -	.long sys_ni_syscall	/* for sys_vserver */
> -	.long sys_add_key
> -	.long sys_request_key	/* 280 */
> -	.long sys_keyctl
> -	.long sys_ioprio_set
> -	.long sys_ioprio_get
> -	.long sys_inotify_init
> -	.long sys_inotify_add_watch	/* 285 */
> -	.long sys_inotify_rm_watch
> -	.long sys_migrate_pages
> -	.long sys_openat
> -	.long sys_mkdirat
> -	.long sys_mknodat		/* 290 */
> -	.long sys_fchownat
> -	.long sys_futimesat
> -	.long sys_fstatat64
> -	.long sys_unlinkat
> -	.long sys_renameat		/* 295 */
> -	.long sys_linkat
> -	.long sys_symlinkat
> -	.long sys_readlinkat
> -	.long sys_fchmodat
> -	.long sys_faccessat		/* 300 */
> -	.long sys_ni_syscall		/* Reserved for pselect6 */
> -	.long sys_ni_syscall		/* Reserved for ppoll */
> -	.long sys_unshare
> -	.long sys_set_robust_list
> -	.long sys_get_robust_list	/* 305 */
> -	.long sys_splice
> -	.long sys_sync_file_range
> -	.long sys_tee
> -	.long sys_vmsplice
> -	.long sys_move_pages		/* 310 */
> -	.long sys_sched_setaffinity
> -	.long sys_sched_getaffinity
> -	.long sys_kexec_load
> -	.long sys_getcpu
> -	.long sys_epoll_pwait		/* 315 */
> -	.long sys_utimensat
> -	.long sys_signalfd
> -	.long sys_timerfd_create
> -	.long sys_eventfd
> -	.long sys_fallocate		/* 320 */
> -	.long sys_timerfd_settime
> -	.long sys_timerfd_gettime
> -	.long sys_signalfd4
> -	.long sys_eventfd2
> -	.long sys_epoll_create1		/* 325 */
> -	.long sys_dup3
> -	.long sys_pipe2
> -	.long sys_inotify_init1
> -	.long sys_preadv
> -	.long sys_pwritev		/* 330 */
> -	.long sys_rt_tgsigqueueinfo
> -	.long sys_perf_event_open
> -	.long sys_get_thread_area
> -	.long sys_set_thread_area
> -	.long sys_atomic_cmpxchg_32	/* 335 */
> -	.long sys_atomic_barrier
> -	.long sys_fanotify_init
> -	.long sys_fanotify_mark
> -	.long sys_prlimit64
> -	.long sys_name_to_handle_at	/* 340 */
> -	.long sys_open_by_handle_at
> -	.long sys_clock_adjtime
> -	.long sys_syncfs
> -
> diff --git a/arch/m68k/kernel/syscalltable.S b/arch/m68k/kernel/syscalltable.S
> index 01d91cb..8ad4f8e 100644
> --- a/arch/m68k/kernel/syscalltable.S
> +++ b/arch/m68k/kernel/syscalltable.S
> @@ -1,6 +1,4 @@
>   /*
> - *  linux/arch/m68knommu/kernel/syscalltable.S
> - *
>    *  Copyright (C) 2002, Greg Ungerer (gerg@snapgear.com)
>    *
>    *  Based on older entry.S files, the following copyrights apply:
> @@ -9,170 +7,189 @@
>    *                      Kenneth Albanowski<kjahds@kjahds.com>,
>    *  Copyright (C) 2000  Lineo Inc. (www.lineo.com)
>    *  Copyright (C) 1991, 1992  Linus Torvalds
> + *
> + *  Linux/m68k support by Hamish Macdonald
>    */
>
>   #include<linux/linkage.h>
> -#include<asm/unistd.h>
>
> -.text
> +#ifndef CONFIG_MMU
> +#define sys_swapon		sys_ni_syscall
> +#define sys_swapoff		sys_ni_syscall
> +#define sys_mprotect		sys_ni_syscall
> +#define sys_msync		sys_ni_syscall
> +#define sys_mlock		sys_ni_syscall
> +#define sys_munlock		sys_ni_syscall
> +#define sys_mlockall		sys_ni_syscall
> +#define sys_munlockall		sys_ni_syscall
> +#define sys_mremap		sys_ni_syscall
> +#define sys_nfsservctl		sys_ni_syscall
> +#define sys_mincore		sys_ni_syscall
> +#define sys_madvise		sys_ni_syscall
> +#define sys_remap_file_pages	sys_ni_syscall
> +
> +#define sys_mmap2		sys_mmap_pgoff
> +#endif
> +
> +.data
>   ALIGN
>   ENTRY(sys_call_table)
> -	.long sys_restart_syscall	/* 0  -  old "setup()" system call */
> +	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
>   	.long sys_exit
>   	.long sys_fork
>   	.long sys_read
>   	.long sys_write
> -	.long sys_open		/* 5 */
> +	.long sys_open			/* 5 */
>   	.long sys_close
>   	.long sys_waitpid
>   	.long sys_creat
>   	.long sys_link
> -	.long sys_unlink	/* 10 */
> +	.long sys_unlink		/* 10 */
>   	.long sys_execve
>   	.long sys_chdir
>   	.long sys_time
>   	.long sys_mknod
> -	.long sys_chmod		/* 15 */
> +	.long sys_chmod			/* 15 */
>   	.long sys_chown16
> -	.long sys_ni_syscall	/* old break syscall holder */
> +	.long sys_ni_syscall		/* old break syscall holder */
>   	.long sys_stat
>   	.long sys_lseek
> -	.long sys_getpid	/* 20 */
> +	.long sys_getpid		/* 20 */
>   	.long sys_mount
>   	.long sys_oldumount
>   	.long sys_setuid16
>   	.long sys_getuid16
> -	.long sys_stime		/* 25 */
> +	.long sys_stime			/* 25 */
>   	.long sys_ptrace
>   	.long sys_alarm
>   	.long sys_fstat
>   	.long sys_pause
> -	.long sys_utime		/* 30 */
> -	.long sys_ni_syscall	/* old stty syscall holder */
> -	.long sys_ni_syscall	/* old gtty syscall holder */
> +	.long sys_utime			/* 30 */
> +	.long sys_ni_syscall		/* old stty syscall holder */
> +	.long sys_ni_syscall		/* old gtty syscall holder */
>   	.long sys_access
>   	.long sys_nice
> -	.long sys_ni_syscall	/* 35 */ /* old ftime syscall holder */
> +	.long sys_ni_syscall		/* 35 - old ftime syscall holder */
>   	.long sys_sync
>   	.long sys_kill
>   	.long sys_rename
>   	.long sys_mkdir
> -	.long sys_rmdir		/* 40 */
> +	.long sys_rmdir			/* 40 */
>   	.long sys_dup
>   	.long sys_pipe
>   	.long sys_times
> -	.long sys_ni_syscall	/* old prof syscall holder */
> -	.long sys_brk		/* 45 */
> +	.long sys_ni_syscall		/* old prof syscall holder */
> +	.long sys_brk			/* 45 */
>   	.long sys_setgid16
>   	.long sys_getgid16
>   	.long sys_signal
>   	.long sys_geteuid16
> -	.long sys_getegid16	/* 50 */
> +	.long sys_getegid16		/* 50 */
>   	.long sys_acct
> -	.long sys_umount	/* recycled never used phys() */
> -	.long sys_ni_syscall	/* old lock syscall holder */
> +	.long sys_umount		/* recycled never used phys() */
> +	.long sys_ni_syscall		/* old lock syscall holder */
>   	.long sys_ioctl
> -	.long sys_fcntl		/* 55 */
> -	.long sys_ni_syscall	/* old mpx syscall holder */
> +	.long sys_fcntl			/* 55 */
> +	.long sys_ni_syscall		/* old mpx syscall holder */
>   	.long sys_setpgid
> -	.long sys_ni_syscall	/* old ulimit syscall holder */
> +	.long sys_ni_syscall		/* old ulimit syscall holder */
>   	.long sys_ni_syscall
> -	.long sys_umask		/* 60 */
> +	.long sys_umask			/* 60 */
>   	.long sys_chroot
>   	.long sys_ustat
>   	.long sys_dup2
>   	.long sys_getppid
> -	.long sys_getpgrp	/* 65 */
> +	.long sys_getpgrp		/* 65 */
>   	.long sys_setsid
>   	.long sys_sigaction
>   	.long sys_sgetmask
>   	.long sys_ssetmask
> -	.long sys_setreuid16	/* 70 */
> +	.long sys_setreuid16		/* 70 */
>   	.long sys_setregid16
>   	.long sys_sigsuspend
>   	.long sys_sigpending
>   	.long sys_sethostname
> -	.long sys_setrlimit	/* 75 */
> +	.long sys_setrlimit		/* 75 */
>   	.long sys_old_getrlimit
>   	.long sys_getrusage
>   	.long sys_gettimeofday
>   	.long sys_settimeofday
> -	.long sys_getgroups16	/* 80 */
> +	.long sys_getgroups16		/* 80 */
>   	.long sys_setgroups16
>   	.long sys_old_select
>   	.long sys_symlink
>   	.long sys_lstat
> -	.long sys_readlink	/* 85 */
> +	.long sys_readlink		/* 85 */
>   	.long sys_uselib
> -	.long sys_ni_syscall	/* sys_swapon */
> +	.long sys_swapon
>   	.long sys_reboot
>   	.long sys_old_readdir
> -	.long sys_old_mmap	/* 90 */
> +	.long sys_old_mmap		/* 90 */
>   	.long sys_munmap
>   	.long sys_truncate
>   	.long sys_ftruncate
>   	.long sys_fchmod
> -	.long sys_fchown16	/* 95 */
> +	.long sys_fchown16		/* 95 */
>   	.long sys_getpriority
>   	.long sys_setpriority
> -	.long sys_ni_syscall	/* old profil syscall holder */
> +	.long sys_ni_syscall		/* old profil syscall holder */
>   	.long sys_statfs
> -	.long sys_fstatfs	/* 100 */
> -	.long sys_ni_syscall	/* ioperm for i386 */
> +	.long sys_fstatfs		/* 100 */
> +	.long sys_ni_syscall		/* ioperm for i386 */
>   	.long sys_socketcall
>   	.long sys_syslog
>   	.long sys_setitimer
> -	.long sys_getitimer	/* 105 */
> +	.long sys_getitimer		/* 105 */
>   	.long sys_newstat
>   	.long sys_newlstat
>   	.long sys_newfstat
>   	.long sys_ni_syscall
> -	.long sys_ni_syscall	/* iopl for i386 */ /* 110 */
> +	.long sys_ni_syscall		/* 110 - iopl for i386 */
>   	.long sys_vhangup
> -	.long sys_ni_syscall	/* obsolete idle() syscall */
> -	.long sys_ni_syscall	/* vm86old for i386 */
> +	.long sys_ni_syscall		/* obsolete idle() syscall */
> +	.long sys_ni_syscall		/* vm86old for i386 */
>   	.long sys_wait4
> -	.long sys_ni_syscall	/* 115 */ /* sys_swapoff */
> +	.long sys_swapoff		/* 115 */
>   	.long sys_sysinfo
>   	.long sys_ipc
>   	.long sys_fsync
>   	.long sys_sigreturn
> -	.long sys_clone		/* 120 */
> +	.long sys_clone			/* 120 */
>   	.long sys_setdomainname
>   	.long sys_newuname
> -	.long sys_cacheflush	/* modify_ldt for i386 */
> +	.long sys_cacheflush		/* modify_ldt for i386 */
>   	.long sys_adjtimex
> -	.long sys_ni_syscall	/* 125 */ /* sys_mprotect */
> +	.long sys_mprotect		/* 125 */
>   	.long sys_sigprocmask
> -	.long sys_ni_syscall	/* old "creat_module" */
> +	.long sys_ni_syscall		/* old "create_module" */
>   	.long sys_init_module
>   	.long sys_delete_module
> -	.long sys_ni_syscall	/* 130: old "get_kernel_syms" */
> +	.long sys_ni_syscall		/* 130 - old "get_kernel_syms" */
>   	.long sys_quotactl
>   	.long sys_getpgid
>   	.long sys_fchdir
>   	.long sys_bdflush
> -	.long sys_sysfs		/* 135 */
> +	.long sys_sysfs			/* 135 */
>   	.long sys_personality
> -	.long sys_ni_syscall	/* for afs_syscall */
> +	.long sys_ni_syscall		/* for afs_syscall */
>   	.long sys_setfsuid16
>   	.long sys_setfsgid16
> -	.long sys_llseek	/* 140 */
> +	.long sys_llseek		/* 140 */
>   	.long sys_getdents
>   	.long sys_select
>   	.long sys_flock
> -	.long sys_ni_syscall	/* sys_msync */
> -	.long sys_readv		/* 145 */
> +	.long sys_msync
> +	.long sys_readv			/* 145 */
>   	.long sys_writev
>   	.long sys_getsid
>   	.long sys_fdatasync
>   	.long sys_sysctl
> -	.long sys_ni_syscall	/* 150 */ /* sys_mlock */
> -	.long sys_ni_syscall	/* sys_munlock */
> -	.long sys_ni_syscall	/* sys_mlockall */
> -	.long sys_ni_syscall	/* sys_munlockall */
> +	.long sys_mlock			/* 150 */
> +	.long sys_munlock
> +	.long sys_mlockall
> +	.long sys_munlockall
>   	.long sys_sched_setparam
> -	.long sys_sched_getparam /* 155 */
> +	.long sys_sched_getparam	/* 155 */
>   	.long sys_sched_setscheduler
>   	.long sys_sched_getscheduler
>   	.long sys_sched_yield
> @@ -180,124 +197,124 @@ ENTRY(sys_call_table)
>   	.long sys_sched_get_priority_min  /* 160 */
>   	.long sys_sched_rr_get_interval
>   	.long sys_nanosleep
> -	.long sys_ni_syscall	/* sys_mremap */
> +	.long sys_mremap
>   	.long sys_setresuid16
> -	.long sys_getresuid16	/* 165 */
> -	.long sys_getpagesize	/* sys_getpagesize */
> -	.long sys_ni_syscall	/* old "query_module" */
> +	.long sys_getresuid16		/* 165 */
> +	.long sys_getpagesize
> +	.long sys_ni_syscall		/* old "query_module" */
>   	.long sys_poll
> -	.long sys_ni_syscall	/* sys_nfsservctl */
> -	.long sys_setresgid16	/* 170 */
> +	.long sys_nfsservctl
> +	.long sys_setresgid16		/* 170 */
>   	.long sys_getresgid16
>   	.long sys_prctl
>   	.long sys_rt_sigreturn
>   	.long sys_rt_sigaction
> -	.long sys_rt_sigprocmask /* 175 */
> +	.long sys_rt_sigprocmask	/* 175 */
>   	.long sys_rt_sigpending
>   	.long sys_rt_sigtimedwait
>   	.long sys_rt_sigqueueinfo
>   	.long sys_rt_sigsuspend
> -	.long sys_pread64	/* 180 */
> +	.long sys_pread64		/* 180 */
>   	.long sys_pwrite64
>   	.long sys_lchown16
>   	.long sys_getcwd
>   	.long sys_capget
> -	.long sys_capset	/* 185 */
> +	.long sys_capset		/* 185 */
>   	.long sys_sigaltstack
>   	.long sys_sendfile
> -	.long sys_ni_syscall	/* streams1 */
> -	.long sys_ni_syscall	/* streams2 */
> -	.long sys_vfork		/* 190 */
> +	.long sys_ni_syscall		/* streams1 */
> +	.long sys_ni_syscall		/* streams2 */
> +	.long sys_vfork			/* 190 */
>   	.long sys_getrlimit
> -	.long sys_mmap_pgoff
> +	.long sys_mmap2
>   	.long sys_truncate64
>   	.long sys_ftruncate64
> -	.long sys_stat64	/* 195 */
> +	.long sys_stat64		/* 195 */
>   	.long sys_lstat64
>   	.long sys_fstat64
>   	.long sys_chown
>   	.long sys_getuid
> -	.long sys_getgid	/* 200 */
> +	.long sys_getgid		/* 200 */
>   	.long sys_geteuid
>   	.long sys_getegid
>   	.long sys_setreuid
>   	.long sys_setregid
> -	.long sys_getgroups	/* 205 */
> +	.long sys_getgroups		/* 205 */
>   	.long sys_setgroups
>   	.long sys_fchown
>   	.long sys_setresuid
>   	.long sys_getresuid
> -	.long sys_setresgid	/* 210 */
> +	.long sys_setresgid		/* 210 */
>   	.long sys_getresgid
>   	.long sys_lchown
>   	.long sys_setuid
>   	.long sys_setgid
> -	.long sys_setfsuid	/* 215 */
> +	.long sys_setfsuid		/* 215 */
>   	.long sys_setfsgid
>   	.long sys_pivot_root
>   	.long sys_ni_syscall
>   	.long sys_ni_syscall
> -	.long sys_getdents64	/* 220 */
> +	.long sys_getdents64		/* 220 */
>   	.long sys_gettid
>   	.long sys_tkill
>   	.long sys_setxattr
>   	.long sys_lsetxattr
> -	.long sys_fsetxattr	/* 225 */
> +	.long sys_fsetxattr		/* 225 */
>   	.long sys_getxattr
>   	.long sys_lgetxattr
>   	.long sys_fgetxattr
>   	.long sys_listxattr
> -	.long sys_llistxattr	/* 230 */
> +	.long sys_llistxattr		/* 230 */
>   	.long sys_flistxattr
>   	.long sys_removexattr
>   	.long sys_lremovexattr
>   	.long sys_fremovexattr
> -	.long sys_futex		/* 235 */
> +	.long sys_futex			/* 235 */
>   	.long sys_sendfile64
> -	.long sys_ni_syscall	/* sys_mincore */
> -	.long sys_ni_syscall	/* sys_madvise */
> +	.long sys_mincore
> +	.long sys_madvise
>   	.long sys_fcntl64
> -	.long sys_readahead	/* 240 */
> +	.long sys_readahead		/* 240 */
>   	.long sys_io_setup
>   	.long sys_io_destroy
>   	.long sys_io_getevents
>   	.long sys_io_submit
> -	.long sys_io_cancel	/* 245 */
> +	.long sys_io_cancel		/* 245 */
>   	.long sys_fadvise64
>   	.long sys_exit_group
>   	.long sys_lookup_dcookie
>   	.long sys_epoll_create
> -	.long sys_epoll_ctl	/* 250 */
> +	.long sys_epoll_ctl		/* 250 */
>   	.long sys_epoll_wait
> -	.long sys_ni_syscall	/* sys_remap_file_pages */
> +	.long sys_remap_file_pages
>   	.long sys_set_tid_address
>   	.long sys_timer_create
> -	.long sys_timer_settime	/* 255 */
> +	.long sys_timer_settime		/* 255 */
>   	.long sys_timer_gettime
>   	.long sys_timer_getoverrun
>   	.long sys_timer_delete
>   	.long sys_clock_settime
> -	.long sys_clock_gettime	/* 260 */
> +	.long sys_clock_gettime		/* 260 */
>   	.long sys_clock_getres
>   	.long sys_clock_nanosleep
>   	.long sys_statfs64
>   	.long sys_fstatfs64
> -	.long sys_tgkill	/* 265 */
> +	.long sys_tgkill		/* 265 */
>   	.long sys_utimes
>   	.long sys_fadvise64_64
> -	.long sys_mbind	
> +	.long sys_mbind
>   	.long sys_get_mempolicy
> -	.long sys_set_mempolicy	/* 270 */
> +	.long sys_set_mempolicy		/* 270 */
>   	.long sys_mq_open
>   	.long sys_mq_unlink
>   	.long sys_mq_timedsend
>   	.long sys_mq_timedreceive
> -	.long sys_mq_notify	/* 275 */
> +	.long sys_mq_notify		/* 275 */
>   	.long sys_mq_getsetattr
>   	.long sys_waitid
> -	.long sys_ni_syscall	/* for sys_vserver */
> +	.long sys_ni_syscall		/* for sys_vserver */
>   	.long sys_add_key
> -	.long sys_request_key	/* 280 */
> +	.long sys_request_key		/* 280 */
>   	.long sys_keyctl
>   	.long sys_ioprio_set
>   	.long sys_ioprio_get
> @@ -362,7 +379,3 @@ ENTRY(sys_call_table)
>   	.long sys_clock_adjtime
>   	.long sys_syncfs
>
> -	.rept NR_syscalls-(.-sys_call_table)/4
> -		.long sys_ni_syscall
> -	.endr
> -


-- 
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-07  0:53   ` Greg Ungerer
@ 2011-04-07  2:12     ` Gavin Lambert
       [not found]     ` <000301cbf4c9$40339fc0$c09adf40$@com>
  1 sibling, 0 replies; 20+ messages in thread
From: Gavin Lambert @ 2011-04-07  2:12 UTC (permalink / raw)
  To: 'uClinux development list', 'Philippe De Muyter',
	'Geert Uytterhoeven'
  Cc: 'Linux/m68k'

Quoth Greg Ungerer:
> >> Impact for m68knommu:
> >>    - The table is now stored in .data instead of .text,
> >
> > Do you mean .rodata ?
[...]
> Yes, I suspect that was the original thinking. It has been that way
> for a very long time (it is in .text in the 2.4 kernel patches for
> this too).
> 
> I will test them on m68knommu today, I am sure moving to .data (really
> rodata) will be fine.

Doesn't that have XIP consequences?  .text (and presumably .rodata) can be
stored and executed from ROM, since they can't be changed at runtime.  .data
has to be in RAM, since it can be.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
       [not found]     ` <000301cbf4c9$40339fc0$c09adf40$@com>
@ 2011-04-07  2:43       ` Greg Ungerer
  2011-04-07  3:13         ` Gavin Lambert
  0 siblings, 1 reply; 20+ messages in thread
From: Greg Ungerer @ 2011-04-07  2:43 UTC (permalink / raw)
  To: uClinux development list
  Cc: Gavin Lambert, 'Philippe De Muyter',
	'Geert Uytterhoeven', 'Linux/m68k'

Hi Gavin,

On 07/04/11 12:12, Gavin Lambert wrote:
> Quoth Greg Ungerer:
>>>> Impact for m68knommu:
>>>>     - The table is now stored in .data instead of .text,
>>>
>>> Do you mean .rodata ?
> [...]
>> Yes, I suspect that was the original thinking. It has been that way
>> for a very long time (it is in .text in the 2.4 kernel patches for
>> this too).
>>
>> I will test them on m68knommu today, I am sure moving to .data (really
>> rodata) will be fine.
>
> Doesn't that have XIP consequences?  .text (and presumably .rodata) can be
> stored and executed from ROM, since they can't be changed at runtime.  .data
> has to be in RAM, since it can be.

Yes, but even in the kernel XIP case the very early startup code
moves the kernels data to RAM. Well before the system call table
will be needed.

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* RE: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-07  2:43       ` Greg Ungerer
@ 2011-04-07  3:13         ` Gavin Lambert
  2011-04-07  4:14           ` Greg Ungerer
       [not found]           ` <4D9D3A28.9060104@snapgear.com>
  0 siblings, 2 replies; 20+ messages in thread
From: Gavin Lambert @ 2011-04-07  3:13 UTC (permalink / raw)
  To: 'Greg Ungerer', 'uClinux development list'
  Cc: 'Philippe De Muyter', 'Geert Uytterhoeven',
	'Linux/m68k'

Quoth Greg Ungerer:
>> Doesn't that have XIP consequences?  .text (and presumably .rodata) 
>> can be stored and executed from ROM, since they can't be changed at 
>> runtime.  .data has to be in RAM, since it can be.
>
> Yes, but even in the kernel XIP case the very early startup code
> moves the kernels data to RAM. Well before the system call table
> will be needed.

But presumably if the syscall table was previously in .text, it was not
subject to this.  And now it will be.

I doubt this would actually break anything (as you've already confirmed),
since it's only a tiny RAM usage increase, but unless there's some reason
for the syscall table to be read-write it seems a bit odd.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-07  3:13         ` Gavin Lambert
@ 2011-04-07  4:14           ` Greg Ungerer
       [not found]           ` <4D9D3A28.9060104@snapgear.com>
  1 sibling, 0 replies; 20+ messages in thread
From: Greg Ungerer @ 2011-04-07  4:14 UTC (permalink / raw)
  To: Gavin Lambert
  Cc: 'uClinux development list', 'Philippe De Muyter',
	'Geert Uytterhoeven', 'Linux/m68k'

Hi Gavin,

On 07/04/11 13:13, Gavin Lambert wrote:
> Quoth Greg Ungerer:
>>> Doesn't that have XIP consequences?  .text (and presumably .rodata)
>>> can be stored and executed from ROM, since they can't be changed at
>>> runtime.  .data has to be in RAM, since it can be.
>>
>> Yes, but even in the kernel XIP case the very early startup code
>> moves the kernels data to RAM. Well before the system call table
>> will be needed.
>
> But presumably if the syscall table was previously in .text, it was not
> subject to this.  And now it will be.
>
> I doubt this would actually break anything (as you've already confirmed),
> since it's only a tiny RAM usage increase, but unless there's some reason
> for the syscall table to be read-write it seems a bit odd.

To be read-write yes, odd, but a data table being in the .text
section is also odd. It really belongs in the .rodata section.
And then it will be packed with the .text in our linkers script,
and wouldn't be copied out to RAM.

So Geert, can we move this to the .rodata section?

I just tried changing the .data section to

     .section ".rodata"

It compiled and work on both m68k and m68knommu targets for me.

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
       [not found]           ` <4D9D3A28.9060104@snapgear.com>
@ 2011-04-07  7:04             ` Geert Uytterhoeven
  2011-04-07  8:29               ` Andreas Schwab
  2011-04-13 18:03             ` Geert Uytterhoeven
  1 sibling, 1 reply; 20+ messages in thread
From: Geert Uytterhoeven @ 2011-04-07  7:04 UTC (permalink / raw)
  To: Greg Ungerer
  Cc: Gavin Lambert, uClinux development list, Philippe De Muyter, Linux/m68k

On Thu, Apr 7, 2011 at 06:14, Greg Ungerer <gerg@snapgear.com> wrote:
> On 07/04/11 13:13, Gavin Lambert wrote:
>> Quoth Greg Ungerer:
>>>> Doesn't that have XIP consequences?  .text (and presumably .rodata)
>>>> can be stored and executed from ROM, since they can't be changed at
>>>> runtime.  .data has to be in RAM, since it can be.
>>>
>>> Yes, but even in the kernel XIP case the very early startup code
>>> moves the kernels data to RAM. Well before the system call table
>>> will be needed.
>>
>> But presumably if the syscall table was previously in .text, it was not
>> subject to this.  And now it will be.
>>
>> I doubt this would actually break anything (as you've already confirmed),
>> since it's only a tiny RAM usage increase, but unless there's some reason
>> for the syscall table to be read-write it seems a bit odd.
>
> To be read-write yes, odd, but a data table being in the .text

Isn't there a reason it was read-write on m68k, like the table may be changed
at runtime (to install rootkits :-)? Have to check what the other arches do...

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-07  7:04             ` Geert Uytterhoeven
@ 2011-04-07  8:29               ` Andreas Schwab
  2011-04-07  8:35                 ` Philippe De Muyter
  0 siblings, 1 reply; 20+ messages in thread
From: Andreas Schwab @ 2011-04-07  8:29 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Greg Ungerer, Gavin Lambert, uClinux development list,
	Philippe De Muyter, Linux/m68k

Geert Uytterhoeven <geert@linux-m68k.org> writes:

> Isn't there a reason it was read-write on m68k, like the table may be changed
> at runtime (to install rootkits :-)? Have to check what the other arches do...

Initially the syscall_table in Linux has always been writable, bb152f53
("x86/x86_64: mark rodata section read-only: make some datastructures
const") made it read-only on x86.  Apparently nobody bothered to do the
equivalent change on m68k (I don't think anything makes the kernel text
segment write protected anyway).

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-07  8:29               ` Andreas Schwab
@ 2011-04-07  8:35                 ` Philippe De Muyter
  2011-04-07  8:39                   ` Andreas Schwab
  0 siblings, 1 reply; 20+ messages in thread
From: Philippe De Muyter @ 2011-04-07  8:35 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Geert Uytterhoeven, Greg Ungerer, Gavin Lambert,
	uClinux development list, Linux/m68k

On Thu, Apr 07, 2011 at 10:29:54AM +0200, Andreas Schwab wrote:
> Geert Uytterhoeven <geert@linux-m68k.org> writes:
> 
> > Isn't there a reason it was read-write on m68k, like the table may be changed
> > at runtime (to install rootkits :-)? Have to check what the other arches do...
> 
> Initially the syscall_table in Linux has always been writable, bb152f53
> ("x86/x86_64: mark rodata section read-only: make some datastructures
> const") made it read-only on x86.  Apparently nobody bothered to do the
> equivalent change on m68k (I don't think anything makes the kernel text
> segment write protected anyway).

Except, of course, ld config files who put text and rodata in ROM/FLASH for XIP
on embedded systems.

Philippe

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-07  8:35                 ` Philippe De Muyter
@ 2011-04-07  8:39                   ` Andreas Schwab
  0 siblings, 0 replies; 20+ messages in thread
From: Andreas Schwab @ 2011-04-07  8:39 UTC (permalink / raw)
  To: Philippe De Muyter
  Cc: Geert Uytterhoeven, Greg Ungerer, Gavin Lambert,
	uClinux development list, Linux/m68k

Philippe De Muyter <phdm@macqel.be> writes:

> On Thu, Apr 07, 2011 at 10:29:54AM +0200, Andreas Schwab wrote:
>> Geert Uytterhoeven <geert@linux-m68k.org> writes:
>> 
>> > Isn't there a reason it was read-write on m68k, like the table may be changed
>> > at runtime (to install rootkits :-)? Have to check what the other arches do...
>> 
>> Initially the syscall_table in Linux has always been writable, bb152f53
>> ("x86/x86_64: mark rodata section read-only: make some datastructures
>> const") made it read-only on x86.  Apparently nobody bothered to do the
>> equivalent change on m68k (I don't think anything makes the kernel text
>> segment write protected anyway).
>
> Except, of course, ld config files who put text and rodata in ROM/FLASH for XIP
> on embedded systems.

I'm only talking about m68k here, not m68knommu.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [uClinux-dev] [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
       [not found]           ` <4D9D3A28.9060104@snapgear.com>
  2011-04-07  7:04             ` Geert Uytterhoeven
@ 2011-04-13 18:03             ` Geert Uytterhoeven
  1 sibling, 0 replies; 20+ messages in thread
From: Geert Uytterhoeven @ 2011-04-13 18:03 UTC (permalink / raw)
  To: Greg Ungerer
  Cc: Gavin Lambert, uClinux development list, Philippe De Muyter, Linux/m68k

On Thu, Apr 7, 2011 at 06:14, Greg Ungerer <gerg@snapgear.com> wrote:
> On 07/04/11 13:13, Gavin Lambert wrote:
>>
>> Quoth Greg Ungerer:
>>>>
>>>> Doesn't that have XIP consequences?  .text (and presumably .rodata)
>>>> can be stored and executed from ROM, since they can't be changed at
>>>> runtime.  .data has to be in RAM, since it can be.
>>>
>>> Yes, but even in the kernel XIP case the very early startup code
>>> moves the kernels data to RAM. Well before the system call table
>>> will be needed.
>>
>> But presumably if the syscall table was previously in .text, it was not
>> subject to this.  And now it will be.
>>
>> I doubt this would actually break anything (as you've already confirmed),
>> since it's only a tiny RAM usage increase, but unless there's some reason
>> for the syscall table to be read-write it seems a bit odd.
>
> To be read-write yes, odd, but a data table being in the .text
> section is also odd. It really belongs in the .rodata section.
> And then it will be packed with the .text in our linkers script,
> and wouldn't be copied out to RAM.
>
> So Geert, can we move this to the .rodata section?
>
> I just tried changing the .data section to
>
>    .section ".rodata"
>
> It compiled and work on both m68k and m68knommu targets for me.

Thanks, I'll move it .rodata.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-06 20:33 [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table Geert Uytterhoeven
                   ` (2 preceding siblings ...)
  2011-04-07  1:53 ` Greg Ungerer
@ 2011-04-13 18:16 ` Geert Uytterhoeven
  2011-04-17 20:13   ` Arnd Bergmann
  3 siblings, 1 reply; 20+ messages in thread
From: Geert Uytterhoeven @ 2011-04-13 18:16 UTC (permalink / raw)
  To: Greg Ungerer, Arnd Bergmann; +Cc: Linux/m68k, uClinux list

On Wed, Apr 6, 2011 at 22:33, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> +#ifndef CONFIG_MMU
> +#define sys_swapon             sys_ni_syscall
> +#define sys_swapoff            sys_ni_syscall
> +#define sys_mprotect           sys_ni_syscall
> +#define sys_msync              sys_ni_syscall
> +#define sys_mlock              sys_ni_syscall
> +#define sys_munlock            sys_ni_syscall
> +#define sys_mlockall           sys_ni_syscall
> +#define sys_munlockall         sys_ni_syscall
> +#define sys_mremap             sys_ni_syscall
> +#define sys_nfsservctl         sys_ni_syscall
> +#define sys_mincore            sys_ni_syscall
> +#define sys_madvise            sys_ni_syscall
> +#define sys_remap_file_pages   sys_ni_syscall
> +
> +#define sys_mmap2              sys_mmap_pgoff
> +#endif

When comparing this to the MMU comments in include/asm-generic/unistd.h,
I noticed this:

M68knommu does have:
  - sys_mbind
  - sys_get_mempolicy
  - sys_set_mempolicy
  - sys_migrate_pages
  - sys_move_pages
  - sys_fork, although it returns -EINVAL, not -ENOSYS

M68knommu does not implement:
  - sys_mremap
  - sys_nfsservctl

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-13 18:16 ` Geert Uytterhoeven
@ 2011-04-17 20:13   ` Arnd Bergmann
  2011-04-19  4:32     ` Greg Ungerer
  0 siblings, 1 reply; 20+ messages in thread
From: Arnd Bergmann @ 2011-04-17 20:13 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Greg Ungerer, Linux/m68k, uClinux list

On Wednesday 13 April 2011, Geert Uytterhoeven wrote:
> When comparing this to the MMU comments in include/asm-generic/unistd.h,
> I noticed this:
> 
> M68knommu does have:
>   - sys_mbind
>   - sys_get_mempolicy
>   - sys_set_mempolicy
>   - sys_migrate_pages
>   - sys_move_pages

scripts/checksyscalls.sh ignores these on NOMMU, so I did not list them.
Are there any NOMMU system with NUMA support? If so, what are these
syscalls supposed to do in that case? I assume that they don't actually
change the physical location of a virtual address.

Since the unistd.h file is shared with m68k, I see nothing wrong here,
they should simply get stubbed out like the other NOMMU syscalls (swapon,
mprotect, msync, ...)

>   - sys_fork, although it returns -EINVAL, not -ENOSYS
> 
> M68knommu does not implement:
>   - sys_mremap
>   - sys_nfsservct

Shouldn't you get a warning about these from scripts/checksyscalls.sh ?

mremap should really work, except for MREMAP_FIXED, as documented in mm/nommu.c.
nfsservctl is probably not needed, but I see no reason to leave it out either.

	Arnd

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-17 20:13   ` Arnd Bergmann
@ 2011-04-19  4:32     ` Greg Ungerer
  2011-04-19  8:21       ` Arnd Bergmann
  0 siblings, 1 reply; 20+ messages in thread
From: Greg Ungerer @ 2011-04-19  4:32 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Geert Uytterhoeven, Linux/m68k, uClinux list

On 18/04/11 06:13, Arnd Bergmann wrote:
> On Wednesday 13 April 2011, Geert Uytterhoeven wrote:
>> When comparing this to the MMU comments in include/asm-generic/unistd.h,
>> I noticed this:
>>
>> M68knommu does have:
>>    - sys_mbind
>>    - sys_get_mempolicy
>>    - sys_set_mempolicy
>>    - sys_migrate_pages
>>    - sys_move_pages
>
> scripts/checksyscalls.sh ignores these on NOMMU, so I did not list them.
> Are there any NOMMU system with NUMA support?

Certainly no m68k/ColdFire ones...


> If so, what are these
> syscalls supposed to do in that case? I assume that they don't actually
> change the physical location of a virtual address.
>
> Since the unistd.h file is shared with m68k, I see nothing wrong here,
> they should simply get stubbed out like the other NOMMU syscalls (swapon,
> mprotect, msync, ...)

I have no objection to changing these to be sys_ni_syscall for the
CONFIG_MMU=n case of m68k. I am pretty sure they will never have
been used in any way on m68knommu systems. (It does look like uClibc
for example does support these even on no-mmu systems though. I just
don't think they will have actually been used by anyone).


>>    - sys_fork, although it returns -EINVAL, not -ENOSYS

I can't recall why it is that way :-)
For one thing uClibc doesn't even generate a library symbol for it.
So the only way someone would be able to get to it normally on an
m68knommu system is to code the raw system call. And even then all
they will ever get is a fail. I doubt the change in errno return
type would be a problem.

I have no problem with being consistent with asm-generic/unistd.h,
and stubbing this to a sys_ni_syscall as well.


>> M68knommu does not implement:
>>    - sys_mremap
>>    - sys_nfsservct
>
> Shouldn't you get a warning about these from scripts/checksyscalls.sh ?

It doesn't complain.


> mremap should really work, except for MREMAP_FIXED, as documented in mm/nommu.c.
> nfsservctl is probably not needed, but I see no reason to leave it out either.

They should work exactly the same as any other non-mmu arch.
I just compile tested with those enabled (as per asm-generic/unistd.h)
and it worked fine. So I would be happy to see those removed from the
stub list for m68k/m68knommu.

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-19  4:32     ` Greg Ungerer
@ 2011-04-19  8:21       ` Arnd Bergmann
  2011-04-19  8:30         ` Geert Uytterhoeven
                           ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Arnd Bergmann @ 2011-04-19  8:21 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: Geert Uytterhoeven, Linux/m68k, uClinux list

On Tuesday 19 April 2011, Greg Ungerer wrote:
> On 18/04/11 06:13, Arnd Bergmann wrote:

> > If so, what are these
> > syscalls supposed to do in that case? I assume that they don't actually
> > change the physical location of a virtual address.
> >
> > Since the unistd.h file is shared with m68k, I see nothing wrong here,
> > they should simply get stubbed out like the other NOMMU syscalls (swapon,
> > mprotect, msync, ...)
> 
> I have no objection to changing these to be sys_ni_syscall for the
> CONFIG_MMU=n case of m68k. I am pretty sure they will never have
> been used in any way on m68knommu systems. (It does look like uClibc
> for example does support these even on no-mmu systems though. I just
> don't think they will have actually been used by anyone).

They are already sys_ni_syscall, by means of kernel/sys_ni.c.
I wouldn't bother changing them. The real question is whether
you should define the __NR_* macros for the syscalls that are
not provided. For a new architecture I think you should not,
but removing them might cause regressions. Then again, it's
probably very useful to match the unistd.h file with the system
call table.

> >>    - sys_fork, although it returns -EINVAL, not -ENOSYS
> 
> I can't recall why it is that way :-)
> For one thing uClibc doesn't even generate a library symbol for it.
> So the only way someone would be able to get to it normally on an
> m68knommu system is to code the raw system call. And even then all
> they will ever get is a fail. I doubt the change in errno return
> type would be a problem.
> 
> I have no problem with being consistent with asm-generic/unistd.h,
> and stubbing this to a sys_ni_syscall as well.

Makes sense. Note that the man page defines neither return code.

> >> M68knommu does not implement:
> >>    - sys_mremap
> >>    - sys_nfsservct
> >
> > Shouldn't you get a warning about these from scripts/checksyscalls.sh ?
> 
> It doesn't complain.

Ah, you actually define the syscall numbers for these, so it will not warn,
despite the fact that the entry is missing.

> > mremap should really work, except for MREMAP_FIXED, as documented in mm/nommu.c.
> > nfsservctl is probably not needed, but I see no reason to leave it out either.
> 
> They should work exactly the same as any other non-mmu arch.
> I just compile tested with those enabled (as per asm-generic/unistd.h)
> and it worked fine. So I would be happy to see those removed from the
> stub list for m68k/m68knommu.

Ok, good.

	Arnd

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-19  8:21       ` Arnd Bergmann
@ 2011-04-19  8:30         ` Geert Uytterhoeven
  2011-04-19  8:52         ` Arnd Bergmann
  2011-04-19 12:26         ` Greg Ungerer
  2 siblings, 0 replies; 20+ messages in thread
From: Geert Uytterhoeven @ 2011-04-19  8:30 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Greg Ungerer, Linux/m68k, uClinux list

On Tue, Apr 19, 2011 at 10:21, Arnd Bergmann <arnd@arndb.de> wrote:
> On Tuesday 19 April 2011, Greg Ungerer wrote:
>> On 18/04/11 06:13, Arnd Bergmann wrote:
>> >> M68knommu does not implement:
>> >>    - sys_mremap
>> >>    - sys_nfsservct
>> >
>> > Shouldn't you get a warning about these from scripts/checksyscalls.sh ?
>>
>> It doesn't complain.
>
> Ah, you actually define the syscall numbers for these, so it will not warn,
> despite the fact that the entry is missing.

Yep, asm/unistd.h is shared between mmu and nommu.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-19  8:21       ` Arnd Bergmann
  2011-04-19  8:30         ` Geert Uytterhoeven
@ 2011-04-19  8:52         ` Arnd Bergmann
  2011-04-19 12:26         ` Greg Ungerer
  2 siblings, 0 replies; 20+ messages in thread
From: Arnd Bergmann @ 2011-04-19  8:52 UTC (permalink / raw)
  To: Greg Ungerer; +Cc: Geert Uytterhoeven, Linux/m68k, uClinux list

On Tuesday 19 April 2011, Arnd Bergmann wrote:
> They are already sys_ni_syscall, by means of kernel/sys_ni.c.
> I wouldn't bother changing them. The real question is whether
> you should define the __NR_* macros for the syscalls that are
> not provided. For a new architecture I think you should not,
> but removing them might cause regressions. Then again, it's
> probably very useful to match the unistd.h file with the system
> call table.

I've just looked at the diff between the m68k and m68knommu
syscall tables, and it seems that you should be able to just
use the m68k variant, with a slight adaptation for mmap2/mmap_pgoff.

You might want to use the same method as asm-generic, in order
to provide a way to better synchronize unistd.h and syscalltable.

	Arnd

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table
  2011-04-19  8:21       ` Arnd Bergmann
  2011-04-19  8:30         ` Geert Uytterhoeven
  2011-04-19  8:52         ` Arnd Bergmann
@ 2011-04-19 12:26         ` Greg Ungerer
  2 siblings, 0 replies; 20+ messages in thread
From: Greg Ungerer @ 2011-04-19 12:26 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Geert Uytterhoeven, Linux/m68k, uClinux list


Hi Arnd,

On 19/04/11 18:21, Arnd Bergmann wrote:
> On Tuesday 19 April 2011, Greg Ungerer wrote:
>> On 18/04/11 06:13, Arnd Bergmann wrote:
>
>>> If so, what are these
>>> syscalls supposed to do in that case? I assume that they don't actually
>>> change the physical location of a virtual address.
>>>
>>> Since the unistd.h file is shared with m68k, I see nothing wrong here,
>>> they should simply get stubbed out like the other NOMMU syscalls (swapon,
>>> mprotect, msync, ...)
>>
>> I have no objection to changing these to be sys_ni_syscall for the
>> CONFIG_MMU=n case of m68k. I am pretty sure they will never have
>> been used in any way on m68knommu systems. (It does look like uClibc
>> for example does support these even on no-mmu systems though. I just
>> don't think they will have actually been used by anyone).
>
> They are already sys_ni_syscall, by means of kernel/sys_ni.c.
> I wouldn't bother changing them. The real question is whether
> you should define the __NR_* macros for the syscalls that are
> not provided. For a new architecture I think you should not,
> but removing them might cause regressions. Then again, it's
> probably very useful to match the unistd.h file with the system
> call table.

Ok, then it looks like we don't need the long redefine list
for the non-mmu case in Geert's original patch.Those that are
not implemented by the non-mmu build will just end up being
sys_ni_syscall anyway.

I built (and run tested) that for m68knommu targets, removing
the redefine list - expect for sys_mmap2/sys_mmap_pgoff - and
that of course works fine.

Regards
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2011-04-19 12:26 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-06 20:33 [PATCH] m68k: Merge mmu and non-mmu versions of sys_call_table Geert Uytterhoeven
2011-04-06 22:05 ` [uClinux-dev] " Philippe De Muyter
     [not found] ` <20110406220510.GA17350@frolo.macqel>
2011-04-07  0:53   ` Greg Ungerer
2011-04-07  2:12     ` Gavin Lambert
     [not found]     ` <000301cbf4c9$40339fc0$c09adf40$@com>
2011-04-07  2:43       ` Greg Ungerer
2011-04-07  3:13         ` Gavin Lambert
2011-04-07  4:14           ` Greg Ungerer
     [not found]           ` <4D9D3A28.9060104@snapgear.com>
2011-04-07  7:04             ` Geert Uytterhoeven
2011-04-07  8:29               ` Andreas Schwab
2011-04-07  8:35                 ` Philippe De Muyter
2011-04-07  8:39                   ` Andreas Schwab
2011-04-13 18:03             ` Geert Uytterhoeven
2011-04-07  1:53 ` Greg Ungerer
2011-04-13 18:16 ` Geert Uytterhoeven
2011-04-17 20:13   ` Arnd Bergmann
2011-04-19  4:32     ` Greg Ungerer
2011-04-19  8:21       ` Arnd Bergmann
2011-04-19  8:30         ` Geert Uytterhoeven
2011-04-19  8:52         ` Arnd Bergmann
2011-04-19 12:26         ` Greg Ungerer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.