aio: compat_ioctl issue?

From: Michael Tokarev
Date: Mon Mar 08 2010 - 16:38:43 EST


Hello.

I just come across a situation (next in a long row :)
when on x86, 32bit userspace does not work with 64bit
kernel. This time this is about aio requests.

An application submits some aio job, and it is returned
immediately (from io_getevents()) with EINVAL error.
Here's what it does (it's a printf in the application -
actual arguments as passed to io_submit() and actual
result received in io_getevents()):

io_submit: lio_opcode=7 reqprio=0 iov=0x9cd7018{0xf5599000,4096}, niov=1, offset=0
io_getevents: expected 4096 got -22 (EINVAL)

Note that it is not io_submit() which fails (that one
returns success) but io_getevents(), so it has to be
down the pipeline somewhere.

Can someone comment this please? Somehow I was thinking this
codepath works as - I think anyway - I ran 32bit Oracle database
with aio support on 64bit kernel, but I may be mistaken.

Kernel is 2.6.33 from kernel.org.

Thanks!

/mjt
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/