tile: work around bug in the generic sys_llseek
authorChris Metcalf <cmetcalf@tilera.com>
Mon, 4 Mar 2013 16:19:09 +0000 (11:19 -0500)
committerChris Metcalf <cmetcalf@tilera.com>
Mon, 4 Mar 2013 16:19:09 +0000 (11:19 -0500)
commit5a114b98661e3aaa0ac085eb931584dce3b0ef9b
tree375a9103da9b40c1213d3bf78ed25f99c0df8455
parent6dbe51c251a327e012439c4772097a13df43c5b8
tile: work around bug in the generic sys_llseek

sys_llseek should specify the high and low 32-bit seek values as "unsigned
int" but instead it specifies "unsigned long".  Since compat syscall
arguments are always sign-extended on tile, this means that a seek value
of 0xffffffff will be incorrectly interpreted as a value of -1ULL.

To avoid the risk of breaking binary compatibility on architectures
that already use sys_llseek this way, we follow the same path as MIPS
and provide a wrapper override.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Cc: stable@kernel.org [v3.6 onwards]
arch/tile/include/asm/compat.h
arch/tile/kernel/compat.c