Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev

* 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev:
m32r: Update sys_rt_sigsuspend
m32r: Ignore warnings for unused syscalls
m32r: Add missing syscalls

+120 -14
+7 -10
arch/m32r/kernel/signal.c
··· 36 36 unsigned long r2, unsigned long r3, unsigned long r4, 37 37 unsigned long r5, unsigned long r6, struct pt_regs *regs) 38 38 { 39 - sigset_t saveset, newset; 39 + sigset_t newset; 40 40 41 41 /* XXX: Don't preclude handling different sized sigset_t's. */ 42 42 if (sigsetsize != sizeof(sigset_t)) ··· 44 44 45 45 if (copy_from_user(&newset, unewset, sizeof(newset))) 46 46 return -EFAULT; 47 - sigdelsetmask(&newset, ~_BLOCKABLE); 47 + sigdelsetmask(&newset, sigmask(SIGKILL)|sigmask(SIGSTOP)); 48 48 49 49 spin_lock_irq(&current->sighand->siglock); 50 - saveset = current->blocked; 50 + current->saved_sigmask = current->blocked; 51 51 current->blocked = newset; 52 52 recalc_sigpending(); 53 53 spin_unlock_irq(&current->sighand->siglock); 54 54 55 - regs->r0 = -EINTR; 56 - while (1) { 57 - current->state = TASK_INTERRUPTIBLE; 58 - schedule(); 59 - if (do_signal(regs, &saveset)) 60 - return regs->r0; 61 - } 55 + current->state = TASK_INTERRUPTIBLE; 56 + schedule(); 57 + set_thread_flag(TIF_RESTORE_SIGMASK); 58 + return -ERESTARTNOHAND; 62 59 } 63 60 64 61 asmlinkage int
+40
arch/m32r/kernel/syscall_table.S
··· 284 284 .long sys_mq_getsetattr 285 285 .long sys_ni_syscall /* reserved for kexec */ 286 286 .long sys_waitid 287 + .long sys_ni_syscall /* 285 */ /* available */ 288 + .long sys_add_key 289 + .long sys_request_key 290 + .long sys_keyctl 291 + .long sys_ioprio_set 292 + .long sys_ioprio_get /* 290 */ 293 + .long sys_inotify_init 294 + .long sys_inotify_add_watch 295 + .long sys_inotify_rm_watch 296 + .long sys_migrate_pages 297 + .long sys_openat /* 295 */ 298 + .long sys_mkdirat 299 + .long sys_mknodat 300 + .long sys_fchownat 301 + .long sys_futimesat 302 + .long sys_fstatat64 /* 300 */ 303 + .long sys_unlinkat 304 + .long sys_renameat 305 + .long sys_linkat 306 + .long sys_symlinkat 307 + .long sys_readlinkat /* 305 */ 308 + .long sys_fchmodat 309 + .long sys_faccessat 310 + .long sys_pselect6 311 + .long sys_ppoll 312 + .long sys_unshare /* 310 */ 313 + .long sys_set_robust_list 314 + .long sys_get_robust_list 315 + .long sys_splice 316 + .long sys_sync_file_range 317 + .long sys_tee /* 315 */ 318 + .long sys_vmsplice 319 + .long sys_move_pages 320 + .long sys_getcpu 321 + .long sys_epoll_pwait 322 + .long sys_utimensat /* 320 */ 323 + .long sys_signalfd 324 + .long sys_timerfd 325 + .long sys_eventfd 326 + .long sys_fallocate
+8 -3
include/asm-m32r/thread_info.h
··· 149 149 #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ 150 150 #define TIF_SINGLESTEP 3 /* restore singlestep on return to user mode */ 151 151 #define TIF_IRET 4 /* return with iret */ 152 - #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */ 153 - /* 31..28 fault code */ 154 - #define TIF_MEMDIE 17 152 + #define TIF_RESTORE_SIGMASK 8 /* restore signal mask in do_signal() */ 153 + #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */ 154 + #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */ 155 + #define TIF_MEMDIE 18 /* OOM killer killed process */ 156 + #define TIF_FREEZE 19 /* is freezing for suspend */ 155 157 156 158 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 157 159 #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 158 160 #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) 159 161 #define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP) 160 162 #define _TIF_IRET (1<<TIF_IRET) 163 + #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) 164 + #define _TIF_USEDFPU (1<<TIF_USEDFPU) 161 165 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) 166 + #define _TIF_FREEZE (1<<TIF_FREEZE) 162 167 163 168 #define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */ 164 169 #define _TIF_ALLWORK_MASK 0x0000FFFF /* work to do on any return to u-space */
+65 -1
include/asm-m32r/unistd.h
··· 290 290 #define __NR_mq_getsetattr (__NR_mq_open+5) 291 291 #define __NR_kexec_load 283 292 292 #define __NR_waitid 284 293 + /* 285 is unused */ 294 + #define __NR_add_key 286 295 + #define __NR_request_key 287 296 + #define __NR_keyctl 288 297 + #define __NR_ioprio_set 289 298 + #define __NR_ioprio_get 290 299 + #define __NR_inotify_init 291 300 + #define __NR_inotify_add_watch 292 301 + #define __NR_inotify_rm_watch 293 302 + #define __NR_migrate_pages 294 303 + #define __NR_openat 295 304 + #define __NR_mkdirat 296 305 + #define __NR_mknodat 297 306 + #define __NR_fchownat 298 307 + #define __NR_futimesat 299 308 + #define __NR_fstatat64 300 309 + #define __NR_unlinkat 301 310 + #define __NR_renameat 302 311 + #define __NR_linkat 303 312 + #define __NR_symlinkat 304 313 + #define __NR_readlinkat 305 314 + #define __NR_fchmodat 306 315 + #define __NR_faccessat 307 316 + #define __NR_pselect6 308 317 + #define __NR_ppoll 309 318 + #define __NR_unshare 310 319 + #define __NR_set_robust_list 311 320 + #define __NR_get_robust_list 312 321 + #define __NR_splice 313 322 + #define __NR_sync_file_range 314 323 + #define __NR_tee 315 324 + #define __NR_vmsplice 316 325 + #define __NR_move_pages 317 326 + #define __NR_getcpu 318 327 + #define __NR_epoll_pwait 319 328 + #define __NR_utimensat 320 329 + #define __NR_signalfd 321 330 + #define __NR_timerfd 322 331 + #define __NR_eventfd 323 332 + #define __NR_fallocate 324 293 333 294 334 #ifdef __KERNEL__ 295 335 296 - #define NR_syscalls 285 336 + #define NR_syscalls 325 297 337 298 338 #define __ARCH_WANT_IPC_PARSE_VERSION 299 339 #define __ARCH_WANT_STAT64 ··· 350 310 #define __ARCH_WANT_SYS_OLD_GETRLIMIT /*will be unused*/ 351 311 #define __ARCH_WANT_SYS_OLDUMOUNT 352 312 #define __ARCH_WANT_SYS_RT_SIGACTION 313 + 314 + #define __IGNORE_lchown 315 + #define __IGNORE_setuid 316 + #define __IGNORE_getuid 317 + #define __IGNORE_setgid 318 + #define __IGNORE_getgid 319 + #define __IGNORE_geteuid 320 + #define __IGNORE_getegid 321 + #define __IGNORE_fcntl 322 + #define __IGNORE_setreuid 323 + #define __IGNORE_setregid 324 + #define __IGNORE_getrlimit 325 + #define __IGNORE_getgroups 326 + #define __IGNORE_setgroups 327 + #define __IGNORE_select 328 + #define __IGNORE_mmap 329 + #define __IGNORE_fchown 330 + #define __IGNORE_setfsuid 331 + #define __IGNORE_setfsgid 332 + #define __IGNORE_setresuid 333 + #define __IGNORE_getresuid 334 + #define __IGNORE_setresgid 335 + #define __IGNORE_getresgid 336 + #define __IGNORE_chown 353 337 354 338 /* 355 339 * "Conditional" syscalls