diff options
author | SUGIOKA Toshinobu <sugioka@itonet.co.jp> | 2009-01-21 09:42:10 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-01-21 18:35:55 +0900 |
commit | 2afb447f33c29cb000a494396559f8005d3e33c1 (patch) | |
tree | 71365a7c84c6493f602cae0e6f249f26c26ae4ea /kernel | |
parent | eb6434d9e79a72d35d68811efd68fe8bab8f5baf (diff) | |
download | op-kernel-dev-2afb447f33c29cb000a494396559f8005d3e33c1.zip op-kernel-dev-2afb447f33c29cb000a494396559f8005d3e33c1.tar.gz |
sh: fix unaligned and nonexistent address handling
unaligned and nonexistent address causes wrong exception
handling in traps_32.c(handle_unaligned_access).
'handle_unalinged_ins' should return -EFAULT if address error
is fixed up with kernel exception table, otherwise
'handle_unaligned_access' increases already fixed program counter
and then crash.
for example
ioctl(fd, TCGETA, (struct termio *)-1)
never return and stay in TASK_UNINTERRUPTIBLE state forever
in my kernel.
Signed-off-by: SUGIOKA Toshinobu <sugioka@itonet.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions