diff options
author | Jeff Moyer <[email protected]> | 2010-05-26 14:44:26 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2010-05-27 09:12:53 -0700 |
commit | 9d85cba718efeef9ca00ce3f7f34f5880737aa9b (patch) | |
tree | d445d35d915b65dac171e58f83c75feb15d625fd /net/unix/af_unix.c | |
parent | b83733639a494d5f42fa00a2506563fbd2d3015d (diff) |
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.
[[email protected]: coding-style fixes]
[[email protected]: fix CONFIG_COMPAT=n build]
Signed-off-by: Jeff Moyer <[email protected]>
Reported-by: Michael Tokarev <[email protected]>
Cc: Zach Brown <[email protected]>
Cc: <[email protected]> [2.6.35.1]
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions