[systemd-devel] Failed to run test-bus-zero-copy on ARM platform
David Herrmann
dh.herrmann at gmail.com
Mon Jul 6 08:37:54 PDT 2015
Hi
On Mon, Jul 6, 2015 at 3:43 PM, eshark <eshark77 at 163.com> wrote:
> Hi, All,
> My Software environment is : systemd v219 + kdbus-4.1-rc1 + kernel_3.10
> and my hardware platform is ARM CA9 quad core.
>
> I failed to run the test-bus-zero-copy on my platform, and then I traced into the issue ,
> and found that the reason is that the padding KDBU_ITEM_PAYLOAD_VEC will fail to pass the
> access_ok() in kdbus_pool_slice_copy_iovec().
>
> In detail, in kdbus_msg_scan_items() , there is
> "iov->iov_base = (char __user *)zeros" ==> for example, the iov_base is 0xc0b1794c on my platform
> and
> "static const char * const zeros = "\0\0\0\0\0\0\0";"
>
> But in slice->pool->f->f_op->aio_write() , that is generic_file_aio_write() , which calls access_ok(access_flags, iv->iov_base, iv->iov_len);
> And this will fail.
>
> However, I can run test-bus-zero-copy successfully in Fedora21 Virtual Machine which runs on x86-64 platform.
> And I run systemd v219 + kdbus-4.1-rc1 + kernel_3.18 in Fedora21 VM.
>
> Could anyone give me some suggestion?
Your kdbus-module version must match your kernel version. If you use
the out-of-tree repository, use the "v4.1" branch for your 4.1 kernel,
the "v4.0" branch for your 4.0 kernel. No other combinations are
supported.
I also highly recommend to use the in-tree version of kdbus from Greg's tree:
http://git.kernel.org/cgit/linux/kernel/git/gregkh/char-misc.git/log/?h=kdbus
This is the officially supported version. The out-of-tree module is
just for development.
Thanks
David
More information about the systemd-devel
mailing list