Centos-kernel-stream-9/kernel
OGAWA Hirofumi 5a7b46b369 [PATCH] Add more prevent_tail_call()
Those also break userland regs like following.

   00000000 <sys_chown16>:
      0:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
      5:	83 ca ff             	or     $0xffffffff,%edx
      8:	0f b7 4c 24 08       	movzwl 0x8(%esp),%ecx
      d:	66 83 f8 ff          	cmp    $0xffffffff,%ax
     11:	0f 44 c2             	cmove  %edx,%eax
     14:	66 83 f9 ff          	cmp    $0xffffffff,%cx
     18:	0f 45 d1             	cmovne %ecx,%edx
     1b:	89 44 24 0c          	mov    %eax,0xc(%esp)
     1f:	89 54 24 08          	mov    %edx,0x8(%esp)
     23:	e9 fc ff ff ff       	jmp    24 <sys_chown16+0x24>

where the tailcall at the end overwrites the incoming stack-frame.

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
[ I would _really_ like to have a way to tell gcc about calling
  conventions. The "prevent_tail_call()" macro is pretty ugly ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-04-19 16:27:18 -07:00
..
irq [PATCH] build kernel/irq/migration.c only if CONFIG_GENERIC_PENDING_IRQ is set 2006-04-11 06:18:41 -07:00
power [PATCH] swsusp: prevent possible image corruption on resume 2006-04-19 09:13:49 -07:00
.gitignore
Kconfig.hz
Kconfig.preempt
Makefile [PATCH] lightweight robust futexes: compat 2006-03-27 08:44:49 -08:00
acct.c [PATCH] Fix pacct bug in multithreading case. 2006-03-31 12:18:54 -08:00
audit.c [PATCH] Don't pass boot parameters to argv_init[] 2006-03-31 12:18:53 -08:00
audit.h
auditfilter.c
auditsc.c
capability.c
compat.c [PATCH] lightweight robust futexes: compat 2006-03-27 08:44:49 -08:00
configs.c
cpu.c [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
cpuset.c [PATCH] cpuset: memory migration interaction fix 2006-03-31 12:18:55 -08:00
dma.c
exec_domain.c
exit.c [PATCH] task: Make task list manipulations RCU safe 2006-04-19 09:13:49 -07:00
extable.c
fork.c [PATCH] task: Make task list manipulations RCU safe 2006-04-19 09:13:49 -07:00
futex.c [PATCH] futex: check and validate timevals 2006-03-31 12:18:59 -08:00
futex_compat.c [PATCH] futex: check and validate timevals 2006-03-31 12:18:59 -08:00
hrtimer.c [PATCH] add cpu_relax to hrtimer_cancel 2006-04-11 06:18:42 -07:00
intermodule.c
itimer.c
kallsyms.c
kexec.c
kfifo.c
kmod.c [PATCH] wait_for_helper: trivial style cleanup 2006-03-28 18:36:41 -08:00
kprobes.c
ksysfs.c
kthread.c
module.c [PATCH] modules: permit Dual-MIT/GPL licenses 2006-03-31 12:18:56 -08:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
panic.c [PATCH] the scheduled unexport of panic_timeout 2006-04-11 06:18:40 -07:00
params.c [PATCH] Change dash2underscore() return value to char 2006-03-28 09:16:03 -08:00
pid.c [PATCH] pidhash: Refactor the pid hash table 2006-03-31 12:19:00 -08:00
posix-cpu-timers.c
posix-timers.c
printk.c BUG_ON() Conversion in kernel/printk.c 2006-04-01 01:21:17 +02:00
profile.c [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
ptrace.c [PATCH] fix non-leader exec under ptrace 2006-04-14 08:59:13 -07:00
rcupdate.c
rcutorture.c [PATCH] for_each_possible_cpu: fixes for generic part 2006-03-28 09:16:05 -08:00
relay.c
resource.c
sched.c [PATCH] sched: don't awaken RT tasks on expired array 2006-04-11 06:18:30 -07:00
seccomp.c
signal.c [PATCH] fix non-leader exec under ptrace 2006-04-14 08:59:13 -07:00
softirq.c
softlockup.c [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
spinlock.c
stop_machine.c
sys.c [PATCH] Make setsid() more robust 2006-03-31 12:18:59 -08:00
sys_ni.c [PATCH] frv: define MMU mode specific syscalls as 'cond_syscall' and clean up unneeded macros 2006-04-11 06:18:33 -07:00
sysctl.c
time.c Fix comments: s/granuality/granularity/ 2006-04-01 01:41:22 +02:00
timer.c [PATCH] timer initialisation fix 2006-04-11 06:18:40 -07:00
uid16.c [PATCH] Add more prevent_tail_call() 2006-04-19 16:27:18 -07:00
user.c
wait.c
workqueue.c