linux-stable-rt/arch/x86_64
Thomas Gleixner c08b8a4910 [PATCH] sys_alarm() unsigned signed conversion fixup
alarm() calls the kernel with an unsigend int timeout in seconds.  The
value is stored in the tv_sec field of a struct timeval to setup the
itimer.  The tv_sec field of struct timeval is of type long, which causes
the tv_sec value to be negative on 32 bit machines if seconds > INT_MAX.

Before the hrtimer merge (pre 2.6.16) such a negative value was converted
to the maximum jiffies timeout by the timeval_to_jiffies conversion.  It's
not clear whether this was intended or just happened to be done by the
timeval_to_jiffies code.

hrtimers expect a timeval in canonical form and treat a negative timeout as
already expired.  This breaks the legitimate usage of alarm() with a
timeout value > INT_MAX seconds.

For 32 bit machines it is therefor necessary to limit the internal seconds
value to avoid API breakage.  Instead of doing this in all implementations
of sys_alarm the duplicated sys_alarm code is moved into a common function
in itimer.c

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-25 08:22:48 -08:00
..
boot
crypto [CRYPTO] aes: Fixed array boundary violation 2006-03-21 20:14:10 +11:00
ia32 [PATCH] sys_alarm() unsigned signed conversion fixup 2006-03-25 08:22:48 -08:00
kernel [PATCH] early_printk: cleanup trailiing whitespace 2006-03-24 07:33:25 -08:00
lib [PATCH] x86_64: Undo the earlier changes to remove unrolled copy/memset functions 2006-02-04 16:43:13 -08:00
mm [PATCH] remove set_page_count() outside mm/ 2006-03-22 07:54:02 -08:00
oprofile
pci [PATCH] x86_64: {set,clear,test}_bit() related cleanup and pci_mmcfg_init() fix 2006-03-24 07:33:15 -08:00
Kconfig Make Kprobes depend on modules 2006-02-26 20:24:40 -08:00
Kconfig.debug [PATCH] x86_64: Remove CONFIG_INIT_DEBUG 2006-02-04 16:43:13 -08:00
Makefile
defconfig [PATCH] x86_64: Don't set CONFIG_DEBUG_INFO in defconfig 2006-02-20 20:00:10 -08:00