aboutsummaryrefslogtreecommitdiffstats
path: root/lib/radix-tree.c
diff options
context:
space:
mode:
authorJeff Moyer <jmoyer@redhat.com>2010-05-26 14:44:26 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-27 09:12:53 -0700
commit9d85cba718efeef9ca00ce3f7f34f5880737aa9b (patch)
treed445d35d915b65dac171e58f83c75feb15d625fd /lib/radix-tree.c
parentcompat: factor out compat_rw_copy_check_uvector from compat_do_readv_writev (diff)
downloadlinux-dev-9d85cba718efeef9ca00ce3f7f34f5880737aa9b.tar.xz
linux-dev-9d85cba718efeef9ca00ce3f7f34f5880737aa9b.zip
aio: fix the compat vectored operations
The aio compat code was not converting the struct iovecs from 32bit to 64bit pointers, causing either EINVAL to be returned from io_getevents, or EFAULT as the result of the I/O. This patch passes a compat flag to io_submit to signal that pointer conversion is necessary for a given iocb array. A variant of this was tested by Michael Tokarev. I have also updated the libaio test harness to exercise this code path with good success. Further, I grabbed a copy of ltp and ran the testcases/kernel/syscall/readv and writev tests there (compiled with -m32 on my 64bit system). All seems happy, but extra eyes on this would be welcome. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: fix CONFIG_COMPAT=n build] Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Reported-by: Michael Tokarev <mjt@tls.msk.ru> Cc: Zach Brown <zach.brown@oracle.com> Cc: <stable@kernel.org> [2.6.35.1] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/radix-tree.c')
0 files changed, 0 insertions, 0 deletions